{"version":3,"sources":["redux/reducers/auth/index.js","utility/context/IntlGlobalProvider.js","redux/types/auth/index.js","utility/http/constants.ts","utility/http/http-axios.ts","utility/http/http-webtrack.ts","redux/utils/alerts-interceptors/index.tsx","utility/http/http-events.ts","utility/http/interceptors/loading-overlay-interceptor.ts","utility/http/interceptors/auth-token-interceptor.tsx","utility/http/interceptors/configure-interceptors.ts","redux/reducers/layout/index.js","navigation/outside-sidebar/index.js","redux/reducers/navbar/index.js","redux/reducers/static-catalogs/index.tsx","redux/reducers/index.ts","views/screens/Agents/schemas/index.tsx","views/screens/Agents/sagas/index.tsx","views/screens/Divisions/schemas/index.tsx","views/screens/Divisions/sagas/index.tsx","views/screens/Entities/schemas/index.tsx","views/screens/ETAModelRoutes/actions/index.tsx","redux/actions/static-catalogs/countries/index.tsx","views/screens/Entities/sagas/index.tsx","views/screens/Geofences/schemas/index.tsx","views/screens/Geofences/sagas/index.tsx","views/screens/Modules/schemas/index.tsx","views/screens/Modules/sagas/index.tsx","views/screens/Operators/schemas/index.tsx","views/screens/Contacts/schemas/index.ts","views/screens/Operators/sagas/index.tsx","views/screens/Organizations/schemas/index.tsx","views/screens/Organizations/sagas/index.tsx","views/screens/ServiceClasses/schemas/index.tsx","views/screens/ServiceClasses/sagas/index.tsx","views/screens/Subdivisions/schemas/index.tsx","views/screens/Subdivisions/sagas/index.tsx","views/screens/Units/schemas/index.tsx","views/screens/Units/schemas/deviceMetrics/index.tsx","views/screens/Units/schemas/deviceActions/index.tsx","views/screens/Units/schemas/groups/index.tsx","views/screens/Units/schemas/reports/index.tsx","views/screens/Units/schemas/images/index.tsx","views/screens/Units/schemas/sensors/index.tsx","views/screens/Units/sagas/index.tsx","views/screens/Schedules/schemas/index.tsx","views/screens/Schedules/sagas/index.tsx","redux/schemas/bookmarks/index.js","redux/sagas/auth/index.js","views/screens/Routes/schemas/routes/index.tsx","views/screens/Routes/schemas/routeCheckpoints/index.tsx","views/screens/Routes/sagas/routes/index.tsx","views/screens/Contacts/sagas/index.ts","views/screens/Routes/sagas/routeCheckpoints/index.tsx","views/screens/Routes/sagas/routesAssignments/index.tsx","views/screens/Routes/actions/routesComments/index.tsx","views/screens/Routes/schemas/routesComments/index.tsx","views/screens/Routes/sagas/routesComments/index.tsx","views/screens/Routes/schemas/routesExecutions/index.tsx","views/screens/Routes/sagas/routesExecutions/index.tsx","views/screens/Routes/actions/routesReport/index.tsx","views/screens/Routes/sagas/routesReport/index.tsx","views/screens/Users/schemas/index.tsx","views/screens/Users/sagas/index.tsx","views/screens/Workplans/schemas/workplans/index.tsx","views/screens/Workplans/sagas/workplans/index.tsx","views/screens/Workplans/schemas/workplanAssignments/index.tsx","views/screens/Workplans/sagas/workplansAssignments/index.tsx","views/screens/Workplans/schemas/workplansComments/index.tsx","views/screens/Workplans/services/workplansComments.ts","views/screens/Workplans/sagas/workplansComments/index.tsx","views/screens/Workplans/actions/workplansExecutionLocations/index.tsx","views/screens/Workplans/sagas/workplansExecutionLocations/index.tsx","views/screens/Workplans/actions/workplansExecutions/index.tsx","views/screens/Workplans/schemas/workplansExecutions/index.tsx","views/screens/Workplans/schemas/workplansExecutionLocations/index.tsx","views/screens/Workplans/sagas/workplansExecutions/index.tsx","views/screens/Workplans/actions/workplansReport/index.tsx","redux/schemas/locations/index.tsx","views/screens/Workplans/sagas/workplansReport/index.tsx","views/screens/Workplans/actions/workplansVisits/index.tsx","views/screens/Workplans/schemas/workplansVisits/index.tsx","views/screens/Workplans/schemas/workplansHistoricalVisits/index.tsx","views/screens/Workplans/sagas/workplansVisits/index.tsx","redux/schemas/configurations/index.js","redux/sagas/configurations/index.js","redux/schemas/models/index.tsx","redux/sagas/models/index.tsx","redux/schemas/brands/index.js","redux/sagas/static-catalogs/brands/index.tsx","redux/schemas/currencies/index.js","redux/sagas/static-catalogs/currencies/index.js","redux/schemas/time-zones/index.tsx","redux/sagas/static-catalogs/time-zones/index.tsx","redux/schemas/cellular-providers/index.tsx","redux/sagas/static-catalogs/cellular-providers/index.tsx","redux/schemas/countries/index.tsx","redux/sagas/static-catalogs/countries/index.tsx","redux/schemas/vehicle-makers/index.tsx","redux/sagas/static-catalogs/vehicle-makers/index.tsx","redux/schemas/vehicle-models/index.tsx","redux/sagas/static-catalogs/vehicle-models/index.tsx","redux/schemas/insurance-companies/index.tsx","redux/sagas/static-catalogs/insurance-companies/index.tsx","redux/schemas/insurance-agents/index.tsx","redux/sagas/static-catalogs/insurance-agents/index.tsx","redux/schemas/sensor-brands/index.tsx","redux/sagas/static-catalogs/sensor-brands/index.tsx","redux/schemas/sensor-models/index.tsx","redux/sagas/static-catalogs/sensor-models/index.tsx","redux/schemas/sensor-measures/index.tsx","redux/sagas/static-catalogs/sensor-measures/index.tsx","redux/schemas/payment-methods/index.ts","views/screens/VehicleFuel/services/paymentMethodsService.ts","redux/sagas/static-catalogs/payment-methods/index.tsx","redux/schemas/location-classes/index.js","redux/sagas/static-catalogs/location-classes/index.tsx","views/screens/SIMs/schemas/index.tsx","views/screens/SIMs/sagas/index.tsx","views/screens/Vehicles/schemas/index.tsx","views/screens/Vehicles/sagas/index.tsx","views/screens/Assets/schemas/index.tsx","views/screens/Assets/sagas/index.tsx","views/screens/Sensors/schemas/index.tsx","views/screens/Sensors/sagas/index.tsx","views/screens/Locations/schemas/index.tsx","views/screens/Locations/schemas/importLocations.tsx","views/screens/Locations/sagas/index.tsx","views/screens/Drivers/schemas/index.tsx","views/screens/Drivers/sagas/index.tsx","views/screens/Jobs/schemas/index.tsx","views/screens/Jobs/schemas/importJobs/index.tsx","views/screens/Jobs/sagas/backlog/index.tsx","views/screens/Jobs/sagas/board/index.tsx","views/screens/Jobs/schemas/jobsByUser/index.tsx","views/screens/Jobs/sagas/report/index.tsx","views/screens/Jobs/sagas/index.tsx","views/screens/Groups/sagas/index.tsx","views/screens/Quotations/schemas/index.tsx","views/screens/Quotations/sagas/index.tsx","views/screens/Contracts/schemas/index.tsx","views/screens/Contracts/sagas/index.tsx","views/screens/ContractTemplates/schemas/index.tsx","views/screens/ContractTemplates/sagas/index.tsx","views/screens/Customers/schemas/index.tsx","views/screens/Customers/sagas/index.tsx","views/screens/Offices/schemas/index.tsx","views/screens/Offices/services/index.ts","views/screens/Offices/sagas/index.tsx","views/screens/Forms/schemas/index.tsx","views/screens/Forms/services/forms.ts","views/screens/Forms/sagas/index.tsx","views/screens/vehicleMaintenance/schemas/catalogs/categories/index.ts","views/screens/vehicleMaintenance/services/categoriesService.ts","views/screens/vehicleMaintenance/sagas/catalogs/categories/index.ts","views/screens/MaintenanceLines/schemas/index.tsx","views/screens/MaintenanceLines/services/index.ts","views/screens/MaintenanceLines/sagas/index.tsx","views/screens/vehicleMaintenance/schemas/preventiveNotices/notices/index.ts","views/screens/vehicleMaintenance/services/noticeService.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByOdometer/index.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByDate/index.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByHourmeter/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/providers/index.ts","views/screens/vehicleMaintenance/services/providersService.ts","views/screens/vehicleMaintenance/sagas/catalogs/providers/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/services/workmanshipService.ts","views/screens/vehicleMaintenance/sagas/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/spareParts/index.ts","views/screens/vehicleMaintenance/services/sparePartsService.ts","views/screens/vehicleMaintenance/sagas/catalogs/spareParts/index.ts","views/screens/Protocols/schemas/index.tsx","views/screens/Protocols/services/protocols.ts","views/screens/Protocols/sagas/index.tsx","views/screens/ETAModelRoutes/schemas/index.tsx","views/screens/ETAModelRoutes/services/index.tsx","views/screens/ETAModelRoutes/sagas/index.tsx","views/screens/Notifications/schemas/index.tsx","views/screens/Notifications/sagas/index.tsx","redux/sagas/index.tsx","redux/storeConfig/store.js","views/screens/Units/types/index.tsx","redux/utils/alerts/index.tsx","utility/icomoon/index.js","redux/sagas/settings/apibaseurl.js","views/screens/Forms/types.tsx","views/screens/Entities/constants/index.tsx","views/screens/Groups/types/index.tsx","views/screens/Jobs/types/backlog/index.tsx","views/screens/Workplans/types/workplans/index.tsx","views/screens/Quotations/types.tsx","views/screens/Organizations/types.tsx","views/screens/Geofences/types/index.tsx","views/screens/Routes/types/routesExecutions/index.tsx","@core/layouts/components/menu/screens/index.tsx","views/screens/Routes/types/routes/index.tsx","views/screens/Locations/types/index.tsx","views/screens/Users/types/index.tsx","views/screens/Drivers/types/index.tsx","views/screens/Sensors/types.tsx","views/screens/Schedules/types.tsx","views/screens/Assets/types.tsx","views/screens/Modules/types.tsx","views/screens/Operators/types.tsx","views/screens/SIMs/types.tsx","views/screens/MaintenanceLines/types.tsx","views/screens/Agents/types.tsx","views/screens/Vehicles/types.tsx","views/screens/Customers/types.tsx","views/screens/Units/actions/index.tsx","views/screens/ServiceClasses/types.tsx","views/screens/Telemetry/utils/index.js","views/screens/Contracts/types.tsx","views/screens/ContractTemplates/types.tsx","views/screens/Offices/types.tsx","views/screens/Divisions/types.tsx","views/screens/Subdivisions/types.tsx","views/screens/Workplans/types/workplansExecutions/index.tsx","views/screens/Contacts/types/index.ts","views/screens/Protocols/types/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer/index.tsx","redux/types/static-catalogs/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter/index.tsx","utility/types.ts","utility/Utils.ts","views/screens/Entities/reducers/index.tsx","views/screens/vehicleMaintenance/types/catalogs/categories/index.ts","views/screens/vehicleMaintenance/types/catalogs/providers/index.ts","views/screens/vehicleMaintenance/types/catalogs/spareParts/index.ts","views/screens/vehicleMaintenance/types/catalogs/workmanship/index.ts","views/screens/Workplans/types/workplansAssignments/index.tsx","views/screens/Schedules/reducers/index.tsx","views/screens/Routes/types/routesComments/index.tsx","views/formComponents/DropdownInput/index.tsx","views/formComponents/TextInput/index.tsx","views/screens/Notifications/types.tsx","views/screens/Units/utils.tsx","views/screens/Geofences/actions/index.tsx","views/screens/Routes/types/routesAssignments/index.tsx","views/screens/Workplans/types/workplansExecutionLocations/index.tsx","views/screens/Workplans/types/workplansComments/index.tsx","views/screens/Geofences/reducers/index.tsx","views/formComponents/NumericalInput/index.tsx","redux/actions/auth/index.js","views/screens/Units/reducers/unitLiveStatus/index.tsx","views/screens/Units/reducers/index.tsx","views/screens/Units/services/index.ts","views/screens/Quotations/actions/index.tsx","views/screens/Schedules/actions/index.tsx","views/screens/vehicleMaintenance/permissions.ts","redux/types/static-catalogs/countries/index.tsx","views/screens/Locations/reducers/importedLocations/index.tsx","views/screens/Locations/reducers/index.tsx","views/screens/Contacts/actions/index.ts","views/screens/Locations/actions/index.tsx","views/screens/Jobs/actions/backlog/index.tsx","views/screens/Organizations/reducers/index.tsx","views/screens/Groups/actions/index.tsx","views/screens/Organizations/actions/index.tsx","views/screens/Groups/schemas/index.tsx","views/screens/Workplans/actions/workplans/index.tsx","views/screens/Forms/actions/index.tsx","views/screens/Routes/reducers/routesExecutions/index.tsx","views/components/DefaultButton/index.tsx","views/screens/Jobs/types/board/index.tsx","env.js","views/screens/Routes/actions/routes/index.tsx","views/screens/Jobs/types/index.tsx","views/screens/Workplans/types/workplansVisits/index.tsx","views/screens/Divisions/reducers/index.tsx","views/screens/Entities/views/FetchEntities/index.tsx","views/screens/Routes/utils/index.tsx","views/screens/Entities/types/index.tsx","views/formComponents/CheckBoxInput/index.tsx","views/screens/Subdivisions/reducers/index.tsx","views/screens/Workplans/permissions.ts","views/components/Toolbar/index.tsx","views/screens/Users/actions/index.tsx","views/screens/Jobs/services/jobs.ts","views/screens/Agents/actions/index.tsx","views/screens/Operators/actions/index.tsx","views/screens/Reports/permissions.ts","views/screens/Routes/reducers/routesReport/index.tsx","views/screens/Routes/reducers/routes/index.tsx","views/screens/Routes/permissions.ts","views/screens/Entities/actions/index.tsx","utility/http/interceptors/interceptor-utils.ts","views/screens/Drivers/actions/index.tsx","views/screens/Modules/actions/index.tsx","views/screens/Jobs/types/report/index.tsx","views/screens/Routes/types/routesReport/index.tsx","views/screens/Workplans/types/workplansReport/index.tsx","views/screens/ServiceClasses/actions/index.tsx","views/screens/Offices/actions/index.tsx","views/screens/Assets/actions/index.ts","views/screens/ContractTemplates/actions/index.tsx","views/screens/Customers/actions/index.tsx","views/screens/Divisions/actions/index.tsx","views/screens/Subdivisions/actions/index.tsx","views/screens/Contracts/actions/index.tsx","views/screens/Sensors/actions/index.tsx","views/screens/SIMs/actions/index.tsx","views/screens/Operators/reducers/index.tsx","views/screens/Vehicles/actions/index.tsx","views/screens/Routes/types/routeCheckpoints/index.tsx","utility/timeUtils/timeInSeconds.ts","redux/types/static-catalogs/vehicle-makers/index.tsx","redux/types/static-catalogs/vehicle-models/index.tsx","redux/types/static-catalogs/insurance-companies/index.tsx","redux/types/static-catalogs/insurance-agents/index.tsx","redux/types/navbar/index.js","@core/components/avatar/index.js","views/screens/Contacts/reducers/index.ts","views/screens/MaintenanceLines/actions/index.tsx","redux/types/static-catalogs/brands/index.js","views/formComponents/DateInput/index.tsx","redux/types/configurations/index.js","redux/types/models/index.tsx","redux/types/static-catalogs/cellular-providers/index.tsx","views/components/Table/index.tsx","views/screens/Offices/reducers/index.tsx","views/screens/Protocols/actions/index.tsx","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByHourmeter/index.ts","views/screens/TrackingUnits/permissions.ts","views/formComponents/TimeInput/index.tsx","views/components/Map/utils/index.tsx","views/screens/Locations/permissions.ts","views/screens/vehicleMaintenance/paths.ts","views/screens/Workplans/reducers/workplansExecutionLocations/index.tsx","views/screens/Workplans/actions/workplansAssignments/index.tsx","views/formComponents/Membership/hooks/useMembership.tsx","views/formComponents/Membership/index.tsx","views/formComponents/SwitchInput/index.tsx","views/formComponents/MultiSelectInput/index.tsx","views/screens/Jobs/utils/index.tsx","views/screens/Customers/reducers/index.tsx","views/screens/Geofences/permissions.ts","redux/reducers/static-catalogs/location-classes/index.js","views/screens/ETAModelRoutes/types/index.tsx","views/components/DefaultSimpleButton/index.tsx","views/screens/Groups/reducers/index.tsx","redux/reducers/configurations/index.js","views/screens/vehicleMaintenance/actions/catalogs/categories/index.ts","views/screens/Routes/actions/routesExecutions/index.tsx","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer/index.ts","views/components/DeleteButton/index.tsx","views/components/TitleH4/index.js","views/screens/Drivers/reducers/index.tsx","views/formComponents/LocationDropDown/index.tsx","views/screens/Agents/reducers/index.tsx","views/components/MediaGallery/index.tsx","views/screens/Units/permissions.ts","views/screens/VehicleFuel/permissions.ts","views/screens/Notifications/actions/index.tsx","views/screens/Workplans/services/workplans.ts","views/screens/Telemetry/permissions.ts","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByDate/index.ts","views/components/Map/components/MapGeofenceEdit/index.tsx","views/components/Map/components/MapGeofences/index.tsx","views/components/Map/components/MapLocationEdit/index.tsx","views/components/Map/components/MapLocations/index.tsx","views/components/Map/components/MapObjectsBounds/index.tsx","views/components/Map/utils/poliyline.js","views/components/Map/utils/lrm-google.js","views/components/Map/components/RouteItem/index.tsx","views/components/Map/components/SlidingPaneAddAlternateRoute/index.tsx","views/components/Map/components/SlidingPaneEditRoute/index.tsx","views/components/Map/components/MapRouteEdit/useMapRouteEdit.tsx","views/components/Map/components/MapRouteEdit/index.tsx","views/screens/Routes/views/SlidingPaneRouteInformation/index.tsx","views/components/Map/components/MapRoutes/index.tsx","views/components/Map/components/RulerControl/index.tsx","views/components/Map/components/ToolbarGeofencesControl/index.tsx","views/components/Map/components/ToolbarHomeControl/index.tsx","views/components/Map/components/ToolbarLocationsControl/index.tsx","views/components/Map/components/ToolbarRoutesControl/index.tsx","views/components/Map/components/ToolbarUnitsControl/index.tsx","views/components/Map/index.tsx","views/screens/Users/reducers/index.tsx","views/screens/Forms/reducers/index.tsx","views/screens/Drivers/services/drivers.ts","views/screens/Notifications/permissions.ts","views/screens/Routes/actions/routesAssignments/index.tsx","views/screens/Groups/services/groups.ts","views/screens/vehicleMaintenance/actions/catalogs/spareParts/index.ts","redux/types/static-catalogs/sensor-measures/index.tsx","views/screens/Routes/services/routes.ts","views/screens/vehicleMaintenance/actions/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/actions/catalogs/providers/index.ts","views/components/EditButton/index.tsx","views/formComponents/SlidingPaneForm/index.tsx","views/screens/Organizations/services/index.ts","views/screens/vehicleMaintenance/reducers/catalogs/categories/index.ts","navigation/vertical/affiliations.js","navigation/vertical/inventories.js","navigation/vertical/schedules.js","navigation/vertical/groups.js","navigation/vertical/drivers.js","navigation/vertical/people.js","navigation/vertical/users.js","navigation/vertical/customers.js","views/screens/Contacts/sidebarLayout.ts","views/screens/Offices/sidebarLayout.tsx","navigation/vertical/catalogs.js","navigation/vertical/notifications.js","views/screens/Forms/sidebarLayout.ts","navigation/vertical/administrations.js","views/screens/Workplans/sidebarLayout.tsx","views/screens/Routes/sidebarLayout.tsx","views/screens/Optimizations/sidebarLayout.tsx","navigation/vertical/vehicleFuel.js","navigation/vertical/vehicleMaintenance.tsx","navigation/vertical/operations.js","views/screens/Telemetry/sidebarLayout.tsx","navigation/vertical/telemetry.js","navigation/vertical/maps.js","views/screens/Dashboard/sidebarLayout.ts","views/screens/Locations/sidebarLayout.tsx","navigation/vertical/geofences.js","navigation/vertical/pointsOfInterest.js","navigation/vertical/reports.js","navigation/vertical/trackingUnits.js","navigation/vertical/general.js","navigation/vertical/contracts.js","navigation/vertical/generalCRM.js","views/screens/Jobs/sidebarLayout.ts","views/screens/SafeDriver/sidebarLayout.ts","navigation/vertical/apps.js","navigation/vertical/businessPartners.js","navigation/vertical/generalAdmin.js","navigation/vertical/console.js","navigation/vertical/protocol.js","navigation/vertical/generalMonitoringCenter.js","navigation/vertical/index.js","redux/types/static-catalogs/location-classes/index.js","redux/types/static-catalogs/time-zones/index.tsx","redux/types/static-catalogs/currencies/index.ts","redux/types/static-catalogs/sensor-brands/index.tsx","redux/types/static-catalogs/sensor-models/index.tsx","redux/types/static-catalogs/payment-methods/index.ts","views/screens/Workplans/reducers/workplansAssignments/index.tsx","views/screens/Locations/services/locations.ts","views/screens/Sensors/services/sensors.ts","views/formComponents/ContactsDropdown/index.tsx","views/screens/Assets/reducers/index.tsx","views/screens/Routes/actions/routeCheckpoints/index.tsx","views/screens/SIMs/reducers/index.tsx","views/screens/Routes/paths.ts","views/screens/Geofences/services/geofences.ts","views/formComponents/CustomersDropdown/index.tsx","views/screens/Sensors/reducers/index.tsx","views/screens/Jobs/permissions.ts","views/screens/Telemetry/paths.ts","views/screens/Jobs/actions/board/index.tsx","redux/actions/navbar/index.js","views/screens/Workplans/actions/workplansComments/index.tsx","views/formComponents/UnitsDropdown/index.tsx","views/components/DropdownInput/index.tsx","configs/themeConfig.js","views/screens/Users/services/index.ts","views/screens/Vehicles/reducers/index.tsx","views/screens/Workplans/reducers/workplansExecutions/index.tsx","views/screens/Workplans/reducers/workplansVisits/index.tsx","views/screens/Workplans/reducers/workplansReport/index.tsx","views/screens/Workplans/reducers/workplans/index.tsx","views/screens/Quotations/reducers/index.tsx","views/screens/ServiceClasses/reducers/index.tsx","views/screens/Contracts/reducers/index.tsx","views/screens/ContractTemplates/reducers/index.tsx","views/screens/Schedules/permissions.ts","views/formComponents/OfficesDropdown/index.tsx","views/screens/Locations/views/SlidingPaneEditLocation/index.tsx","views/screens/VehicleFuel/paths.ts","views/screens/Units/reducers/deviceActions/index.tsx","views/screens/Units/reducers/deviceMetrics/index.tsx","views/screens/Units/reducers/groups/index.tsx","views/screens/Units/reducers/images/index.tsx","views/screens/Units/reducers/reports/index.tsx","views/screens/Units/reducers/sensors/index.tsx","redux/actions/static-catalogs/location-classes/index.js","views/components/Map/components/MarkerClusterGroup/index.tsx","views/screens/Workplans/paths.ts","views/screens/Jobs/paths.ts","views/screens/Jobs/actions/index.tsx","views/formComponents/ColorPicker/index.tsx","views/formComponents/GeofenceShapeDropdownInput/index.tsx","views/formComponents/WebtrackCustomInput/index.tsx","views/screens/Customers/services/index.ts","views/screens/MaintenanceLines/reducers/index.tsx","views/formComponents/RadioButtonInput/index.tsx","views/screens/Schedules/utils.tsx","views/screens/Modules/reducers/index.tsx","views/screens/SIMs/services/index.ts","views/screens/Routes/views/RoutesAssignUnitScreen/SelectAssignmentTypeTab.tsx","views/screens/Routes/reducers/routesAssignments/index.tsx","views/screens/Protocols/reducers/index.tsx","views/screens/ServiceClasses/permissions.ts","views/screens/Routes/services/routesAssignments.ts","views/screens/Notifications/paths.ts","views/screens/Jobs/actions/report/index.tsx","views/screens/Routes/services/routesComments.ts","views/screens/Routes/reducers/routesComments/index.tsx","views/screens/Routes/reducers/routeCheckpoints/index.tsx","views/screens/Forms/permissions.ts","views/screens/Protocols/permissions.ts","views/components/ButtonIconDropdown/index.tsx","views/formComponents/ManualHourmeterAdjustment/index.tsx","views/formComponents/SlidingPaneManualHourmeterAdjustment/index.tsx","views/screens/Units/hooks/useGetUnitAssets.ts","views/screens/Units/views/SlidingPaneShareUnitLocation/index.tsx","views/screens/Units/views/SlidingPaneUnitHistoricalPositionsReport/index.tsx","views/screens/Units/services/unitImages.ts","views/screens/Units/views/SlidingPaneUnitImages/index.tsx","views/screens/Units/hooks/useGetUnitScripts.ts","views/screens/Units/hooks/useInsertUnitScript.ts","views/screens/Units/views/SlidingPaneUnitSendScripts/index.tsx","views/screens/Units/views/UnitFuel/index.tsx","views/screens/Units/views/UnitTemperature/index.tsx","views/screens/Units/views/SlidingPaneUnitInformation/index.tsx","views/components/Map/components/MapUnits/index.tsx","views/components/AddButton/index.tsx","views/components/ReportViewerButton/index.tsx","views/components/TabsWrapper/TabsCardContent.js","views/components/TabsWrapper/TabsContent.js","views/components/TabsWrapper/index.tsx","hooks/useRerender/index.ts","hooks/useBoolean/index.ts","views/components/FilesGallery/SlidingPaneEditFileName/index.tsx","views/components/FilesGallery/index.tsx","redux/actions/static-catalogs/currencies/index.js","views/screens/Notifications/services/index.ts","hooks/useWebtrackServiceOnAction/index.ts","assets/data/locales/es.ts","assets/data/locales/en.ts","utility/context/Internationalization.js","views/formComponents/UsersDropdown/index.tsx","redux/actions/static-catalogs/time-zones/index.tsx","redux/reducers/static-catalogs/brands/index.js","redux/reducers/static-catalogs/countries/index.tsx","views/screens/Routes/schemas/routesAssignments/index.tsx","redux/actions/static-catalogs/brands/index.js","views/screens/Geofences/utils/index.tsx","views/screens/ServiceClasses/paths.ts","views/screens/TrackingUnits/paths.ts","redux/actions/configurations/index.js","redux/actions/models/index.tsx","redux/actions/static-catalogs/vehicle-makers/index.tsx","redux/actions/static-catalogs/vehicle-models/index.tsx","views/formComponents/LocationClassesDropdownInput/index.tsx","views/screens/Workplans/reducers/workplansComments/index.tsx","redux/actions/static-catalogs/cellular-providers/index.tsx","views/components/Map/components/RotatedMarker/index.tsx","redux/actions/static-catalogs/insurance-companies/index.tsx","redux/actions/static-catalogs/insurance-agents/index.tsx","redux/actions/static-catalogs/sensor-brands/index.tsx","redux/actions/static-catalogs/sensor-models/index.tsx","redux/actions/static-catalogs/sensor-measures/index.tsx","views/screens/Jobs/reducers/importedJobs/index.tsx","views/screens/Jobs/reducers/backlog/index.tsx","views/formComponents/ManualOdometerAdjustment/index.tsx","views/formComponents/SlidingPaneManualOdometerAdjustment/index.tsx","views/formComponents/ImageUploader/ImgUtils.js","views/formComponents/ImageUploader/index.js","views/screens/Routes/services/routeExecution.ts","assets/images/logo sync /^/.//.*logoName/.png$","views/screens/Vehicles/services/index.ts","views/screens/Assets/services/index.ts","views/components/TabsWrapper/Tabs.js","views/screens/Modules/services/index.ts","views/screens/Workplans/services/workplansAssignments.ts","views/screens/BusinessPartners/paths.ts","views/screens/Locations/paths.ts","views/screens/Geofences/paths.ts","views/components/Map/components/MapBaseLayers/index.tsx","views/screens/Operators/permissions.ts","views/screens/Organizations/permissions.ts","views/screens/Agents/permissions.ts","views/screens/Divisions/permissions.ts","views/screens/Subdivisions/permissions.ts","views/screens/Schedules/paths.ts","views/screens/Forms/paths.ts","views/screens/Optimizations/permissions.ts","views/screens/Workplans/services/workplansVisits.ts","views/components/TableTimePicker/index.tsx","views/components/Map/components/ToolbarUnitTrajectoryControl/index.tsx","assets/images/logo/logo.png","redux/actions/static-catalogs/payment-methods/index.tsx","views/components/Collapse/index.tsx","views/screens/Reports/services/index.ts","redux/reducers/static-catalogs/currencies/index.tsx","@core/components/spinner/Fallback-spinner.js","views/screens/Routes/views/RoutesAssignUnitScreen/RoutesAssignUnitContext.tsx","views/formComponents/DriverDropDown/index.tsx","views/formComponents/EventsDropdown/index.tsx","views/formComponents/ScheduleDropdown/index.tsx","views/components/ControlChart/index.tsx","views/screens/Groups/permissions.ts","assets/images/logo sync /^/.//.*logo/.svg$","views/formComponents/DurationInput/index.tsx","views/formComponents/TextEditorInput/index.tsx","views/screens/Reports/paths.ts","redux/reducers/static-catalogs/time-zones/index.tsx","views/screens/Notifications/views/listSystemNotifications/utils.tsx","views/screens/Drivers/hooks/useGetDriverImages.ts","views/screens/vehicleMaintenance/reducers/catalogs/spareParts/index.ts","views/screens/Units/hooks/useGetDowntimeBinnacle.ts","views/formComponents/SlidingPaneDowntimeBinnacle/index.tsx","views/formComponents/FormsDropdown/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/workmanship/index.ts","views/screens/Contracts/paths.ts","views/formComponents/SlidingPaneAddEditContact/index.tsx","views/screens/Operators/services/operators.ts","views/screens/Jobs/components/JobPriorityDropdownInput/index.js","views/components/SimpleAlertMessage/index.tsx","views/formComponents/SlidingPanePreviewDriverImages/index.tsx","redux/reducers/models/index.tsx","views/screens/Sensors/permissions.ts","views/screens/Users/permissions.ts","redux/reducers/static-catalogs/vehicle-makers/index.tsx","redux/reducers/static-catalogs/vehicle-models/index.tsx","views/screens/Locations/services/locationImages.ts","views/screens/Locations/views/SlidingpanelLocationImages/index.tsx","views/screens/Locations/views/SlidingpanelLocationInformation/index.tsx","views/screens/Reports/hooks/useGetEventActivityDropdown.ts","views/screens/Jobs/components/JobTypeDropdownInput/index.js","views/screens/Jobs/components/JobStatusDropdownInput/index.js","views/formComponents/GeofenceDropDown/index.tsx","views/screens/Notifications/reducers/index.tsx","views/screens/Operators/paths.ts","views/screens/Organizations/paths.ts","views/screens/Agents/paths.ts","views/screens/Divisions/paths.ts","views/screens/Subdivisions/paths.ts","views/screens/Modules/paths.ts","views/screens/Vehicles/paths.ts","views/screens/SIMs/paths.ts","views/screens/Sensors/paths.ts","views/screens/Assets/paths.ts","views/screens/Modules/permissions.ts","views/screens/Vehicles/permissions.ts","views/screens/SIMs/permissions.ts","views/screens/Assets/permissions.ts","views/screens/Groups/paths.ts","views/screens/Drivers/paths.ts","views/screens/People/paths.ts","views/screens/Users/paths.ts","views/screens/Customers/paths.ts","views/screens/Customers/permissions.ts","views/screens/Optimizations/paths.ts","views/screens/Dashboard/paths.ts","views/screens/Quotations/paths.ts","views/screens/SafeDriver/paths.ts","views/screens/Console/paths.ts","views/screens/Console/permissions.ts","views/screens/Protocols/paths.ts","redux/reducers/static-catalogs/cellular-providers/index.tsx","utility/context/Can.js","views/screens/Entities/services/index.ts","views/screens/Entities/hooks/useGetBinnacle.ts","views/screens/Entities/hooks/useInsertBinnacleComment.ts","views/formComponents/SlidingPaneEntityBinnacle/index.tsx","views/screens/Entities/utils/index.ts","views/screens/ETAModelRoutes/reducers/index.tsx","views/formComponents/SlidingPaneAddEditCustomer/index.tsx","views/screens/Offices/views/SlidingPaneEditOffice/index.tsx","views/formComponents/GoogleLocationDropDown/index.tsx","views/screens/Operators/hooks/useGetOperatorContacts.ts","views/screens/Organizations/hooks/useGetContacts.ts","views/screens/Geofences/views/SlidingpanelGeofenceInformation/index.tsx","views/screens/vehicleMaintenance/components/NoticeTypeDropdownInput/index.tsx","views/screens/vehicleMaintenance/components/CategoriesDropdownInput/index.tsx","views/components/ShiftSlide/index.tsx","views/components/TriggerSlide/index.tsx","views/formComponents/ThemeDropdown/index.tsx","views/screens/Routes/hooks/useGetAlternateRoutes.ts","views/formComponents/SlidingPaneStartUnitDowntime/index.tsx","views/screens/Organizations/hooks/useGetDowntimeReasons.ts","views/screens/Reports/views/byUnit/reportScriptHistory/utils.tsx","views/screens/Units/hooks/useGetUnitTemperatureHistory.ts","views/screens/vehicleMaintenance/reducers/catalogs/providers/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByDate/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByHourmeter/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByOdometer/index.ts","views/screens/Drivers/permissions.ts","views/screens/People/permissions.ts","views/screens/Contacts/paths.ts","views/screens/Offices/paths.ts","views/screens/Offices/permissions.ts","views/screens/Dashboard/permissions.ts","views/screens/ContractTemplates/paths.ts","views/screens/Contracts/permissions.ts","views/screens/ContractTemplates/permissions.ts","views/screens/Quotations/permissions.ts","views/screens/SafeDriver/permissions.ts","redux/reducers/static-catalogs/payment-methods/index.tsx","redux/reducers/static-catalogs/insurance-companies/index.tsx","redux/reducers/static-catalogs/insurance-agents/index.tsx","redux/reducers/static-catalogs/sensor-brands/index.tsx","redux/reducers/static-catalogs/sensor-models/index.tsx","redux/reducers/static-catalogs/sensor-measures/index.tsx","redux/sagas/settings/tokenLifeTime.js","views/screens/Routes/services/routeCheckpoints.ts","views/screens/vehicleMaintenance/utils/getPreventiveNoticesByOdometerIndicators.tsx","views/screens/Units/hooks/useGetUnitSpecialFunctions.ts","views/screens/Units/hooks/useGetSpecialFunctionsDropdown.ts","views/formComponents/SpecialFunctionsDropdown/index.tsx","views/formComponents/SlidingPaneUnitSpecialFunctions/SlidingPaneEditUnitSpecialFunctions/index.tsx","views/formComponents/SlidingPaneUnitSpecialFunctions/index.tsx","views/screens/Jobs/reducers/board/index.tsx","views/screens/Jobs/reducers/report/index.tsx","views/screens/Jobs/reducers/index.tsx","views/screens/ExternalLogin/views/SharedLinkUnitLocation/SlidingPaneSharedLinkUnitInformation/index.tsx","views/components/Map/components/MapUnitsPublic/index.tsx","views/components/Map/context/GoogleMapsContext.tsx","views/components/Map/context/useGoogleMapsScript.ts","views/screens/vehicleMaintenance/components/dropDownIcons/options.tsx","views/screens/vehicleMaintenance/components/dropDownIcons/index.tsx","assets/images/logo sync /^/.//.*logo/.png$","globals.js","assets/images/logo/logo.svg","assets/images/logo/cass/logo.svg","assets/images/logo/kripton/logo.svg","assets/images/logo/oneguard/logo.svg","assets/images/logo/prosegur/logo.svg","assets/images/logo/schooltracker/logo.svg","assets/images/logo/scm/logo.svg","assets/images/logo/tzultaka/logo.svg","assets/images/logo/cass/logoName.png","assets/images/logo/kripton/logoName.png","assets/images/logo/logoName.png","assets/images/logo/oneguard/logoName.png","assets/images/logo/prosegur/logoName.png","assets/images/logo/schooltracker/logoName.png","assets/images/logo/scm/logoName.png","assets/images/logo/tzultaka/logoName.png","assets/images/logo/cass/logo.png","assets/images/logo/kripton/logo.png","assets/images/logo/oneguard/logo.png","assets/images/logo/prosegur/logo.png","assets/images/logo/schooltracker/logo.png","assets/images/logo/scm/logo.png","assets/images/logo/tzultaka/logo.png","configs/acl/ability.js","configs/acl/initialAbility.js","utility/context/ThemeColors.js","@core/components/ripple-button/index.js","serviceWorker.js","index.js"],"names":["tokenRefreshFailCount","state","action","type","types","auth","combineReducers","token","payload","newToken","user","camelcaseKeys","jwtDecode","mapOptions","console","log","enableLocationClustering","locationMapLabelAlwaysOn","activateUnitTrackMode","unitMapLabelAlwaysOn","unitsLabelContent","zoomLevelToStartClustering","newImage","imageName","userImageUrl","homeScreenId","mapEntitiesFilterTab","membership","navigationOptions","productId","isAuthenticating","isUpdatingMapSettingsConfiguration","isUpdatingProfileGeneralInformation","isUpdatingProfilePassword","isUpdatingProfileMapOptions","isRefreshing","error","refreshingError","catalogFilters","catalog","filters","initialValues","authPersistConfig","key","storage","localforage","stateReconciler","autoMergeLevel2","blacklist","persistReducer","getOwnState","getUser","getAuthToken","getIsAuthenticating","getIsUpdatingProfileInformation","getisUpdatingMapSettingsConfiguration","getIsUpdatingProfileMapOptions","getIsUpdatingProfilePassword","getAuthenticatingError","getAuthUserID","user_id","getAuthExpiration","exp","getAuthUsername","username","getAuthUser","getAuthUserForMembership","getAuthUserTimezoneName","zoneName","Intl","DateTimeFormat","resolvedOptions","timeZone","getAuthUserCountryIdsForGoogleSearch","countriesForGoogleSearch","getAuthUserMapEntitiesFilterTab","Number","getAuthUserMapGroupIdActive","mapGroupIdActive","getAuthUserMapHomeCenter","homeLatitude","homeLongitude","getAuthUserMapHomeZoom","homeZoom","isAuthenticated","getAuthUserPermissions","permissions","split","getAuthUserOrganizationId","organizationId","getAuthUserDivisionId","divisionId","getAuthUserSubdivisionId","subdivisionId","getAuthUserAccessLevelId","accessLevelId","getAuthUserHomeScreenId","parseInt","getNavigationProduct","getAuthUserMembershipFilters","filterOperatorId","filterOrganizationId","operatorId","includes","organizationSelectors","allowNullOrganizationId","getAuthUserOperatorId","getAuthUserHasPermissionsAny","some","userPer","getAuthUserHasPermissionByAccessLevels","accessLevels","isAuthUserSystemOrOperator","getAuthUserHasPermissionsEvery","every","getUserCatalogFilters","getAuthSystems","distance","distanceSystem","capacity","capacitySystem","volume","volumeSystem","temperature","temperatureSystem","distance2","distance2System","speed","speedSystem","fuel","fuelSystem","fuel2","fuel2System","performance","getParsers","convertMetersToAuthUserDistanceSystem","meters","metricSystemId","convertKilometersToAuthUserDistanceSystem","kilometers","convertAuthUserDistanceSystemToMeters","authUserDistanceSystem","convertAuthUserDistanceSystemToKilometers","convertGalonsToAuthUserCapacitySystem","gal","convertAuthUserCapacitySystemToGalons","authUserCapacitySystem","convertLitersToAuthUserCapacitySystem","lt","convertAuthUserCapacitySystemToLiters","convertCubicMetersToAuthUserVolumeSystem","cubicMeters","convertAuthUserVolumeSystemToCubicMeters","authUserVolumeSystem","convertAuthUserVolumeSystemToCubicCentimeters","c","authUserTemperatureSystem","authUserDistance2System","kilometersPerHour","authUserSpeedSystem","kmPerGal","authUserFuelSystem","kmPerLiter","galPerHour","authUserFuel2System","litersPerHour","getIsRefreshingToken","getRefreshingError","getTokenRefreshFailCount","intl","IntlGlobalProvider","children","useIntl","appIntl","AUTHENTICATION_STARTED","AUTHENTICATION_COMPLETED","AUTHENTICATION_FAILED","AUTHENTICATION_FAILED_CLEAR","AUTHENTICATION_IDENTITY_CLEARED","AUTHENTICATION_SET_MEMBERSHIP","AUTHENTICATION_USER_INFORMATION_STARTED","AUTHENTICATION_USER_INFORMATION_COMPLETED","TOKEN_REFRESH_STARTED","TOKEN_REFRESH_FORCE_STARTED","TOKEN_REFRESH_COMPLETED","TOKEN_REFRESH_FAILED","PROFILE_UPDATE_GENERAL_INFORMATION_STARTED","PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED","PROFILE_UPDATE_GENERAL_INFORMATION_FAILED","PROFILE_UPDATE_PASSWORD_STARTED","PROFILE_UPDATE_PASSWORD_COMPLETED","PROFILE_UPDATE_PASSWORD_FAILED","PROFILE_UPDATE_PICTURE_STARTED","PROFILE_UPDATE_PICTURE_COMPLETED","PROFILE_UPDATE_PICTURE_FAILED","PROFILE_UPDATE_MAP_OPTIONS_STARTED","PROFILE_UPDATE_MAP_OPTIONS_COMPLETED","PROFILE_UPDATE_MAP_OPTIONS_FAILED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED","PROFILE_UPDATE_HOME_SCREEN_STARTED","PROFILE_UPDATE_HOME_SCREEN_COMPLETED","PROFILE_UPDATE_HOME_SCREEN_FAILED","PROFILE_CHANGE_PRODUCT_STARTED","PROFILE_CHANGE_PRODUCT_COMPLETED","PROFILE_CHANGE_PRODUCT_FAILED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED","PROFILE_SET_CATALOGS_FILTERS","headers","Accept","promiseWith","data","Promise","resolve","HttpWebtrack","baseURL","API_BASE_URL","configMessage","configAction","setConfigMessage","setConfigActions","config","service","this","axios","create","path","a","get","Authorization","response","responseType","patch","post","put","delete","getSuccessMessage","genderType","getFailMessage","handleSuccess","successTimer","useSuccessTimer","alertObject","object","formatMessage","id","name","undefined","customMessage","messageId","message","success","Swal","fire","icon","text","timer","timerProgressBar","showConfirmButton","position","toast","didOpen","addEventListener","stopTimer","resumeTimer","customClass","confirmButton","content","iconColor","buttonsStyling","alerts","successAction","handleError","mixin","status","errorTimer","customMessageError","errorAction","reject","httpWebtrack","methods","authTokenInterceptor","session","endDateAdjustment","ConfigureWebtrackInterceptor","store","interceptors","request","use","x","method","toUpperCase","axiosResponse","conf","getState","initialState","isRTL","themeConfig","layout","menuCollapsed","item","window","localStorage","getItem","JSON","parse","menu","isCollapsed","initialMenuCollapsed","menuHidden","isHidden","menuPinner","isPinner","contentWidth","layoutReducer","setItem","title","size","iconName","navLink","suggestions","sidebar","sidebarOptions","outsideSidebarOptions","bookmarks","query","isFetchingBookmarks","navbar","navbarTypes","objectToUpdate","find","isBookmarked","bookmarkIndex","findIndex","push","splice","getUserBookmarks","staticCatalogs","currencies","timeZones","countries","providers","vehicleMakers","vehicleModels","insuranceCompanies","insuranceAgents","sensorBrands","sensorModels","sensorMeasures","paymentMethods","locationClasses","brands","reducer","operators","organizations","divisions","subdivisions","serviceClasses","agents","modules","entities","people","workplans","locations","drivers","monitoringUsers","routes","schedules","units","categories","workmanship","geofences","sims","vehicles","assets","sensors","forms","jobs","groups","quotations","organizationContracts","contractTemplates","customers","offices","form","formReducer","noticesByOdometer","noticesByDate","noticesByHourmeter","spareParts","maintenanceLines","protocols","userNotifications","etaModels","rootReducer","newState","authTypes","removeItem","agent","schema","Entity","idAttribute","Array","fetchAgentsList","watchFetchAgentsList","partialFetchAgentsList","watchPartialFetchAgentsList","addAgent","watchAddAgentsStarted","editAgent","watchEditAgentsStarted","removeAgent","watchRemoveAgentStarted","fetchAgent","watchAgentFetchStarted","select","authSelectors","call","fetch","body","stringify","json","jsonResult","resultData","map","result","normalize","schemas","actions","errorMessage","errorNumber","number","toString","takeEvery","entityTypeId","entitySelectors","date","userFetchDate","agentId","addedAgent","agentName","editedAgent","selectors","oldAgent","isAuth","agentSelectors","deletedAgent","division","fetchDivisionsList","watchFetchDivisionsList","partialFetchDivisionsList","watchPartialFetchDivisionsList","addDivision","watchAddDivisionsStarted","editDivision","watchEditDivisionsStarted","removeDivision","watchRemoveDivisionStarted","addedDivision","divisionName","editedDivision","oldDivision","deletedDivision","entity","startFetchingDestinations","completeFetchingDestination","order","failFetchingDestination","startFetchingCountries","failFetchingCountries","startPartialFetchingCountries","fetchEntitiesList","watchFetchEntitiesList","updateEntities","watchUpdateEntities","entitiesToUpdate","isEntityUpdatedFunction","isEntityUpdated","all","index","entityTypes","unitsActions","subdivisionsActions","maintenanceLinesActions","vehicleActions","modulesActions","agentActions","serviceClassesActions","isDropdown","operatorsActions","divisionsActions","formsActions","organizationsActions","organizationContractsActions","contractTemplatesActions","customersActions","contactsActions","workplansActions","geofencesActions","bounds","schedulesActions","routesActions","simActions","countriesActions","locationActions","officeActions","driverActions","assetsActions","sensorsActions","jobActions","groupsActions","protocolsActions","destinationActions","notificationsActions","geofence","fetchGeofencesList","watchFetchGeofencesList","partialFetchGeofencesList","watchPartialFetchGeofencesList","addGeofence","watchAddGeofencesStarted","editGeofence","watchEditGeofencesStarted","removeGeofence","watchRemoveGeofenceStarted","assignGeofenceUnit","watchAssignGeofenceUnit","removeGeofenceAssignation","removeAllAssigmentsByGeofences","removeAllAssigmentsByUnits","watchRemoveGeofenceAssignation","watchRemoveAllAssignmentsByGeofences","watchRemoveAllAssignmentsByUnits","editGeofenceAssignation","watchEditGeofenceAssignation","fetchGeofenceById","watchFetchGeofenceById","filterBounds","getGeofencesListService","minLat","maxLat","minLng","maxLng","dispatch","showInMapGeofences","saveGeofenceService","geofenceId","addedGeofence","oldGeofence","editedGeofence","deleteGeofenceService","assignation","length","unitGeofences","unitGeofenceInfo","getGeofenceByIdService","moduleSchema","fetchModulesList","watchFetchModulesList","partialFetchModulesList","watchPartialFetchModulesList","addModule","watchAddModulesStarted","editModule","watchEditModulesStarted","removeModule","watchRemoveModuleStarted","fetchModule","watchModuleFetchStarted","getModulesListService","module","deviceId","identifier","addedModule","editedModule","oldModule","moduleId","deletedModule","operator","contact","contacts","fetchOperatorsList","watchFetchOperatorsList","partialFetchOperatorsList","watchPartialFetchOperatorsList","addOperator","watchAddOperatorsStarted","editOperator","watchEditOperatorsStarted","removeOperator","watchRemoveOperatorStarted","editOperatorStandardPrices","watchEditOperatorStandardPricesStarted","addedOperator","operatorData","operatorName","editedOperator","operatorContacts","contactSchemas","contactActions","oldOperator","operatorSelectors","deletedOperator","standardPrices","editedOperatorStandardPrices","organization","fetchOrganizationsList","watchFetchOrganizationsList","partialFetchOrganizationsList","watchPartialFetchOrganizationsList","addOrganization","watchAddOrganizationsStarted","editOrganization","watchEditOrganizationsStarted","saveConsolidableEvents","watchSaveConsolidableEventsStarted","removeOrganization","watchRemoveOrganizationStarted","checkRegistrationCode","watchRegistrationCodeStarted","assigCode","watchCodeAssignStarted","addOrganizationDowntimeReason","watchAddOrganizationDowntimeReasonsStarted","editOrganizationDowntimeReason","watchEditOrganizationDowntimeReasonsStarted","removeOrganizationDowntimeReason","watchRemoveOrganizationDowntimeReasonsStarted","getOrganizationsListService","organizationList","usersData","usersList","usersByOrganization","groupBy","forEach","sacUsers","isSelected","addedOrganization","organizationData","quotationId","quotationActions","baseQuotationId","organizationName","organizationTaxNumber","taxNumber","organizationType","oldOrganization","editedOrganization","consolidableEvents","deleteOrganizationService","code","validCode","RegistrationCodeStatus","registrationCode","registrationMails","registrationDivisionId","registrationSubdivisionId","allowedApplications","downtimeReason","reasonId","addedDowntimeReason","reasonDescription","altText","editedDowntimeReason","serviceClass","fetchServiceClassesList","watchFetchServiceClassesList","addServiceClass","watchAddServiceClassesStarted","editServiceClass","watchEditServiceClassesStarted","removeServiceClass","watchRemoveServiceClassStarted","fetchServiceClass","watchServiceClassFetchStarted","isWebPage","urlGet","serviceClassId","addedServiceClass","serviceClassName","editedServiceClass","oldServiceClass","deletedServiceClass","subdivision","fetchSubdivisionsList","watchFetchSubdivisionsList","partialFetchSubdivisionsList","watchPartialFetchSubdivisionsList","addSubdivision","watchAddSubdivisionsStarted","editSubdivision","watchEditSubdivisionsStarted","removeSubdivision","watchRemoveSubdivisionStarted","addedSubdivision","editedSubdivision","subdivisionName","oldSubdivision","deletedSubdivision","unit","deviceMetric","deviceMetrics","deviceAction","deviceActions","group","report","reports","image","images","sensor","fetchUnitsList","watchFetchUnitsList","partialFetchUnitsList","watchPartialFetchUnitsList","fetchUnitsLiveStatusList","watchFetchUnitsLiveStatusList","fetchUnitInformation","watchFetchUnitInformationStarted","fetchUnitHistoricalPositionsReport","watchFetchUnitHistoricalPositionsStarted","fetchUnitTrajectory","watchFetchUnitTrajectoryStarted","executeDeviceAction","watchExecuteDeviceAction","addUnit","watchAddUnitsStarted","editUnit","watchEditUnitsStarted","acknowledgeUnitEvent","watchAcknowledgeUnitEvent","removeUnit","watchRemoveUnitStarted","activeUnits","watchActiveUnits","assignDriver","watchAssignDriverUnitsStarted","startUnitDowntime","watchStartUnitDowntimeStarted","endUnitDowntime","watchEndUnitDowntimeStarted","createSharedLink","watchCreateSharedLinkUnitStarted","updateSim","watchUpdateSim","fetchUnitById","watchFetchUnitById","getUnitsListService","ENTITY_UNITS","getUnitsLiveStatusListService","unitId","getUnitInformationService","unitData","unitMetrics","deviceMetricsSchemas","deviceMetricsEntities","deviceMetricsOrder","unitActions","deviceActionsSchemas","deviceActionsEntities","deviceActionsOrder","groupsData","groupsSchemas","groupsEntities","groupsOrder","unitReports","reportsSchemas","reportsEntities","reportsOrder","unitImages","imagesSchemas","imagesEntities","imagesOrder","unitSensorMeasures","sensorsSchemas","sensorsEntities","sensorsOrder","reportType","startDate","endDate","idleSpeed","getUnitHistoricalPositionsReportService","parkedPositions","i","polyline","positions","limit","getUnitTrajectoryService","deviceActionId","parameters","executeDeviceActionService","addedUnit","unitName","editedUnit","oldUnit","acknowledgeUnitEventService","unitBody","unitsName","multiple","driverName","plural","mainStateId","mainStateDate","emails","ttl","sharedLink","requestData","oldUnitId","additionalOnSuccess","updateSimCardService","camelize","getUnitByIdService","schedule","fetchSchedulesList","watchFetchSchedulesList","partialFetchSchedulesList","watchPartialFetchSchedulesList","addSchedule","watchAddSchedulesStarted","editSchedule","watchEditSchedulesStarted","addShift","watchAddShiftStarted","editScheduleShift","watchEditSchedulesShiftStarted","removeSchedule","watchRemoveScheduleStarted","scheduleId","addedSchedule","scheduleName","editedSchedule","oldSchedule","scheduleSelectors","scheduleDeleted","bookmark","login","watchLoginStarted","userInformationRequest","watchUserInformationRequest","refreshToken","watchRefreshTokenStarted","forceRefreshToken","watchForceRefreshToken","fetchUserBookmarks","watchFetchUserBookmarksStarted","updateUserBookmarks","watchUpdateUserBookmarkssStarted","updateProfileGeneralInformation","watchUpdateProfileGeneralInformationStarted","updateMapProfileSettings","watchUpdateMapProfileSettingsStarted","updateProfileMapOptions","watchUpdateProfileMapOptionsStarted","updateProfilePassword","watchUpdateProfilePasswordStarted","updateHomeScreen","watchUpdateProfileHomeScreenStarted","changeProduct","watchChangeProductStarted","updateMapFilterTabPinned","watchUpdateMapFilterTabPinnedStarted","userData","userId","responseSuperAdmin","jsonResultUser","responseRestaurantAdmin","expiration","now","Date","getTime","TOKEN_LIFE_TIME","non_field_errors","delay","bookmarkSetting","filter","setting","settingId","bookmarkSettingValue","settingValue","bookmarkIds","optionsSuggestions","userBookmarks","newSuggestions","navbarActions","navbarSelectors","userBookmarksSettingsValue","ub","values","serviceId","route","routeCheckpoint","value","routeId","checkpointId","routeCheckpoints","fetchRoutesList","watchFetchRoutesList","partialFetchRoutesList","watchPartialFetchRoutesList","addRoute","watchAddRoutesStarted","editRoute","watchEditRoutesStarted","removeRoute","watchRemoveRouteStarted","removeRoutes","watchRemoveRoutesStarted","copyRoute","watchCopyRouteStarted","getRoutesListService","saveRouteService","addedRoute","routeData","addedCheckpoints","checkpointList","chk","segmentPath","pathArray","routePathId","parseFloat","latitude","longitude","routeGroupId","schemasRouteCheckpoints","checkpoints","oldRoute","editedRoute","editedCheckpoints","routeDeleted","deleteRouteService","routeName","routeIds","deleteRoutesService","newRouteId","newRouteName","fetchContactsList","watchFetchContactsList","addContact","watchAddContactsStarted","editContact","watchEditContactsStarted","removeContact","watchRemoveContactsStarted","selected","contactId","addedContact","contactName","editedContact","oldContact","contactBody","contactsName","fetchRouteCheckpointsList","watchFetchRouteCheckpointsList","getRouteCheckpointsListService","finalResultData","fetchAssignmentsList","watchFetchAssignmentsList","editAssignment","watchEditAssignmentsStarted","removeAssignment","watchRemoveAssignmentStarted","importRouteAssignments","watchImportRouteAssignments","getRouteAssignmentsListService","resultDataByDate","assignmentsByDate","typeId","resultDataBySchedule","assignmentsBySchedule","orderByDate","orderBySchedule","assignment","routeAssignmentId","oldAssignment","saveAssignmentService","editedAssignment","deletedAssignment","deleteAssignmentService","routeAssignments","importRouteAssignmentsService","failFetchingComments","completeAddingComment","oldId","comment","failAddingComment","completeEditingComment","failEditingComment","oldComment","completeRemovingComment","routeCommentId","failRemovingComment","comments","fetchCommentsList","watchFetchCommentsList","addComment","watchAddCommentsStarted","editComment","watchEditCommentsStarted","removeComment","watchRemoveCommentStarted","getRouteCommentsListService","saveCommentService","addedComment","editedComment","deletedComment","deleteCommentService","routeExecution","routesExecutions","fetchRoutesExecutions","watchFetchRoutesExecutions","editRouteExecution","watchEditRouteExecutionStarted","changeToAlternateRoute","watchChangeToAlternateRouteStarted","assignRouteExecutionUnit","watchAsignRouteExecutionUnit","indicators","scheduledBySchedule","totalNotShown","routesList","oldRouteExecution","saveRouteExecutionService","editedRouteExecution","reason","changeToAlternateRouteService","errorTxt","completeFetchingRoutesReport","unitsEntities","unitsOrder","routesEntities","routesOrder","failFetchingRoutesReport","fetchRoutesReport","watchFetchRoutesReport","unitsSchemas","routesSchemas","routeExecutions","routesExecutionsSchemas","monitoringUser","fetchMonitoringUsersList","watchFetchMonitoringUsersList","partialFetchMonitoringUsersList","watchPartialFetchMonitoringUsersList","addMonitoringUser","watchAddMonitoringUsersStarted","editMonitoringUser","watchEditMonitoringUsersStarted","removeMonitoringUser","watchRemoveMonitoringUserStarted","updateMonitoringUserPassword","watchUpdateMonitoringUserPasswordStarted","saveRolesAndPermissions","watchSaveMonitoringUserRolesAndPermissionsStarted","assignSchedule","watchAssignScheduleUsersStarted","unassignSchedule","watchUnassignScheduleUsersStarted","fetchMonitoringUserById","watchFetchMonitoringUserById","getUsersListService","saveUserService","addedMonitoringUser","userName","oldUserName","oldMonitoringUser","editedMonitoringUser","users","usersName","loggedUsername","authActions","rolesAndPermissions","userInSession","userAssignSchedule","monitoringUserId","getUserByIdService","workplan","fetchWorkplansList","watchFetchWorkplansList","partialFetchWorkplansList","watchPartialFetchWorkplansList","fetchWorkplanLocationsList","watchFetchWorkplanLocationsList","addWorkplan","watchAddWorkplansStarted","editWorkplan","watchEditWorkplansStarted","removeWorkplan","watchRemoveWorkplanStarted","copyWorkplan","watchCopyWorkplanStarted","assignOriginGeofence","watchAssignOriginGeofenceStarted","assignWorkGeofence","watchAssignWorkGeofenceStarted","assignDestinationGeofence","watchAssignDestinationGeofenceStarted","getWorkplansListService","workplanId","saveWorkplanService","addedWorkplan","oldWorkplan","editedWorkplan","workplanSelectors","workplanDeleted","deleteWorkplanService","workplanName","newWorkplanId","newWorkplanName","geofenceSelectors","originGeofenceId","workplanIds","geofenceName","originExitWindow","originValidationWindow","workGeofenceId","workGeofenceArriveWindow","workGeofenceMaxTime","destinationGeofenceId","assignmentBySchedule","assignmentByDateTime","assignmentsByDateTime","watchFetchWorkplansAssignmentsList","editAssignmentBySchedule","watchEditWorkplanAssignmentByScheduleStarted","editAssignmentByDateTime","watchEditWorkplanAssignmentByDateTimeStarted","removeWorkplanAssignment","watchRemoveWorkplanAssignmentStarted","getWorkplansAssignmentsListService","resultDataWS","withScheduleList","resultDataWDT","withDateTimeList","withScheduleOrder","withDateTimeOrder","assignmentId","assignmentType","assignmentDeleted","deleteWorkplanAssignmentService","assignmentName","baseUrl","getWorkplanCommentsListService","configActions","configureInterceptors","workplanCommentId","watchFetchWorkplansCommentsList","watchAddWorkplansCommentStarted","watchRemoveWorkplansCommentStarted","visitId","locationId","jobCommentId","completeAddingWorkplanExecutionLocation","workplanExecutionLocation","failAddingWorkplanExecutionLocation","completeEditingWorkplanExecutionLocation","failEditingWorkplanExecutionLocation","oldWorkplanExecutionLocation","failRemovingWorkplanExecutionLocation","workplanExecutionLocationId","addWorkplanExecutionLocation","watchAddWorkplanExecutionLocationsStarted","editWorkplanExecutionLocation","watchEditWorkplanExecutionLocationsStarted","removeWorkplanExecutionLocation","watchRemoveWorkplanExecutionLocationStarted","getWorkplanExecutionLocationId","saveWorkplanExecutionLocationService","addedWorkplanExecutionLocation","editedWorkplanExecutionLocation","workplanExecutionLocationDeleted","deleteWorkplanExecutionLocationService","locationName","completeFetchingWorkplansExecutions","executionStatus","geographicStatus","failFetchingWorkplansExecutions","completeFetchingWorkplanExecution","workplanExecution","workplanExecutionLocationsEntities","workplanExecutionLocationsOrder","failFetchingWorkplanExecution","failCancelWorkplansExecutions","failFinalizeWorkplansExecutions","completeManualTransitWorkplansExecutions","failManualTransitWorkplansExecutions","failChangeUnitWorkplansExecutions","completeAssignUnitWorkplansExecutions","failAssignUnitWorkplansExecutions","workplansExecutions","workplanExecutionLocations","fetchWorkplansExecutions","watchFetchWorkplansExecutions","fetchWorkplanExecution","watchFetchWorkplanExecution","cancelWorkplanExecution","watchCancelWorkplanExecution","finalizeWorkplanExecution","watchFinalizeWorkplanExecution","manualTransitWorkplanExecution","watchManualTransitWorkplanExecution","changeWorkplanExecutionUnit","watchChangeWorkplanExecutionUnit","assignWorkplanExecutionUnit","watchAsignWorkplanExecutionUnit","workplansList","locationsList","schemasWorkplanExecutionLocation","getDatabaseErrorFromString","match","exec","completeFetchingWorkplansReport","locationsEntities","locationsOrder","failFetchingWorkplansReport","location","fetchWorkplansReport","watchFetchWorkplansReport","locationsSchemas","workplansExecutionsSchemas","failFetchingWorkplansVisits","failFetchingWorkplansAllVisits","workplansVisit","workplansVisits","fetchWorkplansVisits","watchFetchWorkplansVisits","fetchWorkplansAllVisits","watchFetchWorkplansAllVisits","getWorkplanVisitsListService","getWorkplanAllVisitsListService","historicalSchemas","configuration","configurations","fetchConfigurationsList","watchFetchConfigurationsList","brandId","modelId","model","models","fetchModelsList","watchFetchModelsList","brand","fetchBrandsList","watchFetchBrandsList","currency","fetchCurrenciesList","watchFetchCurrenciesList","fetchTimeZonesList","watchFetchTimeZonesList","provider","fetchProvidersList","watchFetchProvidersList","country","fetchCountriesList","watchFetchCountriesList","vehicleMaker","fetchVehicleMakersList","watchFetchVehicleMakersList","vehicleModel","fetchVehicleModelsList","watchFetchVehicleModelsList","maker","insuranceCompany","fetchInsuranceCompaniesList","watchFetchInsuranceCompaniesList","insuranceAgent","fetchInsuranceAgentsList","watchFetchInsuranceAgentsList","sensorBrand","fetchSensorBrandsList","watchFetchSensorBrandsList","sensorModel","fetchSensorModelsList","watchFetchSensorModelsList","sensorMeasure","fetchSensorMeasuresList","watchFetchSensorMeasuresList","sensorId","sensorModelId","paymentMethod","getPaymentMethods","fetchPaymentMethodsList","watchFetchPaymentMethodsList","locationClass","fetchLocationClassesList","watchFetchLocationClassesList","sim","fetchSimsList","watchFetchSimsList","partialFetchSimsList","watchPartialFetchSimsList","addSim","watchAddSimsStarted","editSim","watchEditSimsStarted","removeSim","watchRemoveSimStarted","fetchSimById","watchFetchSimById","getSimsListService","simId","addedSim","iccid","editedSim","oldSim","simSelectors","deletedSim","getSimByIdService","simCardId","vehicle","fetchVehiclesList","watchFetchVehiclesList","partialFetchVehiclesList","watchPartialFetchVehiclesList","addVehicle","watchAddVehiclesStarted","editVehicle","watchEditVehiclesStarted","removeVehicle","watchRemoveVehicleStarted","watchLicenseCheckStarted","getVehiclesListService","vehicleId","addedVehicle","vehicleName","editedVehicle","oldVehicle","deletedVehicle","licensePlate","LicensePlateStatus","asset","fetchAssetsList","watchFetchAssetsList","partialFetchAssetsList","watchPartialFetchAssetsList","addAsset","watchAddAssetsStarted","editAsset","watchEditAssetsStarted","removeAsset","watchRemoveAssetStarted","checkIdentifier","watchIdentifierCheckStarted","checkSecuritySealCode","watchSecuritySealCodeCheckStarted","getAssetsListService","assetId","addedAsset","assetIdentifier","editedAsset","oldAsset","assetSelectors","deletedAsset","AssetIdentifierStatus","securitySealCode","IsValid","sensorSchema","fetchSensorsList","watchFetchSensorsList","partialFetchSensorsList","watchPartialFetchSensorsList","addSensor","watchAddSensorsStarted","editSensor","watchEditSensorsStarted","removeSensor","watchRemoveSensorStarted","watchSensorIdentifierCheckStarted","sensorCalibrationStarted","watchSensorCalibrationStartStarted","sensorCalibrationFinalized","watchSensorCalibrationFinalizeStarted","getSensorsListService","saveSensorService","addedSensor","oldSensor","editedSensor","deleteSensorService","UniqueIdentifierStatus","fuelCalibrationStartService","fuelCalibrationFinalizeService","importedLocation","importedLocations","fetchLocationsList","watchFetchLocationsList","partialFetchLocationsList","watchPartialFetchLocationsList","addLocation","watchAddLocationsStarted","editLocation","watchEditLocationsStarted","removeLocation","watchRemoveLocationStarted","importLocations","watchImportLocationsStarted","fetchLocationById","watchFetchLocationById","getLocationsListService","locationIds","showInMapLocations","saveLocationService","addedLocation","entityActions","oldLocation","editedLocation","deleteLocationService","importLocationsService","schemasImportedLocations","getLocationByIdService","driver","fetchDriversList","watchFetchDriversList","partialFetchDriversList","watchPartialFetchDriversList","addDriver","watchAddDriversStarted","editDriver","watchEditDriversStarted","assignSensor","unassignSensor","watchAssignSensor","watchUnassignSensor","removeDriver","watchRemoveDriverStarted","importDriverAndUnitData","watchStartImportDriverAndUnit","assignDriversToUnits","watchAssignDriversToUnits","getDriversListService","person","saveDriverService","driverId","addedDriver","oldDriver","editedDriver","sensorName","deleteDriverService","importDriverAndUnit","driverPrivateCode","unitPrivateCode","unitSelectors","dataToImport","importedData","newData","driverAndUnit","warn","f","driversAndUnitsIds","d","join","assignDriversMassivelyService","job","importedJob","importedJobs","fetchJobsBacklogList","watchFetchJobsBacklogList","partialFetchJobsBacklogList","watchPartialFetchJobsBacklogList","addJobBacklog","watchAddJobsBacklogStarted","editJobBacklog","watchEditJobsBacklogStarted","removeJobsBacklog","watchRemoveJobsBacklogStarted","changeStatusJobsBacklog","watchChangeStatusJobsBacklogStarted","rescheduleJobs","watchRescheduleJobsStarted","changePriorityJobsBacklog","watchChangePriorityJobsBacklogStarted","changeStartDateJobsBacklog","watchChangeStartDateJobsBacklogStarted","changeDueDateJobsBacklog","watchChangeDueDateJobsBacklogStarted","changeMinMaxTimeJobsBacklog","watchChangeMinMaxTimeJobsBacklogStarted","assignUsersJobsBacklog","watchAssignUsersJobsBacklogStarted","assignFormsJobsBacklog","watchAssignFormsJobsBacklogStarted","assignFilesJobsBacklog","watchAssignFilesJobsBacklogStarted","importJobs","watchImportJobsStarted","getJobsBacklogListService","jobBacklog","saveJobBacklogService","jobId","addedJobBacklog","oldJobBacklog","editedJobBacklog","deleteJobsBacklogService","jobStatus","changeJobsStatusService","dueDate","rescheduleJobsService","jobPriority","changeJobsPriorityService","changeJobsStartDateService","changeJobsDueDateService","maxTime","changeJobsMinMaxTimeService","userNames","assignJobsUsersService","formIds","assignJobsFormsService","fileIds","assignJobsFilesService","reduce","acc","curr","files","importJobsService","schemasImportedJobs","fetchJobsBoardList","watchFetchJobsBoardList","changeStatusJobsBoard","watchChangeStatusJobsBoardStarted","getJobsBoardListService","changeJobsStatusBoardService","fetchJobsReportList","watchFetchJobsReportList","getJobsReportListService","jobsList","orderJobs","jobsByUserList","schemasJobByUser","jobsByUser","orderJobsByUser","fetchJob","watchFetchJob","getJobService","fetchGroupsList","watchFetchGroupsList","partialFetchGroupsList","watchPartialFetchGroupsList","fetchAllEntitiesInGroup","watchFetchAllEntitiesInGroup","addGroup","watchAddGroupStarted","addGroupWithEntities","watchAddGroupWithEntitiesStarted","editGroup","watchEditGroupsStarted","removeGroup","watchRemoveGroupStarted","leaveGroup","watchLeaveGroupStarted","editNotificationsConfiguration","watchEditConfigurationNotificationsStarted","removeEntitiesFromGroup","watchRemoveEntitiesFromGroup","addEntitiesToGroup","watchAddEntitiesToGroup","editUserPorfileInGroup","watchEditUserProfileInGroup","fetchGroupById","watchFetchGroupById","getGroupsListService","groupId","getAllEntitiesInGroupService","additionalOnSave","saveGroupService","groupName","owners","addedGroup","entityType","params","saveGroupWithEntitiesService","editedGroup","oldGroup","deleteGroupService","isAsesor","asesorUsername","leaveGroupService","partialEntityUrl","workPlanId","userNameInSession","profileId","getGroupByIdService","quotation","fetchQuotationsList","watchFetchQuotationsList","partialFetchQuotationsList","watchPartialFetchQuotationsList","addQuotation","watchAddQuotationsStarted","copyQuotation","watchCopyQuotationsStarted","editQuotation","watchEditQuotationsStarted","approveDenyQuotationManagement","watchApproveDenyQuotationManagementStarted","acceptDenyQuotationCustomer","watchAcceptDenyQuotationCustomerStarted","scheduleQuotation","watchScheduleQuotationsStarted","checkQuotationScheduling","watchCheckQuotationSchedulingStarted","setTimesupQuotation","watchSetTimesupQuotationStarted","removeQuotation","watchRemoveQuotationStarted","addedQuotation","quotationNumber","fromQuotationId","copiedQuotation","editedQuotation","oldQuotation","approve","accept","quotationName","quotationLink","quotationScheduled","quotationIdDB","isScheduled","quotationStatus","isTimesup","showAlerts","deletedQuotation","organizationContract","fetchOrganizationContractsList","watchFetchOrganizationContractsList","partialFetchOrganizationContractsList","watchPartialFetchOrganizationContractsList","addOrganizationContract","watchAddOrganizationContractsStarted","editOrganizationContract","watchEditOrganizationContractsStarted","removeOrganizationContract","watchRemoveOrganizationContractStarted","contractId","addedOrganizationContract","contractNumber","editedOrganizationContract","oldOrganizationContract","deletedOrganizationContract","contractTemplate","fetchContractTemplatesList","watchFetchContractTemplatesList","partialFetchContractTemplatesList","watchPartialFetchContractTemplatesList","addContractTemplate","watchAddContractTemplatesStarted","editContractTemplate","watchEditContractTemplatesStarted","removeContractTemplate","watchRemoveContractTemplateStarted","templateId","addedContractTemplate","templateName","editedContractTemplate","oldContractTemplate","deletedContractTemplate","customer","fetchCustomersList","watchFetchCustomersList","partialFetchCustomersList","watchPartialFetchCustomersList","addCustomer","watchAddCustomersStarted","editCustomer","watchEditCustomersStarted","removeCustomer","watchRemoveCustomerStarted","getCustomersListService","saveCustomerService","customerId","addedCustomer","addedOffice","office","oldCustomer","editedCustomer","editedOffice","deleteCustomerService","getOfficesListService","saveOfficeService","officeId","officeName","deleteOfficeService","fetchOfficesList","watchFetchOfficesList","partialFetchOfficesList","watchPartialFetchOfficesList","addOffice","watchAddOfficesStarted","editOffice","watchEditOfficesStarted","removeOffice","watchRemoveOfficeStarted","oldOffice","formSchema","sectionSchema","sections","questionSchema","questions","responseSchema","questionResponse","mergeStrategy","entityA","entityB","util","responses","getFormsListService","getFormsSectionsListService","getFormsQuestionsListService","saveFormService","organizationFormId","formName","saveExternalFormService","saveResponseFormService","resendResponseFormService","fetchFormsList","watchFetchFormsList","partialFetchFormsList","watchPartialFetchFormsList","fetchSections","watchFetchSections","fetchQuestions","watchFetchQuestions","addForm","watchAddFormsStarted","editForm","watchEditFormsStarted","addFormExternal","watchAddExternalFormsStarted","editFormExternal","watchEditExternalFormsStarted","removeForm","watchRemoveFormStarted","saveResponse","watchResponseAddedStarted","getResponses","watchResponseFetchStarted","resendResponse","watchResponseResendStarted","formId","addedForm","oldForm","editedForm","deletedForm","organizationFormName","formResponse","definition","answers","camelDefinition","finalObject","uniq","answer","responseIds","category","saveCategory","categoryName","categoryId","deleteCategory","getCategoryList","fetchCategoriesList","watchFetchCategoriesList","partialFetchCategoriesList","watchPartialFetchCategoriesList","addCategory","watchAddCategoriesStarted","editCategory","watchEditCategoriesStarted","removeCategory","watchRemoveCategoryStarted","addedData","tempId","maintenanceLine","getMaintenanceLinesListService","saveMaintenanceLineService","maintenanceLineId","maintenanceLineName","deleteMaintenanceLineService","copyMaintenanceLineService","fetchMaintenanceLinesList","watchFetchMaintenanceLinesList","partialFetchMaintenanceLinesList","watchPartialFetchMaintenanceLinesList","addMaintenanceLine","watchAddMaintenanceLinesStarted","editMaintenanceLine","watchEditMaintenanceLinesStarted","removeMaintenanceLine","watchRemoveMaintenanceLineStarted","copyMaintenanceLine","watchCopyMaintenanceLineStarted","mapStringToObject","range","odometer","description","maintenanceRangeId","r","maintenanceRangesByHourMeter","maintenanceRangesByOdometer","addedMaintenanceLine","oldMaintenanceLine","editedMaintenanceLine","copiedMaintenanceLine","notice","noticeId","notices","saveNoticeByOdometer","saveNoticeByHourmeter","saveNoticeByDate","deleteNotice","getNoticeByOdometerList","getNoticeByDateList","getNoticeByHourmeterList","renewNoticeByOdometer","renewNoticeByHourmeter","fetchNoticesList","watchFetchNoticesList","partialFetchNoticesList","watchPartialFetchNoticesList","addNotice","watchAddNoticesStarted","editNotice","watchEditNoticesStarted","renewNotice","watchRenewNoticesStarted","removeNotice","watchRemoveNoticeStarted","entitiesCop","getPreventiveNoticesByOdometerFormattedData","saveProviderCategory","providerName","providerId","deleteProviderCategory","getProviderList","partialFetchProvidersList","watchPartialFetchProvidersList","addProvider","watchAddProvidersStarted","editProvider","watchEditProvidersStarted","removeProvider","watchRemoveProviderStarted","workmanships","saveWorkmanshipCategory","workmanshipId","deleteWorkmanshipCategory","getWorkmanshipsList","fetchWorkmanshipsList","watchFetchWorkmanshipsList","partialFetchWorkmanshipsList","watchPartialFetchWorkmanshipsList","addWorkmanship","watchAddWorkmanshipsStarted","editWorkmanship","watchEditWorkmanshipsStarted","removeWorkmanship","watchRemoveWorkmanshipStarted","sparePart","saveSparePartCategory","sparePartName","sparePartId","deleteSparePartCategory","getSparePartList","fetchSparePartsList","watchFetchSparePartsList","partialFetchSparePartsList","watchPartialFetchSparePartsList","addSparePart","watchAddSparePartsStarted","editSparePart","watchEditSparePartsStarted","removeSparePart","watchRemoveSparePartStarted","protocol","getProtocolsListService","saveProtocolService","protocolId","protocolName","deleteProtocolService","fetchProtocolsList","watchFetchProtocolsList","partialFetchProtocolsList","watchPartialFetchProtocolsList","addProtocol","watchAddProtocolStarted","editProtocol","watchEditProtocolStarted","removeProtocol","watchRemoveProtocolStarted","addedProtocol","oldProtocol","editedProtocol","Destination","Destinations","getDestinationListService","fetchETAMonitoringDestinationList","watchFetchETAModelList","destinations","userNotification","fetchUserNotificationsList","watchFetchUserNotificationsList","partialFetchUserNotificationsList","watchPartialFetchUserNotificationsList","markAsReadUserNotifications","watchMarkAsReadUserNotification","getUserNotificationsListService","getSystemNotificationsListService","notificationIds","markUserNotificationsAsReadService","resultIds","notificationId","mainSaga","fork","watchFetchNoticesList2","watchPartialFetchNoticesList2","watchAddNoticesStarted2","watchEditNoticesStarted2","watchRemoveNoticeStarted2","watchRenewNoticesStarted2","watchFetchNoticesList3","watchPartialFetchNoticesList3","watchAddNoticesStarted3","watchEditNoticesStarted3","watchRemoveNoticeStarted3","watchRenewNoticesStarted3","watchFetchProvidersList2","sagaMiddleware","createSagaMiddleware","persistConfig","timeout","persistedReducer","composeEnhancers","compose","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","trace","traceLimit","runSaga","run","injectEnhancer","createInjectorsEnhancer","createReducer","createStore","applyMiddleware","persistor","persistStore","UNITS_FETCH_STARTED","UNITS_FETCH_COMPLETED","UNITS_FETCH_FAILED","UNITS_PARTIAL_FETCH_STARTED","UNITS_PARTIAL_FETCH_COMPLETED","UNITS_PARTIAL_FETCH_FAILED","UNIT_FETCH_STARTED","UNIT_FETCH_COMPLETED","UNIT_FETCH_FAILED","UNIT_ADD_TO_STATE","UNITS_LIVE_STATUS_FETCH_STARTED","UNITS_LIVE_STATUS_FETCH_COMPLETED","UNITS_LIVE_STATUS_FETCH_FAILED","UNIT_INFORMATION_FETCH_STARTED","UNIT_INFORMATION_FETCH_COMPLETED","UNIT_INFORMATION_FETCH_FAILED","UNIT_POSITIONS_FETCH_STARTED","UNIT_POSITIONS_FETCH_COMPLETED","UNIT_POSITIONS_FETCH_FAILED","UNIT_POSITIONS_RESET_IS_FETCHED","UNIT_TRAJECTORY_FETCH_STARTED","UNIT_TRAJECTORY_FETCH_COMPLETED","UNIT_TRAJECTORY_FETCH_FAILED","UNIT_EXECUTE_DEVICE_ACTION","UNIT_ADD_STARTED","UNIT_ADD_COMPLETED","UNIT_ADD_FAILED","UNIT_EDIT_STARTED","UNIT_EDIT_COMPLETED","UNIT_EDIT_FAILED","UNIT_ACKNOWLEDGE_STARTED","UNIT_ACKNOWLEDGE_COMPLETED","UNIT_ACKNOWLEDGE_FAILED","UNIT_REMOVE_STARTED","UNIT_REMOVE_COMPLETED","UNIT_REMOVE_FAILED","UNIT_SELECTED","UNITS_ALL_SELECTED","UNIT_DESELECTED","UNITS_ALL_DESELECTED","UNIT_SHOW_IN_MAP","UNITS_ALL_SHOW_IN_MAP","UNIT_HIDE_IN_MAP","UNITS_ALL_HIDE_IN_MAP","UNIT_FETCH_INTERVAL","UNIT_SHARED_LINK_INTERVAL","UNIT_ACTIVE_TRACKING_FETCH_INTERVAL","UNIT_IDLE_SPEED","UNIT_DATA_LIMIT_FOR_CLUSTERING","SET_DATE_RANGE","UNITS_ACTIVE_STARTED","UNITS_ACTIVE_COMPLETED","UNITS_ACTIVE_FAILED","UNITS_ASSIGN_DRIVER_STARTED","UNITS_ASSIGN_DRIVER_COMPLETED","UNIT_CREATE_SHARE_LINK_STARTED","UNIT_CREATE_SHARE_LINK_COMPLETED","UNIT_CREATE_SHARE_LINK_FAILED","UNIT_CLEAR_SHARE_LINK","UNIT_START_DOWNTIME_STARTED","UNIT_START_DOWNTIME_COMPLETED","UNIT_START_DOWNTIME_FAILED","UNIT_END_DOWNTIME_STARTED","UNIT_END_DOWNTIME_COMPLETED","UNIT_END_DOWNTIME_FAILED","UNIT_UPDATE_DEVICE_STARTED","UNIT_UPDATE_DEVICE_COMPLETED","UNIT_UPDATE_DEVICE_FAILED","UNIT_UPDATE_SIM_STARTED","UNIT_UPDATE_SIM_COMPLETED","UNIT_UPDATE_SIM_FAILED","UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED","UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED","showSuccessMessage","showConfirmationMessage","confirmText","actionNot","confirmButtonClass","showCancelButton","width","cancelButton","confirmButtonText","cancelButtonText","focusConfirm","focusCancel","then","isConfirmed","showConfirmationWithCheckboxMessage","props","inputLabel","initialValue","input","inputValue","inputPlaceholder","showConfirmationMessageToast","showErrorAlertFailChanges","showErrorAlertReportNoAvailable","allowOutsideClick","showLoadingReport","showLoading","showErrorAlertFailChangesToast","showErrorAlertWarning","showSuccessCreatedMessage","showSuccessEditedMessage","showSuccessApprovedDeniedMessage","showSuccessAcceptedDeniedMessage","showSuccessScheduledMessage","showSuccessRolesAndPermissionsSavedMessage","showSuccessAssignedMessage","showSuccessUnassignedMessage","showSuccessDeletedMessage","showSuccessRemovedFromGroupMessage","showSuccessAddedToGroupMessage","showSuccessDisabledMessage","showSuccessCancelNotificationMessage","showFailCreatedMessage","showFailEditedMessage","showFailDeletedMessage","showDeleteConfirmationMessage","objectType","objectName","isDisabled","isUnassign","deleteWarning","showLeaveConfirmationMessage","showRemoveFromGroupConfirmationMessage","objectCount","isMultiple","showDeleteConfirmationMessageMultiple","objectsQuantity","withReactContent","loader","loaderHtml","closeLoading","close","showInformationMessage","CustomToastNotificationContent","messageType","className","img","imgWidth","imgHeight","getMessageTypeAvatarProps","style","marginTop","dangerouslySetInnerHTML","__html","showUserNotificationAlert","messageTitle","ToasterContainer","document","createElement","html","ReactDOM","render","willClose","unmountComponentAtNode","iconSet","require","Icon","color","env","REACT_APP_API_BASE_URL","FORMS_FETCH_STARTED","FORMS_FETCH_COMPLETED","FORMS_FETCH_FAILED","FORMS_PARTIAL_FETCH_STARTED","FORMS_PARTIAL_FETCH_COMPLETED","FORMS_PARTIAL_FETCH_FAILED","FORM_SECTIONS_FETCH_STARTED","FORM_SECTIONS_FETCH_COMPLETED","FORM_SECTIONS_FETCH_FAILED","FORM_QUESTIONS_FETCH_STARTED","FORM_QUESTIONS_FETCH_COMPLETED","FORM_QUESTIONS_FETCH_FAILED","FORM_ADD_STARTED","FORM_ADD_COMPLETED","FORM_ADD_FAILED","FORM_SECTION_ADD_STARTED","FORM_EDIT_STARTED","FORM_EDIT_COMPLETED","FORM_EDIT_FAILED","FORM_EXTERNAL_ADD_STARTED","FORM_EXTERNAL_EDIT_STARTED","FORM_REMOVE_STARTED","FORM_REMOVE_COMPLETED","FORM_REMOVE_FAILED","FORM_RESPONSE_SAVE_STARTED","FORM_RESPONSE_SAVE_COMPLETED","FORM_RESPONSE_SAVE_FAILED","FORM_SELECTED","FORMS_ALL_SELECTED","FORM_DESELECTED","FORMS_ALL_DESELECTED","FORMS_ALL_QUESTIONS_CLEARED","FORM_SECTION_ADDED","FORM_SECTION_DELETED","FORM_SECTION_MOVED","FORM_SECTION_NAME_EDITED","FORM_SECTION_COPIED","FORM_SECTION_CHANGE_COLLAPSED","FORM_SECTIONS_SET","FORM_ROW_ADDED","FORM_ROW_DELETED","FORM_ROW_MOVED","FORM_ROW_NAME_EDITED","FORM_QUESTION_ADDED","FORM_QUESTION_DELETED","FORM_QUESTION_MOVED","FORM_QUESTION_COPIED","FORM_QUESTION_SET","FORM_QUESTION_NAME_EDITED","FORM_QUESTION_HEIGHT_EDITED","FORM_QUESTION_CHANGE_COLLAPSED","FORM_RESPONSE_FETCH_STARTED","FORM_RESPONSE_FETCH_COMPLETED","FORM_RESPONSE_FETCH_FAILED","FORM_RESPONSE_RESEND_STARTED","FORM_RESPONSE_RESEND_COMPLETED","FORM_RESPONSE_RESEND_FAILED","FORM_ANSWER_ADDED","FORM_ANSWER_MOVED","FORM_ANSWER_EDITED","FORM_ANSWER_DELETED","FORM_ANSWER_SELECTED","FORM_ANSWER_DESELECTED","FORM_RESPONSES_CLEARED","FORM_QUESTIONS_CLEARED","ENTITY_SUBDIVISONS","ENTITY_VEHICLES","ENTITY_SIM_CARDS","ENTITY_MODULES","ENTITY_DRIVERS","ENTITY_AGENTS","ENTITY_SERVICE_CLASSES","ENTITY_USERS","ENTITY_OPERATORS","ENTITY_DIVISIONS","ENTITY_ORGANIZATIONS","ENTITY_CONTACTS","ENTITY_WORKPLANS","ENTITY_GEOFENCES","ENTITY_SCHEDULES","ENTITY_FORMS","ENTITY_ROUTES","ENTITY_COUNTRIES","ENTITY_LOCATIONS","ENTITY_ASSETS","ENTITY_SENSORS","ENTITY_JOBS_BACKLOG","ENTITY_GROUPS","ENTITY_ORGANIZATION_CONTRACTS","ENTITY_CUSTOMERS","ENTITY_MAINTENANCE_LINES","ENTITY_CONTRACT_TEMPLATES","ENTITY_QUOTATIONS","ENTITY_OFFICES","ENTITY_PROTOCOLS","ENTITY_DESTINATIONS","ENTITY_USER_NOTIFICATIONS","defaultEntitiesToFetchAftetLogin","AUDIT_ENTITY_UNIT_MAIN_STATE_TYPE_ID_LOOKUP","AUDIT_ENTITY_UNIT_STATUS_LOOKUP","AUDIT_ENTITY_UNIT_THEME_ID_LOOKUP","AUDIT_ENTITY_UNIT_TYPE_ID_LOOKUP","GROUPS_FETCH_STARTED","GROUPS_FETCH_COMPLETED","GROUPS_FETCH_FAILED","GROUP_FETCH_STARTED","GROUP_FETCH_COMPLETED","GROUP_FETCH_FAILED","GROUPS_PARTIAL_FETCH_STARTED","GROUPS_PARTIAL_FETCH_COMPLETED","GROUPS_PARTIAL_FETCH_FAILED","GROUPS_ALL_ENTITIES_FETCH_STARTED","GROUPS_ALL_ENTITIES_FETCH_COMPLETED","GROUPS_ALL_ENTITIES_FETCH_FAILED","GROUP_EDIT_STARTED","GROUP_EDIT_COMPLETED","GROUP_EDIT_FAILED","GROUP_ADD_STARTED","GROUP_ADD_COMPLETED","GROUP_ADD_FAILED","GROUP_ADD_WITH_ENTITIES_STARTED","GROUP_ADD_WITH_ENTITIES_COMPLETED","GROUP_ADD_WITH_ENTITIES_FAILED","GROUP_REMOVE_STARTED","GROUP_REMOVE_COMPLETED","GROUP_REMOVE_FAILED","GROUP_LEAVE_STARTED","GROUP_LEAVE_COMPLETED","GROUP_LEAVE_FAILED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED","GROUP_REMOVE_ENTITIES_STARTED","GROUP_REMOVE_ENTITIES_COMPLETED","GROUP_ADD_ENTITIES_STARTED","GROUP_ADD_ENTITIES_COMPLETED","GROUP_USER_PROFILE_EDIT_STARTED","GROUP_USER_PROFILE_EDIT_COMPLETED","GROUP_SELECTED","GROUPS_ALL_SELECTED","GROUP_DESELECTED","GROUPS_ALL_DESELECTED","JOBS_BACKLOG_FETCH_STARTED","JOBS_BACKLOG_FETCH_COMPLETED","JOBS_BACKLOG_FETCH_FAILED","JOBS_BACKLOG_PARTIAL_FETCH_STARTED","JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED","JOBS_BACKLOG_PARTIAL_FETCH_FAILED","JOB_BACKLOG_ADD_STARTED","JOB_BACKLOG_ADD_COMPLETED","JOB_BACKLOG_ADD_FAILED","JOB_BACKLOG_EDIT_STARTED","JOB_BACKLOG_EDIT_COMPLETED","JOB_BACKLOG_EDIT_FAILED","JOB_BACKLOG_SELECTED","JOBS_BACKLOG_ALL_SELECTED","JOB_BACKLOG_DESELECTED","JOBS_BACKLOG_ALL_DESELECTED","JOBS_BACKLOG_REMOVE_STARTED","JOBS_BACKLOG_REMOVE_COMPLETED","JOBS_BACKLOG_REMOVE_FAILED","JOBS_BACKLOG_CHANGE_STATUS_STARTED","JOBS_BACKLOG_CHANGE_STATUS_COMPLETED","JOBS_BACKLOG_CHANGE_STATUS_FAILED","JOBS_BACKLOG_CHANGE_PRIORITY_STARTED","JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED","JOBS_BACKLOG_CHANGE_PRIORITY_FAILED","JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED","JOBS_BACKLOG_CHANGE_START_DATE_STARTED","JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED","JOBS_BACKLOG_CHANGE_START_DATE_FAILED","JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED","JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED","JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED","JOBS_BACKLOG_ASSIGN_USERS_STARTED","JOBS_BACKLOG_ASSIGN_USERS_COMPLETED","JOBS_BACKLOG_ASSIGN_USERS_FAILED","JOBS_BACKLOG_ASSIGN_FORMS_STARTED","JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED","JOBS_BACKLOG_ASSIGN_FORMS_FAILED","JOBS_BACKLOG_ASSIGN_FILES_STARTED","JOBS_BACKLOG_ASSIGN_FILES_COMPLETED","JOBS_BACKLOG_ASSIGN_FILES_FAILED","JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED","JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED","JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED","JOBS_BACKLOG_IMPORT_STARTED","JOBS_BACKLOG_IMPORT_COMPLETED","JOBS_BACKLOG_IMPORT_FAILED","WORKPLANS_FETCH_STARTED","WORKPLANS_FETCH_COMPLETED","WORKPLANS_FETCH_FAILED","WORKPLANS_PARTIAL_FETCH_STARTED","WORKPLANS_PARTIAL_FETCH_COMPLETED","WORKPLANS_PARTIAL_FETCH_FAILED","WORKPLAN_LOCATIONS_FETCH_COMPLETED","WORKPLAN_LOCATIONS_FETCH_FAILED","WORKPLAN_ADD_STARTED","WORKPLAN_ADD_COMPLETED","WORKPLAN_ADD_FAILED","WORKPLAN_EDIT_STARTED","WORKPLAN_EDIT_COMPLETED","WORKPLAN_EDIT_FAILED","WORKPLAN_REMOVE_STARTED","WORKPLAN_REMOVE_COMPLETED","WORKPLAN_REMOVE_FAILED","WORKPLAN_SELECTED","WORKPLANS_ALL_SELECTED","WORKPLAN_DESELECTED","WORKPLANS_ALL_DESELECTED","WORKPLAN_COPY_STARTED","WORKPLAN_COPY_COMPLETED","WORKPLAN_COPY_FAILED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED","QUOTATIONS_FETCH_STARTED","QUOTATIONS_FETCH_COMPLETED","QUOTATIONS_FETCH_FAILED","QUOTATIONS_PARTIAL_FETCH_STARTED","QUOTATIONS_PARTIAL_FETCH_COMPLETED","QUOTATIONS_PARTIAL_FETCH_FAILED","QUOTATIONS_ADD_STARTED","QUOTATIONS_ADD_COMPLETED","QUOTATIONS_ADD_FAILED","QUOTATIONS_EDIT_STARTED","QUOTATIONS_EDIT_COMPLETED","QUOTATIONS_EDIT_FAILED","QUOTATIONS_REMOVE_STARTED","QUOTATIONS_REMOVE_COMPLETED","QUOTATIONS_REMOVE_FAILED","QUOTATIONS_SCHEDULE_STARTED","QUOTATIONS_SCHEDULE_COMPLETED","QUOTATIONS_SCHEDULE_FAILED","QUOTATIONS_CHECK_SCHEDULING_STARTED","QUOTATIONS_CHECK_SCHEDULING_COMPLETED","QUOTATIONS_CHECK_SCHEDULING_FAILED","QUOTATIONS_SET_TIMESUP_STARTED","QUOTATIONS_SET_TIMESUP_COMPLETED","QUOTATIONS_SET_TIMESUP_FAILED","QUOTATIONS_SELECTED","QUOTATIONS_ALL_SELECTED","QUOTATIONS_DESELECTED","QUOTATIONS_ALL_DESELECTED","QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED","QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED","QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED","QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED","QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED","QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED","QUOTATION_COPY_STARTED","QUOTATION_COPY_FAILED","QUOTATION_COPY_COMPLETED","QUOTATION_CHANGE_ORGANIZATION","ORGANIZATIONS_FETCH_STARTED","ORGANIZATIONS_FETCH_COMPLETED","ORGANIZATIONS_FETCH_FAILED","ORGANIZATIONS_PARTIAL_FETCH_STARTED","ORGANIZATIONS_PARTIAL_FETCH_COMPLETED","ORGANIZATIONS_PARTIAL_FETCH_FAILED","ORGANIZATION_ADD_STARTED","ORGANIZATION_ADD_COMPLETED","ORGANIZATION_ADD_FAILED","ORGANIZATION_EDIT_STARTED","ORGANIZATION_EDIT_COMPLETED","ORGANIZATION_EDIT_FAILED","ORGANIZATION_REMOVE_STARTED","ORGANIZATION_REMOVE_COMPLETED","ORGANIZATION_REMOVE_FAILED","ORGANIZATION_SELECTED","ORGANIZATIONS_ALL_SELECTED","ORGANIZATION_DESELECTED","ORGANIZATIONS_ALL_DESELECTED","ORGANIZATION_CODE_CHECK_STARTED","ORGANIZATION_CODE_CHECK_COMPLETED","ORGANIZATION_CODE_CHECK_FAILED","ORGANIZATION_CODE_ASSIGN_STARTED","ORGANIZATION_CODE_ASSIGN_COMPLETED","ORGANIZATION_CODE_ASSIGN_FAILED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED","ORGANIZATION_DOWNTIME_REASON_ADD_STARTED","ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED","ORGANIZATION_DOWNTIME_REASON_ADD_FAILED","ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED","ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED","ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED","ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED","ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED","ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED","GEOFENCES_FETCH_STARTED","GEOFENCES_FETCH_COMPLETED","GEOFENCES_FETCH_FAILED","GEOFENCE_FETCH_STARTED","GEOFENCE_FETCH_COMPLETED","GEOFENCE_FETCH_FAILED","GEOFENCES_PARTIAL_FETCH_STARTED","GEOFENCES_PARTIAL_FETCH_COMPLETED","GEOFENCES_PARTIAL_FETCH_FAILED","GEOFENCE_ADD_STARTED","GEOFENCE_ADD_COMPLETED","GEOFENCE_ADD_FAILED","GEOFENCE_EDIT_STARTED","GEOFENCE_EDIT_COMPLETED","GEOFENCE_EDIT_FAILED","GEOFENCE_REMOVE_STARTED","GEOFENCE_REMOVE_COMPLETED","GEOFENCE_REMOVE_FAILED","GEOFENCE_SELECTED","GEOFENCES_ALL_SELECTED","GEOFENCE_DESELECTED","GEOFENCES_ALL_DESELECTED","GEOFENCE_SHOW_IN_MAP","GEOFENCES_ALL_SHOW_IN_MAP","GEOFENCE_HIDE_IN_MAP","GEOFENCES_ALL_HIDE_IN_MAP","GEOFENCE_ASSIGN_UNIT_STARTED","GEOFENCE_ASSIGN_UNIT_COMPLETED","GEOFENCE_ASSIGN_UNIT_FAILED","GEOFENCE_ASSIGNATION_REMOVE_STARTED","GEOFENCE_ASSIGNATION_REMOVE_COMPLETED","GEOFENCE_ASSIGNATION_REMOVE_FAILED","GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED","GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED","GEOFENCE_ASSIGNATION_EDIT_STARTED","GEOFENCE_ASSIGNATION_EDIT_COMPLETED","GEOFENCE_ASSIGNATION_EDIT_FAILED","ROUTES_EXECUTIONS_FETCH_STARTED","ROUTES_EXECUTIONS_FETCH_COMPLETED","ROUTES_EXECUTIONS_FETCH_FAILED","ROUTE_EXECUTION_EDIT_STARTED","ROUTE_EXECUTION_EDIT_COMPLETED","ROUTE_EXECUTION_EDIT_FAILED","ROUTES_EXECUTION_CANCEL_STARTED","ROUTES_EXECUTION_CANCEL_COMPLETED","ROUTES_EXECUTION_CANCEL_FAILED","ROUTES_EXECUTION_FINALIZE_STARTED","ROUTES_EXECUTION_FINALIZE_COMPLETED","ROUTES_EXECUTION_FINALIZE_FAILED","ROUTES_EXECUTION_REMOVE_STARTED","ROUTES_EXECUTION_REMOVE_COMPLETED","ROUTES_EXECUTION_REMOVE_FAILED","ROUTES_EXECUTION_COMPLETE_STARTED","ROUTES_EXECUTION_COMPLETE_COMPLETED","ROUTES_EXECUTION_COMPLETE_FAILED","ROUTES_EXECUTION_PAUSE_STARTED","ROUTES_EXECUTION_PAUSE_COMPLETED","ROUTES_EXECUTION_PAUSE_FAILED","ROUTES_EXECUTION_START_STARTED","ROUTES_EXECUTION_START_COMPLETED","ROUTES_EXECUTION_START_FAILED","ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED","ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED","ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED","ROUTES_EXECUTION_SHARE_STARTED","ROUTES_EXECUTION_SHARE_COMPLETED","ROUTES_EXECUTION_SHARE_FAILED","ROUTES_EXECUTION_ASSIGN_UNIT_STARTED","ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED","ROUTES_EXECUTION_ASSIGN_UNIT_FAILED","DASHBOARD","MAP","REPORTS","TRACKING_UNITS","GEOFENCES_CATALOG","ASSIGNED_GEOFENCES","LOCATIONS_CATALOG","IMPORT_LOCATIONS","BACKLOG_JOBS","JOBS_BOARD","JOBS_REPORT","JOBS_WORK_ACTIVITY","SAFE_DRIVER","LOGISTIC_ROUTE_CATALOG","LOGISTIC_ROUTE_MONITOR","LOGISTIC_ROUTE_REPORT","ASSIGN_LOGISTIC_ROUTE","WORK_PLAN_CATALOG","WORK_PLAN_MONITOR","WORK_PLAN_REPORT","ASSIGN_WORK_PLAN","TEMPERATURE_TELEMETRY","FUEL_TELEMETRY_MONITOR","PREVENTIVE_NOTICES","SPAREPARTS_CATALOG","WORKMANSHIPS_CATALOG","SPAREPARTS_CATEGORIES_CATALOG","SPAREPARTS_PROVIDERS_CATALOG","GENERAL_MAINTENANCE_REPORT","BY_CATEGORY_REPORT","BY_UNIT_REPORT","BY_WORKSHOP_REPORT","IMPORT_MAINTENANCE_TICKETS","NEW_TICKET","IMPORT_FUEL_TICKETS","FUEL_TICKETS_CONSOLIDATED_REPORT","FUEL_TICKETS_REPORT_BY_UNIT","OPERATOR","ORGANIZATION","DIVISION","SUBDIVISION","SERVICE_CLASSES","AGENT","GROUPS","SHIFT","TRIGGER","USERS","DRIVERS","PEOPLE","FORMS_CATALOG","ANSWERS_FORMS","DEVICES","SIMS","SENSORS","ASSETS","VEHICLES","EMAIL_NOTIFICATIONS","CONSOLE_NOTIFICATIONS","WEB_SERVICE_NOTIFICATIONS","IMPORT_JOBS","SCHEDULED_WORKPLANS","FUEL_TELEMETRY_REPORT","CONTRACTS","FLEET","CUSTOMERS","CONTACTS","MAINTENANCE_RANGES","CONTRACT_TEMPLATES","QUOTATIONS","OPTIMIZATIONS","IMPORT_ROUTE_ASSIGNMENTS","RECORD_MULTIPLE_TICKETS","BUSINESS_PARTNERS","WEB_SERVICE_RATES","TELEMETRY_UNITS","WORKSHOP_ADD_ORDER","TELEMETRY_OBD2","FUEL_TELEMETRY_REPORT_BY_VEHICLES","PROTOCOL_CATALOG","SYSTEM_NOTIFICATIONS","LOGISTIC_ROUTE_ETA_MONITOR","ROUTES_FETCH_STARTED","ROUTES_FETCH_COMPLETED","ROUTES_FETCH_FAILED","ROUTES_PARTIAL_FETCH_STARTED","ROUTES_PARTIAL_FETCH_COMPLETED","ROUTES_PARTIAL_FETCH_FAILED","ROUTE_ADD_STARTED","ROUTE_ADD_COMPLETED","ROUTE_ADD_FAILED","ROUTE_EDIT_STARTED","ROUTE_EDIT_COMPLETED","ROUTE_EDIT_FAILED","ROUTE_REMOVE_STARTED","ROUTE_REMOVE_COMPLETED","ROUTE_REMOVE_FAILED","ROUTES_REMOVE_STARTED","ROUTES_REMOVE_COMPLETED","ROUTES_REMOVE_FAILED","ROUTE_SELECTED","ROUTES_ALL_SELECTED","ROUTE_DESELECTED","ROUTES_ALL_DESELECTED","ROUTE_COPY_STARTED","ROUTE_COPY_COMPLETED","ROUTE_COPY_FAILED","ROUTE_SHOW_IN_MAP","ROUTE_HIDE_IN_MAP","ROUTES_ALL_SHOW_IN_MAP","ROUTES_ALL_HIDE_IN_MAP","ROUTES_SHARED_LINK_INTERVAL","LOCATIONS_FETCH_STARTED","LOCATIONS_FETCH_COMPLETED","LOCATIONS_FETCH_FAILED","LOCATION_FETCH_STARTED","LOCATION_FETCH_COMPLETED","LOCATION_FETCH_FAILED","LOCATIONS_PARTIAL_FETCH_STARTED","LOCATIONS_PARTIAL_FETCH_COMPLETED","LOCATIONS_PARTIAL_FETCH_FAILED","LOCATION_ADD_STARTED","LOCATION_ADD_COMPLETED","LOCATION_ADD_FAILED","LOCATION_EDIT_STARTED","LOCATION_EDIT_COMPLETED","LOCATION_EDIT_FAILED","LOCATION_REMOVE_STARTED","LOCATION_REMOVE_COMPLETED","LOCATION_REMOVE_FAILED","LOCATIONS_IMPORT_STARTED","LOCATIONS_IMPORT_COMPLETED","LOCATIONS_IMPORT_FAILED","LOCATION_SELECTED","LOCATIONS_ALL_SELECTED","LOCATION_DESELECTED","LOCATIONS_ALL_DESELECTED","LOCATION_SHOW_IN_MAP","LOCATIONS_ALL_SHOW_IN_MAP","LOCATION_HIDE_IN_MAP","LOCATIONS_ALL_HIDE_IN_MAP","LOCATION_DATA_LIMIT_FOR_CLUSTERING","LOCATION_DATA_LIMIT_FOR_SHOW_ON_MAP","MONITORING_USERS_FETCH_STARTED","MONITORING_USERS_FETCH_COMPLETED","MONITORING_USERS_FETCH_FAILED","MONITORING_USERS_PARTIAL_FETCH_STARTED","MONITORING_USERS_PARTIAL_FETCH_COMPLETED","MONITORING_USERS_PARTIAL_FETCH_FAILED","MONITORING_USER_ADD_STARTED","MONITORING_USER_ADD_COMPLETED","MONITORING_USER_ADD_FAILED","MONITORING_USER_EDIT_STARTED","MONITORING_USER_EDIT_COMPLETED","MONITORING_USER_EDIT_FAILED","MONITORING_USER_REMOVE_STARTED","MONITORING_USER_REMOVE_COMPLETED","MONITORING_USER_REMOVE_FAILED","MONITORING_USER_FETCH_STARTED","MONITORING_USER_FETCH_COMPLETED","MONITORING_USER_FETCH_FAILED","MONITORING_USER_SELECTED","MONITORING_USERS_ALL_SELECTED","MONITORING_USER_DESELECTED","MONITORING_USERS_ALL_DESELECTED","MONITORING_USER_UPDATE_PASSWORD_STARTED","MONITORING_USER_UPDATE_PASSWORD_COMPLETED","MONITORING_USER_UPDATE_PASSWORD_FAILED","MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED","MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED","USERS_ASSIGN_SCHEDULE_STARTED","USERS_ASSIGN_SCHEDULE_COMPLETED","USERS_UNASSIGN_SCHEDULE_STARTED","USERS_UNASSIGN_SCHEDULE_COMPLETED","USERS_FILTER_LIMIT","DRIVERS_FETCH_STARTED","DRIVERS_FETCH_COMPLETED","DRIVERS_FETCH_FAILED","DRIVERS_PARTIAL_FETCH_STARTED","DRIVERS_PARTIAL_FETCH_COMPLETED","DRIVERS_PARTIAL_FETCH_FAILED","DRIVER_ADD_STARTED","DRIVER_ADD_COMPLETED","DRIVER_ADD_FAILED","DRIVER_EDIT_STARTED","DRIVER_EDIT_COMPLETED","DRIVER_EDIT_FAILED","DRIVER_REMOVE_STARTED","DRIVER_REMOVE_COMPLETED","DRIVER_REMOVE_FAILED","DRIVER_SELECTED","DRIVERS_ALL_SELECTED","DRIVER_DESELECTED","DRIVERS_ALL_DESELECTED","START_IMPORT_DRIVERS_UNITS_IMPORT","COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT","START_MASSIVE_DRIVERS_ASSIGNMENT","COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT","DRIVER_ASSIGN_SENSOR_STARTED","DRIVER_ASSIGN_SENSOR_COMPLETED","DRIVER_UNASSIGN_SENSOR_STARTED","DRIVER_UNASSIGN_SENSOR_COMPLETED","SENSORS_FETCH_STARTED","SENSORS_FETCH_COMPLETED","SENSORS_FETCH_FAILED","SENSORS_PARTIAL_FETCH_STARTED","SENSORS_PARTIAL_FETCH_COMPLETED","SENSORS_PARTIAL_FETCH_FAILED","SENSOR_FETCH_STARTED","SENSOR_FETCH_COMPLETED","SENSOR_FETCH_FAILED","SENSOR_ADD_STARTED","SENSOR_ADD_COMPLETED","SENSOR_ADD_FAILED","SENSOR_EDIT_STARTED","SENSOR_EDIT_COMPLETED","SENSOR_EDIT_FAILED","SENSOR_REMOVE_STARTED","SENSOR_REMOVE_COMPLETED","SENSOR_REMOVE_FAILED","SENSOR_SELECTED","SENSORS_ALL_SELECTED","SENSOR_DESELECTED","SENSORS_ALL_DESELECTED","IDENTIFIER_CHECK_STARTED","IDENTIFIER_CHECK_COMPLETED","IDENTIFIER_CHECK_FAILED","START_SENSOR_CALIBRATION_STARTED","START_SENSOR_CALIBRATION_COMPLETED","START_SENSOR_CALIBRATION_FAILED","FINALIZE_SENSOR_CALIBRATION_STARTED","FINALIZE_SENSOR_CALIBRATION_COMPLETED","FINALIZE_SENSOR_CALIBRATION_FAILED","SCHEDULES_FETCH_STARTED","SCHEDULES_FETCH_COMPLETED","SCHEDULES_FETCH_FAILED","SCHEDULES_PARTIAL_FETCH_STARTED","SCHEDULES_PARTIAL_FETCH_COMPLETED","SCHEDULES_PARTIAL_FETCH_FAILED","SCHEDULE_ADD_STARTED","SCHEDULE_ADD_COMPLETED","SCHEDULE_ADD_FAILED","SCHEDULE_SHIFT_ADD_STARTED","SCHEDULE_SHIFT_ADD_COMPLETED","SCHEDULE_SHIFT_ADD_FAILED","SCHEDULE_EDIT_STARTED","SCHEDULE_EDIT_COMPLETED","SCHEDULE_EDIT_FAILED","SCHEDULE_SHIFT_EDIT_STARTED","SCHEDULE_SHIFT_EDIT_COMPLETED","SCHEDULE_SHIFT_EDIT_FAILED","SCHEDULE_REMOVE_STARTED","SCHEDULE_REMOVE_COMPLETED","SCHEDULE_REMOVE_FAILED","SCHEDULE_SELECTED","SCHEDULES_ALL_SELECTED","SCHEDULE_DESELECTED","SCHEDULES_ALL_DESELECTED","ASSETS_FETCH_STARTED","ASSETS_FETCH_COMPLETED","ASSETS_FETCH_FAILED","ASSETS_PARTIAL_FETCH_STARTED","ASSETS_PARTIAL_FETCH_COMPLETED","ASSETS_PARTIAL_FETCH_FAILED","ASSET_ADD_STARTED","ASSET_ADD_COMPLETED","ASSET_ADD_FAILED","ASSET_EDIT_STARTED","ASSET_EDIT_COMPLETED","ASSET_EDIT_FAILED","ASSET_REMOVE_STARTED","ASSET_REMOVE_COMPLETED","ASSET_REMOVE_FAILED","ASSET_SELECTED","ASSETS_ALL_SELECTED","ASSET_DESELECTED","ASSETS_ALL_DESELECTED","ASSET_IDENTIFIER_CHECK_STARTED","ASSET_IDENTIFIER_CHECK_COMPLETED","ASSET_IDENTIFIER_CHECK_FAILED","ASSET_SECURITY_SEAL_CODE_CHECK_STARTED","ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED","ASSET_SECURITY_SEAL_CODE_CHECK_FAILED","MODULES_FETCH_STARTED","MODULES_FETCH_COMPLETED","MODULES_FETCH_FAILED","MODULES_PARTIAL_FETCH_STARTED","MODULES_PARTIAL_FETCH_COMPLETED","MODULES_PARTIAL_FETCH_FAILED","MODULE_FETCH_STARTED","MODULE_FETCH_COMPLETED","MODULE_FETCH_FAILED","MODULE_ADD_STARTED","MODULE_ADD_COMPLETED","MODULE_ADD_FAILED","MODULE_EDIT_STARTED","MODULE_EDIT_COMPLETED","MODULE_EDIT_FAILED","MODULE_REMOVE_STARTED","MODULE_REMOVE_COMPLETED","MODULE_REMOVE_FAILED","MODULE_SELECTED","MODULES_ALL_SELECTED","MODULE_DESELECTED","MODULES_ALL_DESELECTED","MODULE_DIRTY","MODULE_FILTER_LIMIT","OPERATORS_FETCH_STARTED","OPERATORS_FETCH_COMPLETED","OPERATORS_FETCH_FAILED","OPERATORS_PARTIAL_FETCH_STARTED","OPERATORS_PARTIAL_FETCH_COMPLETED","OPERATORS_PARTIAL_FETCH_FAILED","OPERATOR_ADD_STARTED","OPERATOR_ADD_COMPLETED","OPERATOR_ADD_FAILED","OPERATOR_EDIT_STARTED","OPERATOR_EDIT_COMPLETED","OPERATOR_EDIT_FAILED","OPERATOR_REMOVE_STARTED","OPERATOR_REMOVE_COMPLETED","OPERATOR_REMOVE_FAILED","OPERATOR_SELECTED","OPERATOR_DESELECTED","OPERATORS_ALL_SELECTED","OPERATORS_ALL_DESELECTED","OPERATOR_EDIT_STANDARD_PRICES_STARTED","OPERATOR_EDIT_STANDARD_PRICES_FAILED","OPERATOR_EDIT_STANDARD_PRICES_COMPLETED","SIMS_FETCH_STARTED","SIMS_FETCH_COMPLETED","SIMS_FETCH_FAILED","SIM_FETCH_STARTED","SIM_FETCH_COMPLETED","SIM_FETCH_FAILED","SIMS_PARTIAL_FETCH_STARTED","SIMS_PARTIAL_FETCH_COMPLETED","SIMS_PARTIAL_FETCH_FAILED","SIM_ADD_STARTED","SIM_ADD_COMPLETED","SIM_ADD_FAILED","SIM_EDIT_STARTED","SIM_EDIT_COMPLETED","SIM_EDIT_FAILED","SIM_REMOVE_STARTED","SIM_REMOVE_COMPLETED","SIM_REMOVE_FAILED","SIM_SELECTED","SIMS_ALL_SELECTED","SIM_DESELECTED","SIMS_ALL_DESELECTED","SIMS_FILTER_LIMIT","MaintenanceNoticeTypes","MAINTENANCE_LINES_FETCH_STARTED","MAINTENANCE_LINES_FETCH_COMPLETED","MAINTENANCE_LINES_FETCH_FAILED","MAINTENANCE_LINES_PARTIAL_FETCH_STARTED","MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED","MAINTENANCE_LINES_PARTIAL_FETCH_FAILED","MAINTENANCE_LINE_ADD_STARTED","MAINTENANCE_LINE_ADD_COMPLETED","MAINTENANCE_LINE_ADD_FAILED","MAINTENANCE_LINE_EDIT_STARTED","MAINTENANCE_LINE_EDIT_COMPLETED","MAINTENANCE_LINE_EDIT_FAILED","MAINTENANCE_LINE_REMOVE_STARTED","MAINTENANCE_LINE_REMOVE_COMPLETED","MAINTENANCE_LINE_REMOVE_FAILED","MAINTENANCE_LINE_COPY_STARTED","MAINTENANCE_LINE_COPY_COMPLETED","MAINTENANCE_LINE_COPY_FAILED","MAINTENANCE_LINE_SELECTED","MAINTENANCE_LINES_ALL_SELECTED","MAINTENANCE_LINE_DESELECTED","MAINTENANCE_LINES_ALL_DESELECTED","AGENTS_FETCH_STARTED","AGENTS_FETCH_COMPLETED","AGENTS_FETCH_FAILED","AGENTS_PARTIAL_FETCH_STARTED","AGENTS_PARTIAL_FETCH_COMPLETED","AGENTS_PARTIAL_FETCH_FAILED","AGENT_FETCH_STARTED","AGENT_FETCH_COMPLETED","AGENT_FETCH_FAILED","AGENT_ADD_STARTED","AGENT_ADD_COMPLETED","AGENT_ADD_FAILED","AGENT_EDIT_STARTED","AGENT_EDIT_COMPLETED","AGENT_EDIT_FAILED","AGENT_REMOVE_STARTED","AGENT_REMOVE_COMPLETED","AGENT_REMOVE_FAILED","AGENT_SELECTED","AGENTS_ALL_SELECTED","AGENT_DESELECTED","AGENTS_ALL_DESELECTED","VEHICLES_FETCH_STARTED","VEHICLES_FETCH_COMPLETED","VEHICLES_FETCH_FAILED","VEHICLES_PARTIAL_FETCH_STARTED","VEHICLES_PARTIAL_FETCH_COMPLETED","VEHICLES_PARTIAL_FETCH_FAILED","VEHICLE_ADD_STARTED","VEHICLE_ADD_COMPLETED","VEHICLE_ADD_FAILED","VEHICLE_EDIT_STARTED","VEHICLE_EDIT_COMPLETED","VEHICLE_EDIT_FAILED","VEHICLE_REMOVE_STARTED","VEHICLE_REMOVE_COMPLETED","VEHICLE_REMOVE_FAILED","VEHICLE_SELECTED","VEHICLES_ALL_SELECTED","VEHICLE_DESELECTED","VEHICLES_ALL_DESELECTED","VEHICLE_LICENSE_PLATE_CHECK_STARTED","VEHICLE_LICENSE_PLATE_CHECK_COMPLETED","VEHICLE_LICENSE_PLATE_CHECK_FAILED","CUSTOMERS_FETCH_STARTED","CUSTOMERS_FETCH_COMPLETED","CUSTOMERS_FETCH_FAILED","CUSTOMERS_PARTIAL_FETCH_STARTED","CUSTOMERS_PARTIAL_FETCH_COMPLETED","CUSTOMERS_PARTIAL_FETCH_FAILED","CUSTOMER_ADD_STARTED","CUSTOMER_ADD_COMPLETED","CUSTOMER_ADD_FAILED","CUSTOMER_EDIT_STARTED","CUSTOMER_EDIT_COMPLETED","CUSTOMER_EDIT_FAILED","CUSTOMER_REMOVE_STARTED","CUSTOMER_REMOVE_COMPLETED","CUSTOMER_REMOVE_FAILED","CUSTOMER_SELECTED","CUSTOMERS_ALL_SELECTED","CUSTOMER_DESELECTED","CUSTOMERS_ALL_DESELECTED","startFetchingUnits","completeFetchingUnits","failFetchingUnits","startFetchingUnit","completeFetchingUnit","failFetchingUnit","startPartialFetchingUnits","completePartialFetchingUnits","failPartialFetchingUnits","addingUnitToState","startFetchingUnitsLiveStatus","completeFetchingUnitsLiveStatus","failFetchingUnitsLiveStatus","startFetchingUnitInformation","completeFetchingUnitInformation","failFetchingUnitInformation","startFetchingUnitPositions","completeFetchingUnitPositions","failFetchingUnitPositions","resetIsFetchedUnitPosition","startFetchingUnitTrajectory","completeFetchingUnitTrajectory","failFetchingUnitTrajectory","startAddingUnit","completeAddingUnit","failAddingUnit","startUpdateDevice","completeUpdateDevice","failUpdateDevice","startEditingUnit","completeEditingUnit","failEditingUnit","startAcknowledgeUnitEvent","completeAcknowledgeUnitEvent","failAcknowledgeUnitEvent","startAssigningDriverUnits","completeAssigningDriverUnits","startEndDowntimeUnit","completeEndDowntimeUnit","failEndDowntimeUnit","startStartDowntimeUnit","completeStartDowntimeUnit","failStartDowntimeUnit","startActivingUnits","completeActivingUnits","failActivingUnits","startRemovingUnit","completeRemovingUnit","failRemovingUnit","setDateRange","dateRange","selectUnit","selectAllUnits","unitIds","deselectUnit","deselectAllUnits","showUnitInMap","showAllUnitsInMap","hideUnitInMap","hideAllUnitsInMap","startCreatingShareLink","completeCreatingShareLink","failCreatingShareLink","clearSharedLink","startUpdateSim","failUpdateSim","completeUpdateSim","changes","startAddingFetchDate","completeAddingFetchDate","failAddingFetchDate","SERVICECLASSES_FETCH_STARTED","SERVICECLASSES_FETCH_COMPLETED","SERVICECLASSES_FETCH_FAILED","SERVICECLASSES_PARTIAL_FETCH_STARTED","SERVICECLASSES_PARTIAL_FETCH_COMPLETED","SERVICECLASSES_PARTIAL_FETCH_FAILED","SERVICECLASS_FETCH_STARTED","SERVICECLASS_FETCH_COMPLETED","SERVICECLASS_FETCH_FAILED","SERVICECLASS_ADD_STARTED","SERVICECLASS_ADD_COMPLETED","SERVICECLASS_ADD_FAILED","SERVICECLASS_EDIT_STARTED","SERVICECLASS_EDIT_COMPLETED","SERVICECLASS_EDIT_FAILED","SERVICECLASS_REMOVE_STARTED","SERVICECLASS_REMOVE_COMPLETED","SERVICECLASS_REMOVE_FAILED","SERVICECLASS_SELECTED","SERVICECLASSES_ALL_SELECTED","SERVICECLASS_DESELECTED","SERVICECLASSES_ALL_DESELECTED","performanceColors","vehiclePerformanceTitle","getPerformanceTitle","rangePerformance","performanceStatus","Math","round","isDeficient","isRegular","isEfficient","vehiclePerformance","getPerformanceColor","expectedPerformance","getAllFilteredData","byVehicles","unitsWithRecentData","v","hasRecentData","moment","diff","systemDate","hasNoDowntimeReasonId","isNullOrUndefined","downTimeReasonId","hasPerformance","expectedfuelEconomyByVehicles","travel","loadThreshold","consumption","historicalFuelEconomy","unitsWithoutRecentData","hasNoRecentData","gpsDate","unitsWithoutPerformance","hasNoPerformance","dowtimeUnits","u","allFilters","unitsWithDischarges","filterTelemetryData","unitsWithoutDischarges","poorPerformance","performanceStatusNew","regularPerformance","goodPerformance","overPerformance","excessivePerformance","goodUnitsPercent","min","max","vehiclesData","property","filtered","dec2binReverse","dec","binary","reversedBinary","reverseBinary","floor","dec2bin","searchUseMetric","metricsMask","bitNumber","Metrics","ACCState","MetricId","MetricName","BitNumber","UseInVehicles","UseInAssets","UseInPeople","OrderNumber","ACCX","ACCY","ACCZ","AD1","AD2","AppVersion","BackupBattery","Battery","CellNumber","CoverTamperState","DoorState","FirmwareVersion","GSMSignalLevel","HardwareVersion","ICCID","IsCharging","MainVoltage","MCC","MNC","OverSpeedState","PadlockAuthorizationType","PadlockState","PLMN","Satellites","ShockSensorState","TrailerID","DriverId","SolarVoltage","getSummaryDataForDynamicTable","performanceSummary","statuses","row","weekNumber","statusLowerCase","toLowerCase","total","toFixed","Object","keys","useCombinedFuelHistory","samples","fuelEvents","selectedSensor","useMemo","fuelHistory","resultFinal","event","unitPositionLogId","sampleMatch","fuelSamples","sample","eventId","ORGANIZATION_CONTRACTS_FETCH_STARTED","ORGANIZATION_CONTRACTS_FETCH_COMPLETED","ORGANIZATION_CONTRACTS_FETCH_FAILED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED","ORGANIZATION_CONTRACT_ADD_STARTED","ORGANIZATION_CONTRACT_ADD_COMPLETED","ORGANIZATION_CONTRACT_ADD_FAILED","ORGANIZATION_CONTRACT_EDIT_STARTED","ORGANIZATION_CONTRACT_EDIT_COMPLETED","ORGANIZATION_CONTRACT_EDIT_FAILED","ORGANIZATION_CONTRACT_REMOVE_STARTED","ORGANIZATION_CONTRACT_REMOVE_COMPLETED","ORGANIZATION_CONTRACT_REMOVE_FAILED","ORGANIZATION_CONTRACT_SELECTED","ORGANIZATION_CONTRACTS_ALL_SELECTED","ORGANIZATION_CONTRACT_DESELECTED","ORGANIZATION_CONTRACTS_ALL_DESELECTED","CONTRACT_TEMPLATES_FETCH_STARTED","CONTRACT_TEMPLATES_FETCH_COMPLETED","CONTRACT_TEMPLATES_FETCH_FAILED","CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED","CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED","CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED","CONTRACT_TEMPLATE_ADD_STARTED","CONTRACT_TEMPLATE_ADD_COMPLETED","CONTRACT_TEMPLATE_ADD_FAILED","CONTRACT_TEMPLATE_EDIT_STARTED","CONTRACT_TEMPLATE_EDIT_COMPLETED","CONTRACT_TEMPLATE_EDIT_FAILED","CONTRACT_TEMPLATE_REMOVE_STARTED","CONTRACT_TEMPLATE_REMOVE_COMPLETED","CONTRACT_TEMPLATE_REMOVE_FAILED","CONTRACT_TEMPLATE_SELECTED","CONTRACT_TEMPLATES_ALL_SELECTED","CONTRACT_TEMPLATE_DESELECTED","CONTRACT_TEMPLATES_ALL_DESELECTED","OFFICES_FETCH_STARTED","OFFICES_FETCH_COMPLETED","OFFICES_FETCH_FAILED","OFFICES_PARTIAL_FETCH_STARTED","OFFICES_PARTIAL_FETCH_COMPLETED","OFFICES_PARTIAL_FETCH_FAILED","OFFICE_ADD_STARTED","OFFICE_ADD_COMPLETED","OFFICE_ADD_FAILED","OFFICE_EDIT_STARTED","OFFICE_EDIT_COMPLETED","OFFICE_EDIT_FAILED","OFFICE_REMOVE_STARTED","OFFICE_REMOVE_COMPLETED","OFFICE_REMOVE_FAILED","OFFICE_SELECTED","OFFICES_ALL_SELECTED","OFFICE_DESELECTED","OFFICES_ALL_DESELECTED","DIVISIONS_FETCH_STARTED","DIVISIONS_FETCH_COMPLETED","DIVISIONS_FETCH_FAILED","DIVISIONS_PARTIAL_FETCH_STARTED","DIVISIONS_PARTIAL_FETCH_COMPLETED","DIVISIONS_PARTIAL_FETCH_FAILED","DIVISION_ADD_STARTED","DIVISION_ADD_COMPLETED","DIVISION_ADD_FAILED","DIVISION_EDIT_STARTED","DIVISION_EDIT_COMPLETED","DIVISION_EDIT_FAILED","DIVISION_REMOVE_STARTED","DIVISION_REMOVE_COMPLETED","DIVISION_REMOVE_FAILED","DIVISION_SELECTED","DIVISIONS_ALL_SELECTED","DIVISION_DESELECTED","DIVISIONS_ALL_DESELECTED","SUBDIVISIONS_FETCH_STARTED","SUBDIVISIONS_FETCH_COMPLETED","SUBDIVISIONS_FETCH_FAILED","SUBDIVISIONS_PARTIAL_FETCH_STARTED","SUBDIVISIONS_PARTIAL_FETCH_COMPLETED","SUBDIVISIONS_PARTIAL_FETCH_FAILED","SUBDIVISION_ADD_STARTED","SUBDIVISION_ADD_COMPLETED","SUBDIVISION_ADD_FAILED","SUBDIVISION_EDIT_STARTED","SUBDIVISION_EDIT_COMPLETED","SUBDIVISION_EDIT_FAILED","SUBDIVISION_REMOVE_STARTED","SUBDIVISION_REMOVE_COMPLETED","SUBDIVISION_REMOVE_FAILED","SUBDIVISION_SELECTED","SUBDIVISIONS_ALL_SELECTED","SUBDIVISION_DESELECTED","SUBDIVISIONS_ALL_DESELECTED","COLORS","WORKPLANS_EXECUTIONS_FETCH_STARTED","WORKPLANS_EXECUTIONS_FETCH_COMPLETED","WORKPLANS_EXECUTIONS_FETCH_FAILED","WORKPLAN_EXECUTION_FETCH_STARTED","WORKPLAN_EXECUTION_FETCH_COMPLETED","WORKPLAN_EXECUTION_FETCH_FAILED","WORKPLANS_EXECUTION_CANCEL_STARTED","WORKPLANS_EXECUTION_CANCEL_COMPLETED","WORKPLANS_EXECUTION_CANCEL_FAILED","WORKPLANS_EXECUTION_FINALIZE_STARTED","WORKPLANS_EXECUTION_FINALIZE_COMPLETED","WORKPLANS_EXECUTION_FINALIZE_FAILED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED","WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED","WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED","WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED","WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED","WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED","WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED","CONTACTS_FETCH_STARTED","CONTACTS_FETCH_COMPLETED","CONTACTS_FETCH_FAILED","CONTACTS_PARTIAL_FETCH_STARTED","CONTACTS_PARTIAL_FETCH_COMPLETED","CONTACTS_PARTIAL_FETCH_FAILED","CONTACT_ADD_STARTED","CONTACT_ADD_COMPLETED","CONTACT_ADD_FAILED","CONTACT_EDIT_STARTED","CONTACT_EDIT_COMPLETED","CONTACT_EDIT_FAILED","CONTACT_REMOVE_STARTED","CONTACT_REMOVE_COMPLETED","CONTACT_REMOVE_FAILED","CONTACT_FETCH_STARTED","CONTACT_FETCH_COMPLETED","CONTACT_FETCH_FAILED","CONTACT_SELECTED","CONTACTS_ALL_SELECTED","CONTACT_DESELECTED","CONTACTS_ALL_DESELECTED","PROTOCOLS_FETCH_STARTED","PROTOCOLS_FETCH_COMPLETED","PROTOCOLS_FETCH_FAILED","PROTOCOLS_PARTIAL_FETCH_STARTED","PROTOCOLS_PARTIAL_FETCH_COMPLETED","PROTOCOLS_PARTIAL_FETCH_FAILED","PROTOCOLS_ADD_STARTED","PROTOCOLS_ADD_COMPLETED","PROTOCOLS_ADD_FAILED","PROTOCOLS_EDIT_STARTED","PROTOCOLS_EDIT_COMPLETED","PROTOCOLS_EDIT_FAILED","PROTOCOLS_REMOVE_STARTED","PROTOCOLS_REMOVE_COMPLETED","PROTOCOLS_REMOVE_FAILED","PROTOCOLS_SELECTED","PROTOCOLS_ALL_SELECTED","PROTOCOLS_DESELECTED","PROTOCOLS_ALL_DESELECTED","NOTICES_BY_ODOMETER_FETCH_STARTED","NOTICES_BY_ODOMETER_FETCH_COMPLETED","NOTICES_BY_ODOMETER_FETCH_FAILED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED","NOTICE_BY_ODOMETER_ADD_STARTED","NOTICE_BY_ODOMETER_ADD_COMPLETED","NOTICE_BY_ODOMETER_ADD_FAILED","NOTICE_BY_ODOMETER_EDIT_STARTED","NOTICE_BY_ODOMETER_EDIT_COMPLETED","NOTICE_BY_ODOMETER_EDIT_FAILED","NOTICE_BY_ODOMETER_RENEW_STARTED","NOTICE_BY_ODOMETER_RENEW_COMPLETED","NOTICE_BY_ODOMETER_RENEW_FAILED","NOTICE_BY_ODOMETER_REMOVE_STARTED","NOTICE_BY_ODOMETER_REMOVE_COMPLETED","NOTICE_BY_ODOMETER_REMOVE_FAILED","NOTICES_BY_DATE_FETCH_STARTED","NOTICES_BY_DATE_FETCH_COMPLETED","NOTICES_BY_DATE_FETCH_FAILED","NOTICES_BY_DATE_PARTIAL_FETCH_STARTED","NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED","NOTICES_BY_DATE_PARTIAL_FETCH_FAILED","NOTICE_BY_DATE_ADD_STARTED","NOTICE_BY_DATE_ADD_COMPLETED","NOTICE_BY_DATE_ADD_FAILED","NOTICE_BY_DATE_EDIT_STARTED","NOTICE_BY_DATE_EDIT_COMPLETED","NOTICE_BY_DATE_EDIT_FAILED","NOTICE_BY_DATE_RENEW_STARTED","NOTICE_BY_DATE_RENEW_COMPLETED","NOTICE_BY_DATE_RENEW_FAILED","NOTICE_BY_DATE_REMOVE_STARTED","NOTICE_BY_DATE_REMOVE_COMPLETED","NOTICE_BY_DATE_REMOVE_FAILED","NOTICES_BY_HOURMETER_FETCH_STARTED","NOTICES_BY_HOURMETER_FETCH_COMPLETED","NOTICES_BY_HOURMETER_FETCH_FAILED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED","NOTICE_BY_HOURMETER_ADD_STARTED","NOTICE_BY_HOURMETER_ADD_COMPLETED","NOTICE_BY_HOURMETER_ADD_FAILED","NOTICE_BY_HOURMETER_EDIT_STARTED","NOTICE_BY_HOURMETER_EDIT_COMPLETED","NOTICE_BY_HOURMETER_EDIT_FAILED","NOTICE_BY_HOURMETER_RENEW_STARTED","NOTICE_BY_HOURMETER_RENEW_COMPLETED","NOTICE_BY_HOURMETER_RENEW_FAILED","NOTICE_BY_HOURMETER_REMOVE_STARTED","NOTICE_BY_HOURMETER_REMOVE_COMPLETED","NOTICE_BY_HOURMETER_REMOVE_FAILED","OperatingSystem","Browser","DeviceType","PacketType","FuelCalibrationCommand","optionKeySpecialCharacters","å","ç","ƒ","ˆ","µ","ø","π","œ","ß","optionShiftSpecialCombinations","Å","ı","Ç","Î","Ï","Ó","Ô","Ò","Â","Ø","Œ","Í","ˇ","Á","formatHtmlToText","htmlStr","htmlToText","wordwrap","getDateWithoutTimezoneOffset","getTimezoneOffset","toISOString","slice","generateHourMinuteLabel","seconds","hours","minutes","generateDayHourMinuteSecondLabel","days","generateHourMinuteSecondStr","isUserLoggedIn","getUserData","selectThemeColors","theme","colors","primary25","primary","neutral10","neutral20","neutral30","isValidEmail","email","test","String","numberWithCommas","posiciones","decimalLength","indexOf","substr","trunc","replace","formatAmount","n","isValidNumber","isBitSet","b","pos","isIterable","obj","Symbol","iterator","getDateColumnsInDateRange","stacked","dateArray","setDate","getDate","dateTitle","getFullYear","getMonth","fieldName","customKey","staticText","getDay","getWeekColumns","weeks","columns","week","startWeekDate","DateTime","fromISO","toFormat","endWeekDate","weekColumns","headerText","customAttributes","class","userTimezoneOffset","convertExcelDateToSystemDate","excelDate","format","isAlphaNumeric","alpha","valueToValidate","trim","isNotNullOrUndefined","validateColumns","dataInfo","columnDefinitions","rules","cd","rowIndex","invalidColumns","colValue","colIndex","required","validation","validator","column","originalRowId","rowIsValid","validators","isAlphaNumericOrEmpty","isValidNumberOrEmpty","validLast4Digits","isNumber","is4Digits","is4DigitsNumber","e","isValidDate","isValid","isValidExcelDate","validateRequiredValue","validateUniqueValue","columnName","isValidDayOfTheWeek","formattedDayOfTheWeek","formatDate","weekday","locale","isValidBoolean","toValidate","isValidLatitude","parsedValue","isNaN","isValidLongitude","isValidBit","normalizeString","normalizeInputText","parseToNumber","isNaNOrNullable","dateFormatter","dateFormat","m","parseToBoolean","parsers","parseToString","isDate","parseToDate","serial","utcDays","dateInfo","fractionalDay","totalSeconds","excelDateToJSDate","parseToBit","parseToDateTime","exceldate","zone","setZone","keepLocalTime","toJSDate","timeToSeconds","time","getHours","getMinutes","getSeconds","timeToMinutes","getMinutesFromDate","getTotalSecondsFromDate","getSecondsFromDateHours","getSecondsFromDateMinutes","getSecondsFromDate","createDateWithHoursAndMinutes","newDate","setHours","setMinutes","setSeconds","setMilliseconds","secondsToMilliseconds","generateDateLabelByDate","getDaysHoursInDateRange","difference","ceil","generateDateArray","generateDayLabelByDate","isNotInObject","isInObject","isNotNaNOrNullable","areNotNullOrUndefined","arr","parseSecondsToHours","parseHoursToSeconds","parseSecondsToHoursWithEpsilon","EPSILON","getTimeInMinutes","getTimeInSeconds","getNextElementInArray","array","currentIdx","nextElement","Error","getPreviousElementInArray","getDifferenceBetweenDatesHHMMSS","duration","minutesSeconds","utc","asHours","getDaysBetweenDateAndTodayRef","startYear","daysInMonth","yearDiff","monthDiff","dayDiff","weekDiff","hexToRgbA","hex","isHex","substring","getZeroIfNaNOrNullable","getDateStrFormatted","hasDBDateFormat","isMoment","getDateAsKey","getIsMobile","navigator","userAgent","getShortDate","transform","target","isArray","camelCase","isObject","truncateStr","charAt","formatNumber","useSelectedLocale","numberToValidate","regexIsNumber","localeToUse","newNumberFormatted","toLocaleString","testIsNumber","getUseCRM","REACT_APP_PRODUCT_CRM","getUseConsole","REACT_APP_PRODUCT_CONSOLE","getUseLoginext","REACT_APP_USE_LOGINEXT","getIsWebtrackUser","webtrackEmail","getHourFromStringTime","hour","getMinutesFromStringTime","isEmptyData","obj1","obj2","isNotEmptyData","joinTexts","items","by","formatList","stripHtml","temp","innerHTML","textContent","roundWithEpsilon","formatHourMeter","hourMeter","getSecondsBetweenDates","start","getKeyboardModifiers","ctrl","alt","shift","parsedKey","isMobile","isBrowserMobile","platform","os","Unknown","startsWith","Windows","MacOS","Linux","IOS","Android","isBrowserChrome","isBrowserFirefox","isBrowserSafari","browser","Chrome","Firefox","Safari","deviceType","Mobile","Desktop","getDeviceInfo","shiftKey","metaKey","altKey","KeyboardEvent","DOM_KEY_LOCATION_RIGHT","ctrlKey","toBit","scrollDown","setTimeout","scrollBy","top","innerHeight","behavior","byId","timestamp","auditDate","union","userUpdateByEntity","unitsTypes","subdivisionsTypes","maintenanceLinesTypes","vehicleTypes","modulesTypes","agentsTypes","serviceClassesTypes","operatorsTypes","divisionsTypes","formsTypes","organizationsTypes","monitoringUsersTypes","workplansTypes","geofencesTypes","schedulesTypes","routesTypes","simsTypes","locationTypes","officeTypes","driverTypes","assetsTypes","sensorsTypes","jobsTypes","groupsTypes","customersTypes","contractsTypes","contractTemplatesTypes","toUTCString","notificationTypes","isFetchingList","isFetchedList","errorFetchingList","entitiesPersistConfig","getEntity","getUserUpdateByEntityTimestamp","getUserUpdateByEntityDate","getUserUpdateByEntityOperatorId","getUserUpdateByEntityOrganizationId","updateEntityByTimestamp","entityTimestamp","userUpdateEntityOperatorId","userUpdateEntityOrganizationId","areAllEntitiesUpdated","areUpdated","isFetchedListEntities","CATEGORIES_FETCH_STARTED","CATEGORIES_FETCH_COMPLETED","CATEGORIES_FETCH_FAILED","CATEGORIES_PARTIAL_FETCH_STARTED","CATEGORIES_PARTIAL_FETCH_COMPLETED","CATEGORIES_PARTIAL_FETCH_FAILED","CATEGORY_ADD_STARTED","CATEGORY_ADD_COMPLETED","CATEGORY_ADD_FAILED","CATEGORY_EDIT_STARTED","CATEGORY_EDIT_COMPLETED","CATEGORY_EDIT_FAILED","CATEGORY_REMOVE_STARTED","CATEGORY_REMOVE_COMPLETED","CATEGORY_REMOVE_FAILED","PROVIDERS_FETCH_STARTED2","PROVIDERS_FETCH_COMPLETED2","PROVIDERS_FETCH_FAILED2","PROVIDERS_PARTIAL_FETCH_STARTED2","PROVIDERS_PARTIAL_FETCH_COMPLETED2","PROVIDERS_PARTIAL_FETCH_FAILED2","PROVIDER_ADD_STARTED","PROVIDER_ADD_COMPLETED","PROVIDER_ADD_FAILED","PROVIDER_EDIT_STARTED","PROVIDER_EDIT_COMPLETED","PROVIDER_EDIT_FAILED","PROVIDER_REMOVE_STARTED","PROVIDER_REMOVE_COMPLETED","PROVIDER_REMOVE_FAILED","SPAREPARTS_FETCH_STARTED","SPAREPARTS_FETCH_COMPLETED","SPAREPARTS_FETCH_FAILED","SPAREPARTS_PARTIAL_FETCH_STARTED","SPAREPARTS_PARTIAL_FETCH_COMPLETED","SPAREPARTS_PARTIAL_FETCH_FAILED","SPAREPART_ADD_STARTED","SPAREPART_ADD_COMPLETED","SPAREPART_ADD_FAILED","SPAREPART_EDIT_STARTED","SPAREPART_EDIT_COMPLETED","SPAREPART_EDIT_FAILED","SPAREPART_REMOVE_STARTED","SPAREPART_REMOVE_COMPLETED","SPAREPART_REMOVE_FAILED","WORKMANSHIPS_FETCH_STARTED","WORKMANSHIPS_FETCH_COMPLETED","WORKMANSHIPS_FETCH_FAILED","WORKMANSHIPS_PARTIAL_FETCH_STARTED","WORKMANSHIPS_PARTIAL_FETCH_COMPLETED","WORKMANSHIPS_PARTIAL_FETCH_FAILED","WORKMANSHIP_ADD_STARTED","WORKMANSHIP_ADD_COMPLETED","WORKMANSHIP_ADD_FAILED","WORKMANSHIP_EDIT_STARTED","WORKMANSHIP_EDIT_COMPLETED","WORKMANSHIP_EDIT_FAILED","WORKMANSHIP_REMOVE_STARTED","WORKMANSHIP_REMOVE_COMPLETED","WORKMANSHIP_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_FETCH_STARTED","WORKPLAN_ASSIGNMENT_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_FETCH_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED","omit","scheduleIds","scheduleIdState","isPartialFetchingList","isAdding","isEditing","isRemoving","errorPartialFetchingList","errorAdding","errorEditing","errorRemoving","getSchedule","originGeofence","workGeofence","destinationGeofence","divisionSelectors","subdivisionSelectors","originGeofenceName","workGeofenceName","destinationGeofenceName","checkSequenceLabel","checkSequence","getScheduleByPrivateCode","privateCode","getSchedulesList","getScheduleByPrivateCodeByMembership","getScheduleListByMembership","scheduleStatus","getSelectedSchedules","selectedSchedules","getTriggersList","scheduleType","getTriggersListByMembership","getShiftsList","getShiftsListByMembership","getShiftListByMembershipDetail","shiftTimes","flattenDeep","day","startTime","endTime","getSelectedSchedule","isPartialFetchingListSchedules","isFetchingListSchedules","isAddingSchedule","isEditingSchedule","isRemovingSchedule","getPartialFetchingListSchedulesErrors","getFetchingListSchedulesErrors","getAddingScheduleErrors","getEditingScheduleErrors","getRemovingScheduleErrors","ROUTES_EXECUTION_COMMENTS_FETCH_STARTED","ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED","ROUTES_EXECUTION_COMMENTS_FETCH_FAILED","ROUTES_EXECUTION_COMMENT_ADD_STARTED","ROUTES_EXECUTION_COMMENT_ADD_COMPLETED","ROUTES_EXECUTION_COMMENT_ADD_FAILED","ROUTES_EXECUTION_COMMENT_EDIT_STARTED","ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED","ROUTES_EXECUTION_COMMENT_EDIT_FAILED","ROUTES_EXECUTION_COMMENT_REMOVE_STARTED","ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED","ROUTES_EXECUTION_COMMENT_REMOVE_FAILED","Option","components","SingleValue","NoOptionsMessage","filterOption","candidate","showOptionFilter","label","_","deburr","err","label_intl","IconOption","display","flexDirection","iconSVG","src","height","marginRight","IconSingleValue","cache","CellMeasurerCache","defaultHeight","fixedWidth","MenuList","rows","rowRenderer","parent","columnIndex","measure","registerChild","ref","disableWidth","containerStyle","backgroundColor","maxWidth","rowCount","rowHeight","DropdownInput","field","fieldstate","hasPlaceholder","options","isInModal","forceinitialvalue","onClear","additionalonchangefunction","menuIsOpen","minWidth","onInputChange","onFocus","inputProps","getComputedStyle","useEffect","onChangeFinal","isInArray","o","onChange","for","addonType","prependcomponent","styles","menuPortal","zIndex","provided","control","boxShadow","isFocused","border","process","singleValue","fontWeight","fontSize","lineHeight","transition","menuList","placeholder","triggeredAction","onSelect","onBlur","isClearable","option","fieldValue","optValue","selectedValue","noOptionsMessage","maxMenuHeight","menuPortalTarget","querySelector","appendcomponent","TextInput","autocompleteinput","topRightComponent","disabled","errorinvalidmessage","errorvalidatemessage","autoComplete","invalid","defaultProps","USER_NOTIFICATIONS_FETCH_STARTED","USER_NOTIFICATIONS_FETCH_COMPLETED","USER_NOTIFICATIONS_FETCH_FAILED","USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED","USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED","USER_NOTIFICATIONS_PARTIAL_FETCH_FAILED","USER_NOTIFICATION_READ_STARTED","USER_NOTIFICATION_READ_COMPLETED","USER_NOTIFICATION_READ_FAILED","USER_NOTIFICATION_SHOWN","USER_NOTIFICATION_SELECTED","USER_NOTIFICATION_DESELECTED","USER_NOTIFICATION_ALL_SELECTED","USER_NOTIFICATION_ALL_DESELECTED","MainStateType","ONLINE","textColor","tooltip","shortIntl","OFFLINE","OFF","MOVING","ON_IDLE","ON_STANDBY","ON_STARTED","DOWNTIME","ON_STOPPED","ON_MOVING","STOPPED","OPPORTUNITY_CHARGE","DISCONNECTED","getIconByStatId","GetMainStateById","GetMainStateStyle","GetMainStateName","mainState","mainStateTitle","downTimeReason","extraMessage","getUnitIcon","themeId","getUnitActionIcon","getUnitMainStateIconAndSize","getUnitHeadingIcon","heading","getUnitHeadingFormat","getDatesDifferenceString","date1","date2","getTimeDifferenceString","abs","getIconByDatesDifference","getUnitsCompleteData","liveUnit","selectedOrganizationId","unitLiveStatus","speedFormat","convertKilometersPerHourToAuthUserSpeedSystem","odometerFormat","speedLimit","distanceFormat","historicalPositions","deviceMetricsSelectors","deviceActionsSelectors","groupsSelectors","reportsSelectors","imagesSelectors","sensorsSelectors","hourMeterFormat","mainStateName","downtimeReasonDescription","fromNow","headingFormat","allPositions","isShownInMap","getSpecialFunctionParams","specialFunctionId","Controller","membershipFilters","sm","defaultValue","param1","fieldState","allowZero","param2","param3","usersFilters","param4","allowNulls","enableTime","showTime","locationsFilters","eventsFilters","startFetchingGeofences","completeFetchingGeofences","showInMap","failFetchingGeofences","startFetchingGeofence","completeFetchingGeofence","failFetchingGeofence","startPartialFetchingGeofences","completePartialFetchingGeofences","failPartialFetchingGeofences","startAddingGeofence","completeAddingGeofence","failAddingGeofence","startEditingGeofence","completeEditingGeofence","failEditingGeofence","startRemovingGeofence","completeRemovingGeofence","failRemovingGeofence","startRemovingGeofenceAssignation","startRemovingAllAssignmentsByGeofences","startRemovingAllAssignmentsByUnits","completeRemovingGeofenceAssignation","failRemovingGeofenceAssignation","startEditingGeofenceAssignation","completeEditingGeofenceAssignation","failEditingGeofenceAssignation","showGeofenceInMap","showAllGeofencesInMap","geofenceIds","hideGeofenceInMap","hideAllGeofencesInMap","startAssignUnitsGeofences","completeAssignUnitsGeofences","failAssignUnitsGeofences","ROUTES_ASSIGNMENTS_FETCH_STARTED","ROUTES_ASSIGNMENTS_FETCH_COMPLETED","ROUTES_ASSIGNMENTS_FETCH_FAILED","ROUTES_ASSIGNMENT_EDIT_STARTED","ROUTES_ASSIGNMENT_EDIT_COMPLETED","ROUTES_ASSIGNMENT_EDIT_FAILED","ROUTES_ASSIGNMENT_REMOVE_STARTED","ROUTES_ASSIGNMENT_REMOVE_COMPLETED","ROUTES_ASSIGNMENT_REMOVE_FAILED","ROUTES_ASSIGNMENTS_IMPORT_STARTED","ROUTES_ASSIGNMENTS_IMPORT_COMPLETED","ROUTES_ASSIGNMENTS_IMPORT_FAILED","WORKPLANS_EXECUTION_LOCATION_ADD_STARTED","WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED","WORKPLANS_EXECUTION_LOCATION_ADD_FAILED","WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED","WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED","WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED","WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED","WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED","WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED","WORKPLAN_COMMENTS_FETCH_STARTED","WORKPLAN_COMMENTS_FETCH_COMPLETED","WORKPLAN_COMMENTS_FETCH_FAILED","WORKPLAN_COMMENT_ADD_STARTED","WORKPLAN_COMMENT_ADD_COMPLETED","WORKPLAN_COMMENT_ADD_FAILED","WORKPLAN_COMMENT_REMOVE_STARTED","WORKPLAN_COMMENT_REMOVE_COMPLETED","WORKPLAN_COMMENT_REMOVE_FAILED","isShowInMap","geofenceIdState","isFetchingGeofence","geofencesPersistedConfig","whitelist","getGeofence","getGeofencesList","geofenceStatus","getParentGeofencesList","isParentGeofence","getSubGeofencesList","parentGeofenceId","getGeofencesListByMembership","geofencesList","getGeofenceByPrivateCodeByMembership","getParentGeofencesListByMembership","getSubGeofencesListByMembership","isPartialFetchingListGeofences","isFetchingListGeofences","isAddingGeofence","isEditingGeofence","isRemovingGeofence","isFetchingGeofenceById","NumericalInput","step","useNumberSpinner","metric","allowUndefined","allowDecimals","decimalsPrecision","autoCompleteInput","forceShowDecimals","useState","setInputValue","authSystems","useSelector","handleChangeNumber","newValue","isEmptyString","hasNumberFormat","validate","onKeyDown","preventDefault","readonly","startLogin","password","completeLogin","failLogin","logout","setSessionMembership","authenticationUserInformationCompleted","startRefreshToken","startForceRefreshToken","completeRefreshToken","failRefreshToken","startUpdatingProfileGeneralInformation","completeUpdatingProfileGeneralInformation","failUpdatingProfileGeneralInformation","startUpdatingProfilePassword","completeUpdatingProfilePassword","failUpdatingProfilePassword","completeUpdatingProfilePicture","startUpdatingProfileHomeScreen","completeUpdatingProfileHomeScreen","failUpdatingProfileHomeScreen","startChangingProduct","completeChangingProduct","failChangingProduct","startUpdatingProfileMapOptions","completeUpdatingProfileMapOptions","failUpdatingProfileMapOptions","startUpdatingMapSettingsConfiguration","completeUpdatingMapSettingsConfiguration","failUpdatingMapSettingsConfiguration","startUpdatingMapFilterTabPinned","completeUpdatingMapFilterTabPinned","failUpdatingMapFilterTabPinned","setCatalogFilters","fetchDate","trajectory","eventName","eventParam","eventTextColor","eventColor","isFetchingLiveStatusList","isFetchingInformation","isFetchingPositions","isAcknowledgeEvent","isFetchedPosition","errorFetchingLiveStatusList","errorFetchingInformation","errorEditingInformation","isFetchingTrajectory","getUnit","downtimeReasonId","deviceModelName","deviceIdentifier","brandName","newUnit","unitPublicId","imsi","cellularNumber","mobileOperatorId","mobileOperatorName","unitStatus","unitStatusName","unitIdState","isEditingDowntime","isCreatingSharedLink","oldMainStateIds","hasAlreadyFetched","errorUpdatingDevice","isUpdatingDevice","isFetchingUnit","isUpdatingSimCard","unitsPersistedConfig","isCreatingSharedLinkUnit","sharedLinkUnit","oldUnitMainStateIds","getUnitLiveStatus","getUnitsList","getUnitsSpecificList","list","getActiveUnitsList","getActiveUnitsListByMembership","getActiveUnitsListByPartialMembership","useOperator","useOrganization","useDivision","useSubdivision","getSelectedUnits","selectedUnits","getUnitByPrivateCode","getUnitByIdOrPrivateCode","getSelectedUnit","isPartialFetchingListUnits","isFetchingListUnits","haveUnitsBeenFetched","isAddingUnit","isEditingUnit","isEditingUnitDowntime","isRemovingUnit","isFetchingUnitById","isEditingSimCard","isEditingDevice","getPartialFetchingListUnitsErrors","getFetchingListUnitsErrors","getAddingUnitErrors","getEditingUnitErrors","getRemovingUnitErrors","getUnitLiveFetchDate","selectorsUnitLiveStatus","getUnitsLiveStatusList","isFetchingListUnitsLiveStatus","isFetchingUnitInformation","isFetchingUnitPositions","isAcknowledgeUnitEvent","isFetchedUnitPosition","isFetchingUnitTrajectory","getFetchingListUnitsLiveStatusErrors","getFetchingUnitInformationErrors","changeUnitSubState","getRouteAssignments","getFleetService","getUnitDeviceActionParametersService","getUnitDeviceActionsService","getPublicUnitHistoricalPositionsReportService","getUnitRunningTimeByHour","getUnitScriptHistory","getUnitTemperatureHistory","getUnitFuelHistory","getAssetFuelHistory","getUnitFuelSamples","getUnitFuelInformation","getUnitFuelEvents","getDowntimeBinnacleService","getUserAssignedUnits","removeUserAssignedUnits","addUserAssignedUnits","updateOdometer","updateHourmeter","updateDeviceService","getUnitsListByFiltersService","getUnitAssetsService","getUnitScriptsSerivice","insertUnitScriptService","getSharedLinkUnitService","getUnitSpecialFunctionsService","getSpecialFunctionsDropdownService","updateUnitSpecialFunctionService","deleteUnitSpecialFunctionService","startFetchingQuotations","completeFetchingQuotations","failFetchingQuotations","completePartialFetchingQuotations","failPartialFetchingQuotations","startAddingQuotation","completeAddingQuotation","failAddingQuotation","startEditingQuotation","completeEditingQuotation","failEditingQuotation","startSchedulingQuotation","completeSchedulingQuotation","failSchedulingQuotation","startCheckingQuotationScheduling","completeCheckingQuotationScheduling","failCheckingQuotationScheduling","startApprovingDenyingQuotationManagement","completeApprovingDenyingQuotationManagement","failApprovingDenyingQuotationManagement","startAcceptingDenyingQuotationCustomer","completeAcceptingDenyingQuotationCustomer","failAcceptingDenyingQuotationCustomer","startSettingTimesupQuotation","completeSettingTimesupQuotation","failSettingTimesupQuotation","startRemovingQuotation","completeRemovingQuotation","failRemovingQuotation","changeQuotationOrganization","selectQuotation","deselectAllQuotations","quotationIds","startCopyingQuotation","completeCopyingQuotation","failCopyingQuotation","startFetchingSchedules","completeFetchingSchedules","failFetchingSchedules","startPartialFetchingSchedules","completePartialFetchingSchedules","failPartialFetchingSchedules","startAddingSchedule","completeAddingSchedule","failAddingSchedule","startAddingShift","startEditingSchedule","completeEditingSchedule","failEditingSchedule","startEditingShift","completeEditingShift","failEditingShift","startRemovingSchedule","completeRemovingSchedule","failRemovingSchedule","selectSchedule","deselectAllSchedules","sparepartsCatalog","workshopCatalog","categoriesCatalog","providersCatalog","addSpareparts","addWorkshop","addCategories","addProviders","editSpareparts","editWorkshop","editCategories","editProviders","removeSpareparts","removeWorkshop","removeCategories","removeProviders","generalReport","byCategoryReport","byUnitReport","byWorkShopReport","importTicket","addTickets","maintenanceLineAdd","maintenanceLineEdit","maintenanceLineRemove","preventiveNotices","addPreventiveNotices","editPreventiveNotices","removePreventiveNotices","reschedulePreventiveNotice","totalNotices","expiredNotices","activeNotices","COUNTRIES_FETCH_STARTED","COUNTRIES_FETCH_COMPLETED","COUNTRIES_FETCH_FAILED","COUNTRIES_PARTIAL_FETCH_STARTED","COUNTRIES_PARTIAL_FETCH_COMPLETED","COUNTRIES_PARTIAL_FETCH_FAILED","COUNTRY_FETCH_STARTED","COUNTRY_FETCH_COMPLETED","COUNTRY_FETCH_FAILED","COUNTRY_SELECTED","COUNTRIES_ALL_SELECTED","COUNTRY_DESELECTED","COUNTRIES_ALL_DESELECTED","isImporting","errorImporting","getLocation","restartState","locationIdState","isFetchingLocation","locationsPersistedConfig","getLocationsList","locationStatus","getLocationByPrivateCode","getLocationByPrivateCodeByMembership","getLocationsListByMembership","getLocationByGooglePlaceId","googlePlaceId","googleLocation","getLocationsListByLocationClassId","locationClassId","getLocationsOfficesList","useOnlyOffices","officeSelectors","officePrivateCode","getLocationOffice","getLocationsOfficesListByMembership","isPartialFetchingListLocations","isFetchingListLocations","haveLocationsBeenFetched","isAddingLocation","isEditingLocation","isRemovingLocation","isFetchingLocationById","getImportedLocationsList","importedLocationsSelectors","isImportingLocations","startFetchingContacts","completeFetchingContacts","failFetchingContacts","startPartialFetchingContacts","completePartialFetchingContacts","startAddingContact","completeAddingContact","failAddingContact","startEditingContact","completeEditingContact","failEditingContact","startRemovingContact","completeRemovingContact","failRemovingContact","selectContact","deselectAllContacts","contactIds","startFetchingLocations","completeFetchingLocations","failFetchingLocations","startFetchingLocation","completeFetchingLocation","failFetchingLocation","startPartialFetchingLocations","completePartialFetchingLocations","failPartialFetchingLocations","startAddingLocation","completeAddingLocation","failAddingLocation","startEditingLocation","completeEditingLocation","failEditingLocation","startRemovingLocation","completeRemovingLocation","failRemovingLocation","startImportingLocations","completeImportingLocations","failImportingLocations","showLocationInMap","showAllLocationsInMap","hideLocationInMap","hideAllLocationsInMap","startFetchingJobsBacklog","completeFetchingJobsBacklog","failFetchingJobsBacklog","startPartialFetchingJobsBacklog","completePartialFetchingJobsBacklog","failPartialFetchingJobsBacklog","completeAddingJobBacklog","failAddingJobBacklog","completeEditingJobBacklog","failEditingJobBacklog","completeRemovingJobsBacklog","failRemovingJobsBacklog","completeChangeStatusJobs","failChangeStatusJobs","oldJobs","completeChangePriorityJobs","failChangePriorityJobs","completeChangeStartDateJobs","failChangeStartDateJobs","completeChangeDueDateJobs","failChangeDueDateJobs","completeChangeMinMaxTimeJobs","failChangeMinMaxTimeJobs","completeAssignUsersJobs","failAssignUsersJobs","completeAssignFormsJobs","failAssignFormsJobs","completeAssignFilesJobs","failAssignFilesJobs","completeRescheduleJobs","failRescheduleJobs","completeImportingJobs","failImportingJobs","organizationIds","organizationIdState","isAddingDowntimeReason","isEditingDowntimeReason","isRemovingDowntimeReason","errorAddingDowntimeReason","errorEditingDowntimeReason","errorRemovingDowntimeReason","getOrganizationOperator","getOrganizationOperatorName","getOrganization","getOrganizationName","getOrganizationLoginextParams","loginextEffectiveVisitingTime","loginextDeliveryDelay","getOrganizationsList","organizationStatus","getOrganizationsListByMembership","getOrganizationsListBySelectedOperator","getSelectedOrganizations","selectedOrganizations","getSelectedOrganization","isPartialFetchingListOrganizations","isFetchingListOrganizations","isAddingOrganization","isEditingOrganization","isRemovingOrganization","isAddingOrganizationDowntimeReason","isEditingOrganizationDowntimeReason","isRemovingOrganizationDowntimeReason","getPartialFetchingListOrganizationsErrors","getFetchingListOrganizationsErrors","getAddingOrganizationErrors","getEditingOrganizationErrors","getRemovingOrganizationErrors","getAddingOrganizationDowntimeReasonErrors","getEditingOrganizationDowntimeReasonErrors","getRemovingOrganizationDowntimeReasonErrors","isValidCode","startFetchingGroups","completeFetchingGroups","failFetchingGroups","startFetchingGroup","completeFetchingGroup","failFetchingGroup","startPartialFetchingGroups","completePartialFetchingGroups","failPartialFetchingGroups","completeFetchingAllEntitiesGroups","failFetchingAllEntitiesGroups","startAddingGroup","completeAddingGroup","failAddingGroup","startAddingGroupWithEntities","completeAddingGroupWithEntities","failAddingGroupWithEntities","startEditingGroup","completeEditingGroup","failEditingGroup","startRemovingGroup","completeRemovingGroup","failRemovingGroup","startLeavingGroup","completeLeavingGroup","failLeavingGroup","startEditingNotificationsConfigurationGroup","completeEditingNotificationsConfigurationGroup","failEditingNotificationsConfigurationGroup","startRemovingEntitiesFromGroup","completeRemovingEntitiesFromGroup","startAddingEntitiesToGroup","completeAddingEntitiesToGroup","startEditingUserProfileInGroup","completeEditingUserProfileInGroup","selectGroup","deselectAllGroups","groupIds","startFetchingOrganizations","completeFetchingOrganizations","failFetchingOrganizations","startPartialFetchingOrganizations","failPartialFetchingOrganizations","startAddingOrganization","completeAddingOrganization","failAddingOrganization","startEditingOrganization","completeEditingOrganization","failEditingOrganization","startSavingConsolidableEvents","completeSavingConsolidableEvents","failSavingConsolidableEvents","startRemovingOrganization","completeRemovingOrganization","failRemovingOrganization","selectOrganization","deselectOrganization","deselectAllOrganizations","startCheckingCode","completeCheckingCode","startAssigningCode","completeAssigningCode","failAssigningCode","startAddingOrganizationDowntimeReason","completeAddingOrganizationDowntimeReason","failAddingOrganizationDowntimeReason","startEditingOrganizationDowntimeReason","completeEditingOrganizationDowntimeReason","failEditingOrganizationDowntimeReason","oldDowntimeReason","startRemovingOrganizationDowntimeReason","completeRemovingOrganizationDowntimeReason","failRemovingOrganizationDowntimeReason","startFetchingWorkplans","completeFetchingWorkplans","failFetchingWorkplans","startPartialFetchingWorkplans","completePartialFetchingWorkplans","failPartialFetchingWorkplans","completeFetchingWorkplanLocations","failFetchingWorkplanLocations","startAddingWorkplan","completeAddingWorkplan","failAddingWorkplan","startEditingWorkplan","completeEditingWorkplan","failEditingWorkplan","startRemovingWorkplan","completeRemovingWorkplan","failRemovingWorkplan","selectWorkplan","deselectWorkplan","startCopyWorkplan","completeCopyWorkplan","failCopyWorkplan","startAssignOriginGeofenceWorkplan","completeAssignOriginGeofenceWorkplan","failAssignOriginGeofenceWorkplan","startAssignWorkGeofenceWorkplan","completeAssignWorkGeofenceWorkplan","failAssignWorkGeofenceWorkplan","startAssignDestinationGeofenceWorkplan","completeAssignDestinationGeofenceWorkplan","failAssignDestinationGeofenceWorkplan","startFetchingForms","completeFetchingForms","failFetchingForms","startPartialFetchingForms","completePartialFetchingForms","failPartialFetchingForms","startFetchingFormSections","completeFetchingFormSections","failFetchingFormSections","startFetchingFormQuestions","completeFetchingFormQuestions","failFetchingFormQuestions","startAddingForm","formDescription","organizationFormCategoryId","useBarCodes","requireSignature","copyToCustomer","formTypeId","formUrl","notificationEmails","completeAddingForm","failAddingForm","startAddingExternal","startEditingExternal","startEditingForm","completeEditingForm","failEditingForm","startRemovingForm","completeRemovingForm","failRemovingForm","selectForm","deselectAllForms","startAddingResponse","tableResponses","responseDate","completeAddingResponse","failAddingResponse","addSection","sectionType","sectionId","changeSectionCollapsed","moveSection","startingPosition","endingPosition","editSectionName","sectionName","deleteSection","copySection","newSectionId","newSection","setSections","sectionsOrder","sectionsId","addRow","rowId","moveRow","editRowName","deleteRow","addQuestion","questionType","questionId","moveQuestion","deleteQuestion","copyQuestion","newQuestion","setQuestion","question","editQuestionHeight","changeQuestionCollapsed","startFetchingResponse","completeFetchingResponse","failFetchingResponse","startResendingResponse","completeResendingResponse","failResendingResponse","selectAnswer","responseId","moveAnswer","addAnswer","answerId","deleteAnswer","editAnswer","routesComments","isFetchingExecutions","isEditingExecution","isCancelingExecution","isFinalizingExecution","isCompletingExecution","isRemovingExecution","isSharingExecution","isPausingExecution","isStartingExecution","isUpdatingManualTransitExecution","isChangingToAlternateRoute","errorFetchingExecutions","errorEditingExecution","errorCancelingExecution","errorFinalizingExecution","errorCompletingExecution","errorRemovingExecution","errorPausingExecution","errorStartingExecution","errorUpdatingManualTransitExecution","errorSharingExecution","errorChangingToAlternateRoute","getRoutesExecution","getRouteExecutionInformation","getRoutesExecutionsList","getIndicatorsInformation","correctRunning","onOrigin","onDestination","onRoute","atCheckpoint","incorrectRunning","paused","offRoute","eao","unauthorizedReturn","running","scheduled","finalized","canceled","getTotalNotShown","getIndicators","viewTotalIndicator","viewScheduledIndicator","bigIndicator","details","info","onTime","late","popoverTitle","popoverBody","viewRunningIndicator","getExecutionsStatus","labels","series","viewRouteByStatusGraph","getRunningStatus","viewRouteRunningGraph","isFetchingRoutesExecutions","isEditingRouteExecution","isCancelingRoutesExecution","isFinalizingRoutesExecution","isCompletingRoutesExecution","isRemovingRoutesExecution","isPausingRoutesExecution","isStartingRoutesExecution","isUpdatingManualTransitRoutesExecution","isSharingRoutesExecution","isChangingToAlternateRouteExecution","getFetchingRoutesExecutionsErrors","getCancelingRoutesExecutionErrors","getFinalizingRoutesExecutionErrors","getCompletingRoutesExecutionErrors","getRemovingRoutesExecutionErrors","getPausingRoutesExecutionErrors","getStartingRoutesExecutionErrors","getUpdatingManualTransitRoutesExecutionErrors","getSharingRoutesExecutionErrors","getChangingToAlternateRouteErrors","DefaultButton","isLoading","handleClick","tooltipMessage","iconSize","visible","tooltipPosition","tooltipOpen","setTooltipOpen","Ripple","onClick","as","animation","role","aria-hidden","placement","isOpen","toggle","trigger","JOBS_BOARD_FETCH_STARTED","JOBS_BOARD_FETCH_COMPLETED","JOBS_BOARD_FETCH_FAILED","JOBS_BOARD_CHANGE_STATUS_STARTED","JOBS_BOARD_CHANGE_STATUS_COMPLETED","JOBS_BOARD_CHANGE_STATUS_FAILED","startFetchingRoutes","completeFetchingRoutes","failFetchingRoutes","startPartialFetchingRoutes","completePartialFetchingRoutes","failPartialFetchingRoutes","startAddingRoute","completeAddingRoute","routeInformation","failAddingRoute","startEditingRoute","completeEditingRoute","failEditingRoute","startRemovingRoute","completeRemovingRoute","failRemovingRoute","startRemovingRoutes","completeRemovingRoutes","failRemovingRoutes","selectRoute","selectAllRoutes","deselectRoute","deselectAllRoutes","startCopyRoute","completeCopyRoute","failCopyRoute","showRouteInMap","showAllRoutesInMap","hideRouteInMap","hideAllRoutesInMap","JOB_FETCH_STARTED","JOB_FETCH_COMPLETED","JOB_FETCH_FAILED","WORKPLANS_VISITS_FETCH_STARTED","WORKPLANS_VISITS_FETCH_COMPLETED","WORKPLANS_VISITS_FETCH_FAILED","WORKPLANS_ALL_VISITS_FETCH_STARTED","WORKPLANS_ALL_VISITS_FETCH_COMPLETED","WORKPLANS_ALL_VISITS_FETCH_FAILED","divisionIds","divisionIdState","getDivision","getDivisionsList","divisionStatus","getDivisionsListByMembership","getDivisionsListBySelectedOrganization","getSelectedDivisions","selectedDivisions","getSelectedDivision","isPartialFetchingListDivisions","isFetchingListDivisions","isAddingDivision","isEditingDivision","isRemovingDivision","getPartialFetchingListDivisionsErrors","getFetchingListDivisionsErrors","getAddingDivisionErrors","getEditingDivisionErrors","getRemovingDivisionErrors","FetchEntities","useUnits","unitsFilters","useSubdivisions","subdivisionsFilters","useMaintenanceLines","maintenanceLinesFilters","useVehicles","vehiclesFilters","useSims","simsFilters","useModules","modulesFilters","useDrivers","driversFilters","useAgents","useServiceClasses","useServiceClassesDropdown","useUsers","useOperators","useDivisions","divisionsFilters","useOrganizations","useContacts","useWorkplans","workplansFilters","useGeofences","geofencesFilters","useSchedules","useForms","useRoutes","routesFilters","useCountries","useLocations","useOffices","officesFilters","useAssets","assetsFilters","useSensors","useJobsBacklog","jobsBacklogFilters","useGroups","groupsFilters","useOrganizationContracts","organizationContractsFilters","useContractTemplates","contractTemplatesFilters","useCustomers","customersFilters","useProtocols","protocolsFilters","useUserNotifications","userNotificationFilters","useDestinations","intervalTime","destinationsFilters","additionalEntities","useDispatch","entitiesSelectors","fetchEntitiesWithFilters","finalEntities","fetchEntities","fetchDivisions","fetchSubdivisions","fetchMaintenanceLines","fetchLocations","fetchOffices","fetchDrivers","fetchWorkplans","fetchGeofences","fetchRoutes","fetchUnits","fetchVehicles","fetchAssets","jobsFilters","allowNullOperatorId","fetchUsers","fetchDestinations","fetchCustomers","fetchGroups","fetchOrganizationContracts","fetchContracTemplates","fetchModules","fetchSims","fetchProtocols","fetchUserNotifications","getRouteExecutionStatusLabel","routeStatus","routeStatusLabel","routeStatusLabelInfo","convertKilometersPerLiterToAuthUserFuelSystem","isDeviceOpenLabel","isDeviceOpen","stopStatus","speedLabel","routeProgressLabel","routeProgress","distanceToCheckpointLabel","distanceToCheckpoint","distanceLabel","fuelConsumption","performanceOnRoute","distanceProgress","completionTypes","globalNotificationFrecs","startTimeWindow","routesEvents","routesTimelineEvents","routesCheckpointsIcons","iconTxt","getRouteStatusColorClass","getMarker","iconId","latLng","L","marker","getIcon","checkpointClassDefaultColor","checkpointTextDefaultColor","divIcon","iconAnchor","popupAnchor","getRouteBounds","latlngPolylines","performanceTemplate","args","performanceUnit","performanceRanges","percentage","translation","valueNodeRef","useRef","marginLeft","VALIDATION_ERROR_TYPES","getValidationErrorIcon","errors","level","getValidationErrorColor","validateDateTimesDiff","firstDate","secondDate","diffInMilliseconds","diffInMillisecondsAsInt","isSame","duplicatedUnitRouteAssignmentValidator","assignedUnitsFromDatabase","commonValues","unitsRoutesAssignmentsFromState","unitsRoutesAssignment","correlative","assignmentTypeNumber","hasAssignmentAtSameHourOrScheduleNextRun","existingAssignments","comparePredicate","AssignmentTypes","ByDate","stepperStartDate","assignmentStartDate","existingAssignment","existingAssignmentStartDate","REACT_APP_MIN_VALID_DIFF_TIME_BETWEEN_UNITS_ROUTES_ASSIGNMENT","stepperNextRunDate","nextRunDate","existingAssignmentNextRunDate","unitRoutAssignmentNextRunDate","scheduleNextRunDate","unitRouteAssignment","getRouteInformationFormat","speedLimitFormat","getRouteUnitFormat","realDistanceLabel","realDistance","calculatedDistanceLabel","calculatedDistance","effectivenessLabel","effectiveness","getRoutesRouteInformationFormat","fuelConsumptionLabel","getRouteExecutionInformationFormat","durationLabel","completionDate","cancelDate","transitDurationLabel","transitDate","ENTITIES_FETCH_STARTED","ENTITIES_FETCH_COMPLETED","ENTITIES_FETCH_FAILED","ENTITIES_RESET_IS_FETCHED","ENTITIES_UPDATE_STARTED","ENTITIES_UPDATE_COMPLETED","ENTITIES_UPDATE_FAILED","CheckboxInput","UUIDv4","classNameCustom","inline","checked","subdivisionIds","subdivisionIdState","getSubdivision","getSubdivisionsList","subdivisionStatus","getSubdivisionsListByMembership","getSubdivisionsListBySelectedDivision","getSelectedSubdivisions","selectedSubdivisions","getSelectedSubdivision","isPartialFetchingListSubdivisions","isFetchingListSubdivisions","isAddingSubdivision","isEditingSubdivision","isRemovingSubdivision","getPartialFetchingListSubdivisionsErrors","getFetchingListSubdivisionsErrors","getAddingSubdivisionErrors","getEditingSubdivisionErrors","getRemovingSubdivisionErrors","viewWorkplanModule","assignWorkplan","searchWorkplans","viewPlansIndicator","viewLocationsIndicator","viewVisitsIndicator","viewExecutionIndicator","viewArrivalEffectivnessGraph","viewPermanenceEffectivenessGraph","viewLocationsUnitsEffectivenessGraph","changeUnit","finalizeWorkplanAssignment","viewWorkplanMonitor","cancelWorkplanAssignment","viewWorkplanReport","deleteWorkplan","viewWorkplanCatalog","scheduledWorkplanList","scheduledWorkplanEdit","scheduledWorkplanDelete","loginextConfiguration","Toolbar","buttons","child","startFetchingMonitoringUsers","completeFetchingMonitoringUsers","failFetchingMonitoringUsers","startFetchingMonitoringUser","completeFetchingMonitoringUser","failFetchingMonitoringUser","startPartialFetchingMonitoringUsers","completePartialFetchingMonitoringUsers","failPartialFetchingMonitoringUsers","startAddingMonitoringUser","completeAddingMonitoringUser","failAddingMonitoringUser","startEditingMonitoringUser","completeEditingMonitoringUser","failEditingMonitoringUser","startRemovingMonitoringUser","completeRemovingMonitoringUser","failRemovingMonitoringUser","deselectAllMonitoringUsers","monitoringUserIds","startUpdatingMonitoringUserPassword","completeUpdatingMonitoringUserPassword","failUpdatingMonitoringUserPassword","startSavingMonitoringUserRolesAndPermissions","completeSavingMonitoringUserRolesAndPermissions","startAssigningScheduleUsers","completeAssigningScheduleUsers","completeUnassigningScheduleUsers","startUnassigningScheduleUsers","jobTitle","getJobsReportByUserListService","startFetchingAgents","completeFetchingAgents","failFetchingAgents","startPartialFetchingAgents","completePartialFetchingAgents","failPartialFetchingAgents","startFetchingAgent","completeFetchingAgent","failFetchingAgent","startAddingAgent","completeAddingAgent","failAddingAgent","startEditingAgent","completeEditingAgent","failEditingAgent","startRemovingAgent","completeRemovingAgent","failRemovingAgent","selectAgent","deselectAgent","startFetchingOperators","completeFetchingOperators","failFetchingOperators","startPartialFetchingOperators","completePartialFetchingOperators","failPartialFetchingOperators","startAddingOperator","completeAddingOperator","failAddingOperator","startEditingOperator","completeEditingOperator","failEditingOperator","startEditingOperatorStandardPrices","completeEditingOperatorStandardPrices","startRemovingOperator","completeRemovingOperator","failRemovingOperator","selectOperator","deselectOperator","mileageReport","hourMetersReport","runningTimeReport","unitActivity","byUnitStopSummaryReport","byUnitScriptsHistoryReport","consolidatedStopSummaryReport","consolidatedOpportunityOfCharge","consolidatedUnitActivityReport","consolidatedEventActivityReport","parkedGeofenceReport","fuelSensorReport","scheduledReports","scheduledReportsCreate","scheduledReportsEdit","scheduledReportsDelete","systemCommunicationsDiagReport","systemNotificationsReport","accommodationChargesReport","administrativeReports","byUnitReports","consolidatedReports","listReports","deepSearch","consumptionAPIReport","readWebEvents","markReadedWebEvents","consolidatedSummary","readAPICost","systemUserHistory","routesReport","unitsById","routesById","isFetchingReport","errorFetchingReport","routesAssignments","routeIdState","isCopying","errorCopying","routesPersistConfig","getRoute","routeSelectorsCheckpoints","getRoutesList","getRoutesListByMembership","isPartialFetchingListRoutes","isFetchingListRoutes","isAddingRoute","isEditingRoute","routesSelectorsExecutions","isFetchingListRouteCheckpoints","deleteRoute","assignRoute","deleteRouteAssignment","completeRouteAssignment","finalizeRouteAssignment","cancelRouteAssignment","viewDestinationIndicator","viewRouteCatalog","searchRoutes","viewRouteMonitor","viewRouteReport","viewExtraFieldsInRouteAssignment","changeCompletionType","shareRouteAssignment","routeETAMonitor","startFetchingEntities","startFetchingEntitiesAfterLogin","completeFetchingEntities","failFetchingEntities","resetIsFetchedEntities","startUpdatingEntities","completeUpdatingEntities","failUpdatingEntities","startFetchingDrivers","completeFetchingDrivers","failFetchingDrivers","startPartialFetchingDrivers","completePartialFetchingDrivers","failPartialFetchingDrivers","startAddingDriver","completeAddingDriver","failAddingDriver","startEditingDriver","completeEditingDriver","failEditingDriver","startRemovingDriver","completeRemovingDriver","failRemovingDriver","selectDriver","deselectAllDrivers","driverIds","completeMassiveDriversAssignment","errorMassiveDriversAssignment","completeImportDriver","startDriverAssignSensor","completeDriverAssignSensor","startDriverUnassignSensor","completeDriverUnassignSensor","startFetchingModules","completeFetchingModules","failFetchingModules","startPartialFetchingModules","completePartialFetchingModules","failPartialFetchingModules","startFetchingModule","completeFetchingModule","failFetchingModule","startAddingModule","completeAddingModule","failAddingModule","startEditingModule","completeEditingModule","failEditingModule","startRemovingModule","completeRemovingModule","failRemovingModule","deselectModule","deselectAllModules","moduleIds","JOBS_REPORT_FETCH_STARTED","JOBS_REPORT_FETCH_COMPLETED","JOBS_REPORT_FETCH_FAILED","ROUTES_REPORT_FETCH_STARTED","ROUTES_REPORT_FETCH_COMPLETED","ROUTES_REPORT_FETCH_FAILED","WORKPLANS_REPORT_FETCH_STARTED","WORKPLANS_REPORT_FETCH_COMPLETED","WORKPLANS_REPORT_FETCH_FAILED","startFetchingServiceClasses","completeFetchingServiceClasses","failFetchingServiceClasses","startPartialFetchingServiceClasses","completeFetchingServiceClass","failFetchingServiceClass","startAddingServiceClass","completeAddingServiceClass","failAddingServiceClass","startEditingServiceClass","completeEditingServiceClass","failEditingServiceClass","startRemovingServiceClass","completeRemovingServiceClass","failRemovingServiceClass","selectServiceClass","deselectAllServiceClasses","serviceClassIds","startFetchingOffices","completeFetchingOffices","failFetchingOffices","startPartialFetchingOffices","completePartialFetchingOffices","failPartialFetchingOffices","startAddingOffice","completeAddingOffice","failAddingOffice","startEditingOffice","completeEditingOffice","failEditingOffice","startRemovingOffice","completeRemovingOffice","failRemovingOffice","selectOffice","deselectOffice","startFetchingAssets","completeFetchingAssets","failFetchingAssets","startPartialFetchingAssets","completePartialFetchingAssets","failPartialFetchingAssets","startAddingAsset","completeAddingAsset","failAddingAsset","startEditingAsset","completeEditingAsset","failEditingAsset","startRemovingAsset","completeRemovingAsset","failRemovingAsset","selectAsset","deselectAsset","startCheckingSecuritySealCode","completeCheckingSecuritySealCode","startFetchingContractTemplates","completeFetchingContractTemplates","failFetchingContractTemplates","startPartialFetchingContractTemplates","completePartialFetchingContractTemplates","failPartialFetchingContractTemplates","startAddingContractTemplate","completeAddingContractTemplate","failAddingContractTemplate","startEditingContractTemplate","completeEditingContractTemplate","failEditingContractTemplate","startRemovingContractTemplate","completeRemovingContractTemplate","failRemovingContractTemplate","selectContractTemplate","deselectAllContractTemplates","templateIds","startFetchingCustomers","completeFetchingCustomers","failFetchingCustomers","startPartialFetchingCustomers","completePartialFetchingCustomers","failPartialFetchingCustomers","startAddingCustomer","completeAddingCustomer","failAddingCustomer","startEditingCustomer","completeEditingCustomer","failEditingCustomer","startRemovingCustomer","completeRemovingCustomer","failRemovingCustomer","selectCustomer","deselectCustomer","startFetchingDivisions","completeFetchingDivisions","failFetchingDivisions","startPartialFetchingDivisions","completePartialFetchingDivisions","failPartialFetchingDivisions","startAddingDivision","completeAddingDivision","failAddingDivision","startEditingDivision","completeEditingDivision","failEditingDivision","startRemovingDivision","completeRemovingDivision","failRemovingDivision","selectDivision","deselectDivision","startFetchingSubdivisions","completeFetchingSubdivisions","failFetchingSubdivisions","startPartialFetchingSubdivisions","completePartialFetchingSubdivisions","failPartialFetchingSubdivisions","startAddingSubdivision","completeAddingSubdivision","failAddingSubdivision","startEditingSubdivision","completeEditingSubdivision","failEditingSubdivision","startRemovingSubdivision","completeRemovingSubdivision","failRemovingSubdivision","selectSubdivision","deselectSubdivision","startFetchingOrganizationContracts","completeFetchingOrganizationContracts","failFetchingOrganizationContracts","startPartialFetchingOrganizationContracts","completePartialFetchingOrganizationContracts","failPartialFetchingOrganizationContracts","startAddingOrganizationContract","completeAddingOrganizationContract","failAddingOrganizationContract","startEditingOrganizationContract","completeEditingOrganizationContract","failEditingOrganizationContract","startRemovingOrganizationContract","completeRemovingOrganizationContract","failRemovingOrganizationContract","selectOrganizationContract","deselectAllOrganizationContracts","contractIds","startFetchingSensors","completeFetchingSensors","failFetchingSensors","startPartialFetchingSensors","completePartialFetchingSensors","failPartialFetchingSensors","startAddingSensor","completeAddingSensor","failAddingSensor","startEditingSensor","completeEditingSensor","failEditingSensor","startRemovingSensor","completeRemovingSensor","failRemovingSensor","selectSensor","deselectSensor","sensorCalibrationStartStarted","sensorCalibrationStartCompleted","sensorCalibrationStartFail","sensorCalibrationFinalizeStarted","sensorCalibrationFinalizeCompleted","sensorCalibrationFinalizeFail","startFetchingSims","completeFetchingSims","failFetchingSims","startFetchingSim","completeFetchingSim","failFetchingSim","startPartialFetchingSims","completePartialFetchingSims","failPartialFetchingSims","startAddingSim","completeAddingSim","failAddingSim","startEditingSim","completeEditingSim","failEditingSim","startRemovingSim","completeRemovingSim","failRemovingSim","deselectSim","operatorIds","operatorIdState","isEditingStandardPrices","errorEditingStandardPrices","getOperator","getOperatorsList","operatorStatus","getSelectedOperator","selectedOperators","isEditingOperatorStandardPrices","startFetchingVehicles","completeFetchingVehicles","failFetchingVehicles","startPartialFetchingVehicles","completePartialFetchingVehicles","failPartialFetchingVehicles","startAddingVehicle","completeAddingVehicle","failAddingVehicle","startEditingVehicle","completeEditingVehicle","failEditingVehicle","startRemovingVehicle","completeRemovingVehicle","failRemovingVehicle","selectVehicle","deselectVehicle","ROUTE_CHECKPOINTS_FETCH_STARTED","ROUTE_CHECKPOINTS_FETCH_COMPLETED","ROUTE_CHECKPOINTS_FETCH_FAILED","ROUTE_CHECKPOINTS_CLEAR","timeInSeconds","minute","VEHICLE_MAKERS_FETCH_STARTED","VEHICLE_MAKERS_FETCH_COMPLETED","VEHICLE_MAKERS_FETCH_FAILED","VEHICLE_MODELS_FETCH_STARTED","VEHICLE_MODELS_FETCH_COMPLETED","VEHICLE_MODELS_FETCH_FAILED","INSURANCE_COMPANIES_FETCH_STARTED","INSURANCE_COMPANIES_FETCH_COMPLETED","INSURANCE_COMPANIES_FETCH_FAILED","INSURANCE_AGENTS_FETCH_STARTED","INSURANCE_AGENTS_FETCH_COMPLETED","INSURANCE_AGENTS_FETCH_FAILED","HANDLE_SEARCH_QUERY","GET_BOOKMARKS_FETCH_STARTED","GET_BOOKMARKS_FETCH_COMPLETED","GET_BOOKMARKS_FETCH_FAILED","UPDATE_BOOKMARKED_STARTED","UPDATE_BOOKMARKED_COMPLETED","UPDATE_BOOKMARKED_FAILED","Avatar","forwardRef","imgClassName","initials","badgeUp","badgeColor","badgeText","Tag","tag","contentStyles","rest","classnames","str","results","getInitials","pill","originalContactId","contactIdState","isFetching","errorFetching","getContact","getContactsList","getSelectedContact","selectedContacts","isFetchingListContacts","isEditingContact","isAddingContact","startFetchingMaintenanceLines","completeFetchingMaintenanceLines","failFetchingMaintenanceLines","startPartialFetchingMaintenanceLines","completePartialFetchingMaintenanceLines","failPartialFetchingMaintenanceLines","startAddingMaintenanceLine","completeAddingMaintenanceLine","failAddingMaintenanceLine","startEditingMaintenanceLine","completeEditingMaintenanceLine","failEditingMaintenanceLine","startRemovingMaintenanceLine","completeRemovingMaintenanceLine","failRemovingMaintenanceLine","startCopyMaintenanceLine","completeCopyMaintenanceLine","failCopyMaintenanceLine","selectMaintenanceLine","deselectMaintenanceLine","BRANDS_FETCH_STARTED","BRANDS_FETCH_COMPLETED","BRANDS_FETCH_FAILED","DateInput","maxDate","minDate","isRange","defaultHour","defaultMinute","additionalTimeProps","startRef","startButtonRef","endRef","endButtonRef","prevValue","setPrevValue","prevValueRange","setPrevValueRange","cursor","current","flatpickr","open","Spanish","english","mode","selectedDates","startOf","endOf","onClose","CONFIGURATIONS_FETCH_STARTED","CONFIGURATIONS_FETCH_COMPLETED","CONFIGURATIONS_FETCH_FAILED","MODELS_FETCH_STARTED","MODELS_FETCH_COMPLETED","MODELS_FETCH_FAILED","PROVIDERS_FETCH_STARTED","PROVIDERS_FETCH_COMPLETED","PROVIDERS_FETCH_FAILED","Table","TableComponent","version","enablePersistence","omitPersistenceKeys","enableVirtualization","rerender","selectAll","deselectAll","initialFilterColumns","sortSettings","actionSave","onDrop","onDeselect","changeSelected","rerenderSelected","allowSorting","allowRowDragAndDrop","allowPaging","pageSize","allowResizing","allowReordering","allowFiltering","allowMultipleSelection","sortedColumn","frozenColumns","initialSelectedRowIndex","persistSelectIndexes","toolbarOptions","allowExcelExport","toolbarClick","setTableRef","allowGrouping","groupSettings","usingAdvancedFilters","changeState","show","setShow","setLocale","stateRef","changeKey","setTooltip","tableColumns","setTableColumns","selectedRowIndexes","setSelectedRowIndexes","scrollLeft","setScrollLeft","intlContext","useContext","IntlContext","dataTable","dataRowTableId","currentLocale","setCulture","notFoundMessage","L10n","load","grid","EmptyRecord","savedVersion","headerModule","autoFitColumns","sortedColumnIndex","direction","reset","useDeepCompareEffect","getFilteredRecords","selectRowsByRange","selectedRows","getElementById","clearSelection","compareDeps","col","hide","selectRows","scrollModule","refresh","toolbar","allowEditing","t","beforeRender","arg","idColumnTooltip","indexColumnTooltip","getAttribute","parentElement","tooltipColumn","childElementCount","classList","contains","cssClass","tooltipText","showColumnChooser","cellSave","rowData","rowDrop","dataSource","assign","gridLines","rowSelected","rowIndexes","rowDeselected","deselect","pageSettings","currentPage","filterSettings","resizeSettings","selectionSettings","enableSimpleMultiRowSelection","selectedRowIndex","dataBound","editSettings","allowAdding","allowDeleting","noRecordsTemplate","stackedColumn","j","autoFit","stackedStackedColumn","isPrimaryKey","editType","editTemplate","headerTemplate","formatColumn","displayAsCheckBox","template","hasTooltip","freeze","edit","textAlign","valueAccessor","tooltipTemplate","aggregateType","customAggregate","customAggregateFn","footerTemplate","aggregateText","Count","services","Resize","Filter","Sort","Page","Search","Freeze","Reorder","Aggregate","Edit","RowDD","VirtualScroll","ExcelExport","ColumnChooser","Group","officeIds","officeIdState","getOffice","averageCapacityFormat","averageCapacity","minCapacityFormat","minCapacity","maxCapacityFormat","maxCapacity","getOfficesList","officeStatus","getOfficesListByMembership","getNotAssignedOfficesListByCustomer","getSelectedOffice","selectedOffices","isPartialFetchingListOffices","isFetchingListOffices","startFetchingProtocols","completeFetchingProtocols","failFetchingProtocols","patload","startPartialFetchingProtocols","completePartialFetchingProtocols","failPartialFetchingProtocols","startAddingProtocol","completeAddingProtocol","failAddingProtocol","startEditingProtocol","completeEditingProtocol","failEditingProtocol","startRemovingProtocol","completeRemovingProtocol","failRemovingProtocol","selectProtocol","deselectAllProtocols","protocolIds","startFetchingNotices","completeFetchingNotices","failFetchingNotices","startAddingNotice","completeAddingNotice","failAddingNotice","startEditingNotice","completeEditingNotice","failEditingNotice","oldNotice","startRenewNotice","completeRenewNotice","failRenewNotice","startRemovingNotice","completeRemovingNotice","failRemovingNotice","trackingUnitsList","trackingUnitsCreate","trackingUnitsEdit","trackingUnitsDelete","viewUnitMap","lastCommunicationDate","downtime","readDowntimeReasons","addDowntimeReasons","editDowntimeReasons","removeDowntimeReasons","changeToInactive","changeToPlaced","changeToActivated","changeToRemoved","changeToCanceled","cellularProvider","viewUnitSpecialFunctions","addUnitSpecialFunctions","editUnitSpecialFunctions","deleteUnitSpecialFunctions","TimeInput","minTime","inFormat","defaultDate","noCalendar","time_24hr","dateValue","useScript","url","script","$","async","appendChild","getRectBoundsFromLatLng","radius","dy","dx","cos","PI","minLatitude","minLongitude","maxLatitude","maxLongitude","getIsInnerGeoreferenceFromLatLng","unitPositions","matches","unitPosition","matchStatus","getRectangleFromLatLng","getTriangleFromLatLng","searchLocation","listLocations","importLocation","listPrivateOrganizationLocations","listLocationsOnMap","searchLocations","searchExternalLocations","paths","maintenanceLineList","addWorkshopOrders","typesLocations","workplanExecutionLocationIdState","locationSelectors","boundsCustomColor","getPropertyValue","locationVisitStatus","locationClassDefaultColor","jobStatusLabel","sequenceComplianceLabel","validSequence","locationVisitStatusLabel","getLocationsListByVisit","getAddingLocationErrors","getEditingLocationErrors","getRemovingLocationErrors","startFetchingAssignments","completeFetchingAssignmentsWithSchedule","completeFetchingAssignmentsWithDateTime","failFetchingAssignments","completeRemovingAssignmentWithSchedule","completeRemovingAssignmentWithDateTime","failRemovingAssignment","completeEditingAssignmentWithSchedule","failEditingAssignmentWithSchedule","completeEditingAssignmentWithDateTime","failEditingAssignmentWithDateTime","defaultOptions","colSize","showAllOperator","showAllOrganization","showAllAgent","showAllDivision","showAllSubdivision","showAllGroup","useUserOperator","useUserOrganization","useUserAgent","useUserDivision","useUserSubdivision","useUserGroup","setUserOperator","setUserOrganization","setUserAgent","setUserDivision","setUserSubdivision","setUserGroup","useAgent","useGroup","isOperatorDisabled","isOrganizationDisabled","isAgentDisabled","isDivisionDisabled","isSubdivisionDisabled","isGroupDisabled","Dropdowns","shouldUnregister","newMembership","membershipDefaultValue","membershipOptions","useController","operatorField","operatorFieldState","organizationField","organizationFieldState","divisionField","divisionFieldState","subdivisionField","subdivisionFieldState","groupField","groupFieldState","operatorsList","organizationsList","divisionsList","filterOrganization","subdivisionsList","agentsList","agentsSelectors","groupList","finalOnChange","Col","subdivisionPlaceholder","Membership","showDropdowns","isInitialize","setIsInitialize","setMembershipDefaultValue","setMembershipOptions","updateOptions","membershipAccessLevel","AuthSelectors","updateUserMembership","userMembership","updateModel","useMembership","Spinner","SwitchInput","onAfterChange","MultiValue","MultiValueLabel","alignItems","justifyContent","badge","IconMultipleValue","identifierIcon","MultiSelectInput","canCreate","underText","innerOptions","setOptions","op","renderToString","multiValue","SelectComponent","CreatableSelect","Select","isMulti","selectedOptions","onCreate","isValidNewOption","currentValue","formatCreateLabel","inputValueNormalized","underIcon","iconAction","iconDisabled","iconTooltip","iconStyle","successColor","warningColor","dangerColor","infoColor","getJobDescriptionTemplate","jobDescription","ReactHtmlParser","getJobPriorityColor","priority","getJobPriorityTemplate","priorityColor","getJobTypeIcon","jobBacklogTypeId","jobTypesList","jobTypeId","getJobTypeTemplate","center","getJobRequesterTemplate","requesterUserName","requestUserImageUrl","requesterCompleteName","getJobRequesterInfoTemplate","getUsersText","getJobUsersRowTemplate","userSplit","idx","completeName","getJobNotificationEmailsTemplate","nemail","getJobUsersInfoTemplate","getJobFormsInfoTemplate","formSplit","formResponsesCount","getJobFilesInfoTemplate","md","fileSplit","file","fileName","fileUrl","fileExtension","getTotalEstimatedTimeTemplate","estimatedDurationText","getTotalExecutionTimeTemplate","totalExecutionIsOnTime","totalExecutionTime","estimatedDuration","totalExecutionTimeColor","totalExecutionTimeText","getJobStatusColor","colorsJobStatus","getJobStatusColorClass","getJobStatusIcon","getJobStatusTemplate","jobStatusText","cardJobTemplate","startDateFormat","dueDateFormat","getJobStatusTitleColumnsTemplate","count","intlTasks","getJobStatusText","today","getJobLocationTemplate","onJobLocationCheck","getJobLocationInfoTemplate","mapLocationsOptions","hideMarkersByZoom","clusterMarkers","showLocations","setMapPositionToLocationBounds","useRectangleBounds","useSlidingpanelLocationInformation","locationClassIconName","rulerControlOptions","useControl","followingJobsSuccessChangeStatus","propertyChange","successJobs","flush","minsToDurationTimeText","mins","secondsInAHour","timeArray","convertHtmlToText","tempDivElement","innerText","customerIds","customerIdState","getCustomer","getCustomersList","customerStatus","getCustomersListByMembership","getNotAssignedCustomersList","getSelectedCustomer","selectedCustomers","isPartialFetchingListCustomers","isFetchingListCustomers","listGeofencesOnMap","listGeofences","listAsignedGeofences","asignGeofenceToUnit","unasignGeofenceToUnit","getLocationClass","getLocationClassIconName","lc","getLocationClassesList","isFetchingListLocationClasses","haveLocationClassesBeenFetched","ETAMONITORING_DESTINATIONS_FETCH_STARTED","ETAMONITORING_DESTINATIONS_FETCH_COMPLETED","ETAMONITORING_DESTINATIONS_FETCH_FAILED","DefaultSimpleButton","usersToAdd","isInGroup","locationsCount","workPlansCount","userCount","unitCount","geofenceCount","driverCount","entitiesToAdd","userImage","workPlanName","notifyAdmin","notifyOwner","shape","notifyEmails","driverPhoto","licenseNumber","licenseType","licenseExpireDate","entityId","groupIdState","isFetchingAllEntities","isLeaving","errorFetchingAllEntities","errorLeaving","isFetchingGroup","errorFetchingGroup","groupsPersistedConfig","getGroup","getGroupsList","groupStatus","getUnfilteredSelectedGroup","getAllGroupsList","getSelectedGroup","selectedGroups","isPartialFetchingListGroups","isFetchingListGroups","isFetchingGroupById","configurationId","getConfigurationsList","getConfiguration","startFetchingCategories","completeFetchingCategories","failFetchingCategories","startAddingCategory","completeAddingCategory","failAddingCategory","startEditingCategory","completeEditingCategory","failEditingCategory","oldCategory","startRemovingCategory","completeRemovingCategory","failRemovingCategory","completeFetchingRoutesExecutions","failFetchingRoutesExecutions","startEditRouteExecution","completeEditRouteExecution","failEditRouteExecution","completeChangeToAlternateRoute","failChangeToAlternateRoute","completeAssignUnitRoutesExecutions","failAssignUnitRoutesExecutions","DeleteButton","tooltipLabel","TitleH4","textId","textTransform","driverIdState","isImportingDriversAndUnitsList","importDriversAndUnits","isAssigningDrivers","driversPersistedConfig","getDriver","getDriversList","driverStatus","getDriversListByMembership","getDriverByPrivateCode","getDriverByPrivateCodeByMembership","getSelectedDriver","selectedDrivers","getDriverByIdOrPrivateCode","isPartialFetchingListDrivers","isFetchingListDrivers","logo","REACT_APP_FLAVOR","default","LocationsDropdownInput","byLocationClassId","useGoogleLocations","createFromGoogleLocations","useLabel","notAssigned","initialLocationType","showOrganization","setGooglePlaceId","isOpenSlidingPane","setIsOpenSlidingPane","editingLocation","setEditingLocation","locationType","setLocationType","locationByPlaceId","resetValue","setResetValue","locationsPermissions","closeSlidingPane","enableDispatch","dispatchNotificationFreq","dispatchEmails","dispatchCompletionType","locationTypeId","agentIds","agentIdState","getAgent","getAgentsList","agentStatus","getAgentsListByMembership","getSelectedAgent","selectedAgents","isFetchingListAgents","SwiperCore","Navigation","Pagination","EffectFade","EffectCube","EffectCoverflow","Autoplay","Lazy","Virtual","Thumbs","defaultGalleryParams","effect","spaceBetween","initialSlide","centeredSlides","autoplay","disableOnInteraction","pauseOnMouseEnter","reverseDirection","loop","navigation","pagination","clickable","MediaGallery","isRtl","classNameImg","onSlideChange","useThumbs","classNameThumbs","heightThumbs","lightboxIndex","setLightboxIndex","isLightboxOpen","setIsLightboxOpen","thumbsSwiper","paramsThumbsDefault","slidesPerView","freeMode","watchSlidesVisibility","watchSlidesProgress","onSwiper","galleryOptions","thumbs","swiper","dir","activeIndex","fullImageUrl","imageId","discourageDownloads","reactModalStyle","overlay","imageTitle","imageCaption","imageDescription","mainSrc","nextSrc","prevSrc","onCloseRequest","onMovePrevRequest","onMoveNextRequest","imagesPath","activeSlideId","listFleet","deviceAction1","deviceAction2","deviceAction3","deviceAction4","deviceAction5","deviceAction6","deviceAction8","deviceAction9","deviceAction11","deviceAction12","deviceAction13","deviceAction20","deviceAction21","deviceAction22","deviceAction23","deviceAction30","deviceAction31","deviceAction32","deviceAction33","deviceAction34","deviceAction35","deviceAction36","deviceAction50","deviceAction51","deviceAction52","deviceAction53","deviceAction54","deviceAction55","deviceAction56","deviceAction57","deviceAction60","deviceAction61","deviceAction70","deviceAction71","deviceAction80","deviceAction81","deviceAction90","deviceAction91","deviceAction92","deviceAction93","deviceAction100","deviceAction1000","deviceAction1001","deviceAction1002","deviceAction1003","deviceAction1004","deviceAction1005","deviceAction1006","deviceAction1007","deviceAction1008","deviceAction1009","deviceAction1010","deviceAction1011","deviceAction1200","sendScripts","addTicket","consolidatedReport","recordMultiple","startFetchingUserNotifications","completeFetchingUserNotifications","failFetchingUserNotifications","startPartialFetchingUserNotifications","completePartialFetchingUserNotifications","failPartialFetchingUserNotifications","startReadingUserNotification","completeReadingUserNotification","notifications","failReadingUserNotification","userNotificationShown","workplansBulkInsert","isNew","temperatureCatalog","temperatureStadistics","fuelCatalog","fuelReport","fuelStadistics","tirePressureCatalog","obd2Monitor","telemtryUnits","MapGeofenceEdit","useMap","showGeofence","onGeofenceEdit","usePopovers","isMapFullScreen","zoomMapAfterEdit","zoomMapToGeofence","geofenceGeoJSON","WKBtoGeoJSON","geofenceWktString","feature","coordinates","flyToBounds","toBounds","geoJson","getBounds","wkt","geometry","wkx","Geometry","toGeoJSON","geofenceRef","pm","enableLayerDrag","enable","removeLayerBelowMinVertexCount","draggable","openPopup","Circle","GeoJSON","coordsToLatLng","pathOptions","eventHandlers","click","parseGeoJSON","toWkt","getRadius","layer","Popup","Rectangle","coordsToLatLngs","Polygon","paddingBottomRight","paddingTopLeft","maxZoom","animate","getZoom","MapGeofences","useLeafletContext","useMapEvents","moveend","displayGeofences","isSelectedSomething","setIsSelectedSomething","showGeofences","useIsShownGeofence","selectedGeofenceIds","setMapPositionToGeofenceBounds","useSlidingpanelGeofenceInformation","initialShowSlidingPanelGeofenceInformationOpen","initialGeofenceInformationOpenId","editingGeofenceParent","setEditingGeofenceParent","editingGeofenceParentRef","startClusteringAt","resetMapHome","showGeofenceInformationSlidepanel","setShowGeofenceInformationSlidepanel","initialGeofenceId","setInitialGeofenceId","selectedGeofence","setSelectedGeofence","mainGeofence","geofenceActions","coords","flatten","coordinate","fitBounds","latLngBounds","bound","LatLng","initialGeofenceInformation","WrapperMarkerClusterGroup","Fragment","wrapperProps","MarkerClusterGroup","geofencesBounds","setGeofencesBounds","overlaps","onClickGeofence","zIndexOffset","Tooltip","offset","SlidingpanelGeofenceInformation","closeSlidepanel","isSlidepanelOpen","MapLocationEdit","showLocation","onLocationDragend","zoomMapToLocation","ll","markerRef","preventMarkerRemoval","popupRef","Marker","latlng","getLatLng","MapLocations","displayMarkers","useIsShownLocation","selectedLocationIds","initialShowSlidingPanelLocationInformationOpen","initialLocationInformationOpenId","editingLocationParent","setEditingLocationParent","editingLocationParentRef","selectedLocationInTable","zoomLimitSet","spiderfyProps","showLocationInformationSlidepanel","setShowLocationInformationSlidepanel","initialLocationId","setInitialLocationId","selectedLocation","setSelectedLocation","isStartClusteringAtSet","setIsStartClusteringAtSet","loc","initialLocationInformation","markersComponents","setMarkersComponents","newMarkers","riseOnHover","locationClassContent","permanent","Media","spiderfyActivated","setSpiderfyActivated","disableClusteringAtZoom","spiderfyOnMaxZoom","spiderfyState","SlidingpanelLocationInformation","MapObjectsBounds","setMapPositionToUnitBounds","setMapPositionToUnitPositionsBounds","setMapPositionToRouteBounds","rerenderMapObjectBounds","s","zoomMapToObjects","encode","factor","output","fromCharCode","flipped","reverse","decode","precision","latitude_change","lat","lng","byte","pow","charCodeAt","fromGeoJSON","geojson","Routing","Google","Class","extend","initialize","travelMode","google","maps","TravelMode","DRIVING","unitSystem","UnitSystem","METRIC","provideRouteAlternatives","directionsService","DirectionsService","Util","_flatten","arrs","concat","_decodePolyline","latlngs","_maneuverToInstructionType","maneuver","waypoints","callback","context","that","directions","geometryOnly","origin","destination","waypoint","stopover","DirectionsStatus","OK","iroute","summary","totalDistance","legs","leg","steps","previousValue","totalTime","indices","indicesSecondary","waypointIndices","nWaypoint","stepsPoints","points","via_waypoints","si","via_waypoint","step_index","sp","step_interpolation","inputWaypoints","actualWaypoints","instructions","exit","RouteItem","formValues","createdLocations","addCheckpoint","editCheckpoint","editPath","deleteCheckpoint","addNewMarkerOnMap","addGoogleLocationToCheckpoint","addLocationToCheckpoint","deleteLocationOfCheckpoint","mouseEnter","setMouseEnter","tooltipAddOpen","setTooltipAddOpen","tooltipEditOpen","setTooltipEditOpen","tooltipEditOpen2","setTooltipEditOpen2","tooltipEditSegmentOpen","setTooltipEditSegmentOpen","dropDownLocations","checkpointName","ListGroupItem","onMouseEnter","onMouseLeave","Row","onSelectChangeLocationType","InputGroupText","inputs","initialTab","hasButtonSubmit","hasButtonCancel","SlidingPaneAddAlternateRoute","isGeneratingRoute","alternateRoutes","setAlternateRoutes","useForm","handleSubmit","watch","rerenderMap","setRerenderMap","showOriginalRoute","setShowOriginalRoute","showAlternateRoute","setShowAlternateRoute","selectedRoute","routeSelectors","alternateRoute","routesOnMap","pathColor","routeCheckpointsActions","overlayClassName","onRequestClose","Map","mapRoutesOptions","showRoutes","useSlidingPaneRouteInformation","mapObjectsBoundsOptions","ar","Button","SlidingPaneEditRoute","subtitle","closeSlidingPaneForm","distanceRoute","setCheckpoints","selectedTab","setSelectedTab","isOpenSlidingPaneAddAlternateRoute","setSlidingPaneAddAlternateRoute","errorsKeys","isSaving","TabsWrapper","initialActiveTab","activeTab","setActiveTab","tabIndex","useCardContent","tabs","tabId","tabsContent","component","WebtrackCustomInput","FormGroup","Label","setList","AddButton","getLatLngs","getNullIfNaN","converted","useMapRouteEdit","routePaths","setEditingRouteParent","formState","isGeneratingRouteRef","React","useCenterRoute","isStartingEdit","setIsStartingEdit","setDistanceRoute","counterGenerateRouteRef","checkpointsRef","setPaths","pathsRef","drawingRouteCheckpoint","setDrawingRouteCheckpoint","drawingRouteCheckpointRef","setCreatedLocations","createdLocationsRef","isOpenSlidingPaneEditRoute","setOpenSlidingPaneEditRoute","widthSlidingPaneEditRoute","setWidthSlidingPaneEditRoute","isOpenSlidingPaneForm","setOpenSlidingPaneForm","slidingPaneEditRoutesProps","setSlidingPaneEditRouteProps","slidingPaneFormProps","setSlidingPaneFormProps","slidingPaneFormPropsRef","editingRoute","setEditingRoute","editingRouteRef","copyPolylineLatLngs","setCopyPolylineLatLngs","copyPolylineLatLngsRef","alternateRoutesRef","useGetAlternateRoutes","deleteObjectsOnMap","newLocations","checkpoint","uuidv4","addTo","on","DomEvent","stopPropagation","secondsSegmentStopTime","segmentStopAuthorized","segmentWithoutStopTime","segmentStopTime","secondsSegmentTripMinTime","segmentTripMinTime","secondsSegmentTripMaxTime","segmentTripMaxTime","lastCheckpointsRef","element","updateMarkersOnMap","updatePathsOnMap","centerRoute","geocodeByLatLng","routePlace","formatted_address","radiusFormat","convertMetersToAuthUserDistance2System","addCreatedLocationToCheckpoint","catch","removeLayer","rectangle","chkpt","checkpointsWithLatLng","router","OSRMv1","serviceUrl","simplify","point","segmentDistance","updateDistances","getBoundsZoom","completionTimeByUser","abbreviation","defaultContacts","globalNotificationEmails","globalNotificationFrec","initialFetch","notificationEvents","distances","lastPointLatLngs","routeActions","convertAuthUserSpeedSystemToKilometersPerHour","completionTime","pointDistance","isInteger","stopType","stopMinTime","stopMaxTime","segmentSpeedLimit","inputCheckpoint","setIcon","setBounds","convertAuthUserDistance2SystemToMeters","setLatLngs","latLngs","disable","setStyle","setEditPathInputs","segmentSpeedLimitFormat","segmentDistanceFormat","customTranslation","tooltips","placeMarker","setLang","refreshTooltips","enableDraw","continueDrawing","markerEditable","markerStyle","newLocation","MapRouteEdit","SlidingPaneForm","isInMap","showRoute","createRoute","EditButton","routePermissions","sourceName","targetName","MapRoutes","useIsShownRoute","initialShowSlidingPanelRouteInformationOpen","initialShowSlidingPanelRouteCreateOpen","initialShowSlidingPanelRouteEditOpen","initialRouteInformationOpenId","editingRouteParent","showRouteInformationSlidingPane","setShowRouteInformationSlidingPane","openEditSlidingPane","setOpenEditSlidingPane","initialRouteId","setInitialRouteId","routesBounds","setRoutesBounds","setSelectedRoute","isFetchingCheckpoints","zoomMapToRoutes","intersects","initialRouteInformation","Polyline","SlidingPaneRouteInformation","RulerControl","listenMapControlChanges","container","layerContainer","pmOptions","tooltipTextDraganddelete","tooltipTextResume","tooltipTextAdd","tooltipTextFinish","tooltipTextDelete","tooltipTextMove","measureControlClasses","measureControlLabel","ReactDOMServer","renderToStaticMarkup","clearControlLabel","measureControlTitleOn","measureControlTitleOff","showClearControl","clearControlTitle","showUnitControl","unitControlTitle","metres","landmiles","nauticalmiles","polylineMeasure","addControl","removeControl","ToolbarGeofencesControl","setShowGeofences","newGeofences","setNewGeofencesLayers","newGeofencesLayersRef","isOpenSlidingPaneFormRef","slidingPaneProps","setSlidingPaneProps","slidingPanePropsRef","editingGeofence","setEditingGeofence","editingGeofenceRef","isSatMonitor","REACT_APP_SAT_MONITOR","_shape","initialRadius","editing","bindPopup","customValidation","geofenceAddress","geofenceAddres","setRadius","radioButtons","parentGeofences","subGeofenceWktString","isActivationGeofence","getExtraGeofenceSaveValues","vertexCount","longitude2","latitude2","vertexCsv","geofenceWKT","remove","prevlayers","ImmediateSubAction","Toolbar2","Action","myAction","prototype","addHooks","viewGeofences","toolbarIcon","disableLayerDrag","closePopup","createNewCircleGeofence","createNewRectangleGeofence","createNewPolygonGeofence","cancelGeofence","disableDraw","geofencesOptions","subToolbar","geofencePermissions","GeofencesToolbar","Control","geofencesToolbar","onClickCancelButton","setShowGeofence","ToolbarHomeControl","selectedLayer","layer_id","homeFunction","centerLatLng","getCenter","wrap","homeLayer","setHomeAction","useToolbar","ToolbarLocationsControl","setShowLocations","setNewMarkers","newMarkersRef","editingLocationRef","_icon","setLatLng","createNewLocationAction","locationAddress","prevMarkers","viewLocations","cancelLocation","locationsOptions","locationPermissions","LocationsToolbar","locationsToolbar","SlidingPaneEditLocation","setShowLocation","ToolbarRoutesControl","setShowRoutes","createNewRouteAction","cancelRoute","routesOptions","RoutesToolbar","routesToolbar","ToolbarUnitsControl","showUnits","setShowUnits","setSelectedUnit","createNewUnitAction","cancelUnit","unitsOptions","UnitsToolbar","unitsToolbar","MapsBasic","mapBaseLayersOptions","homeToolbarOptions","locationsToolbarOptions","geofencesToolbarOptions","routesToolbarOptions","unitsToolbarOptions","trajectoryToolbarOptions","mapLocationsOptionsToolbar","mapLocationEditOptions","mapGeofencesOptionsToolbar","mapGeofencesOptions","mapGeofenceEditOptions","mapRoutesOptionsToolbar","mapUnitsOptionsToolbar","mapUnitsOptions","mapUnitsPublicOptions","startRerender","zoom","fetchMapObjects","history","useHistory","setMap","setMapControlChanges","listenMapControlChangesLayers","setMapControlChangesLayers","showTrajectory","setShowTrajectory","activateShowGeofences","setActivateShowGeofences","mapInitialized","setMapInitialized","zoomClusterLimit","setZoomClusterLimit","isClusterLimitSet","setIsClusterLimitSet","setMapBounds","isFetchingLocations","isFetchingGeofences","initialMapCenter","initialZoom","mapPosition","setMapPosition","MQ","mapLocationEditOptionsToolbar","setMapLocationEditOptionsToolbar","mapGeofenceEditOptionsToolbar","setMapGeofenceEditOptionsToolbar","selectedUnit","selectedUnitRef","initialUnitInformationOpenId","fetchMapItemsWithBounds","useCallback","debounce","boundsFilters","handleMapMovement","boundsFilter","getSouthWest","getNorthEast","mapZoomLevel","off","setSpiderfyState","invalidateSize","MapContainer","preferCanvas","whenCreated","leafletMap","MapBaseLayers","useIsShownUnit","MapUnits","useSlidingpanelUnitInformation","MapUnitsPublic","ToolbarUnitTrajectoryControl","mapRouteEditOptions","roleId","userNameState","isUpdatingMonitoringUserPassword","getMonitoringUser","getMonitoringUsersList","userStatus","getMonitoringUsersSpecificList","getSelectedMonitoringUser","selectedMonitoringUsers","isFetchingMonitoringUser","isFetchingListMonitoringUsers","isAddingMonitoringUser","isEditingMonitoringUser","isRemovingMonitoringUser","isChangingMonitoringUserPassword","formIdState","removed","oldSectionIndex","sectionsById","useDropDownRows","sectionToCopy","newRows","newQuestions","isRequired","isPrivate","newQuestionA","newAnswers","oldQuestionIndex","oldQuestion","sectionTypeId","sectionRows","questionTypeId","questionName","selectedAnswer","getForm","getFormSections","getFormSectionsList","section","getFormSection","getFormQuestions","getFormQuestionsList","getFormQuestion","getFormsList","organizationFormStatus","getFormsSpecificList","getFormsListByMembership","getSelectedForm","selectedForms","getSections","getSectionOrder","allowOtherOption","getSection","getSelectedResponseDetails","selectedResponses","isFetchingForm","isFetchingListForms","getDriverInformationService","getDriverImagesService","getSensorsForPeople","importDriversService","listEmailNotification","addEmailNotification","removeEmailNotification","listConsoleNotification","addConsoleNotification","removeConsoleNotification","listWebServiceNotification","addWebServiceNotification","removeWebServiceNotification","listSystemNotification","addSystemNotification","removeSystemNotification","editSystemNotification","completeFetchingAssignments","entitiesByDate","entitiesBySchedule","startEditingAssignment","completeEditingAssignment","failEditingAssignment","startRemovingAssignment","completeRemovingAssignment","completeImportingRouteAssignments","failImportingRouteAssignments","getAvailableUsersForGroup","getAvailableLocationsForGroup","getAvailableWorkplansForGroup","getAvailableUnitsForGroup","getAvailableGeofencesForGroup","getAvailableDriversForGroup","verifyUserExistsAndNotInGroup","pinUserGroupIdService","startFetchingSpareParts","completeFetchingSpareParts","failFetchingSpareParts","startAddingSparePart","completeAddingSparePart","failAddingSparePart","startEditingSparePart","completeEditingSparePart","failEditingSparePart","oldSparePart","startRemovingSparePart","completeRemovingSparePart","failRemovingSparePart","SENSOR_MEASURES_FETCH_STARTED","SENSOR_MEASURES_FETCH_COMPLETED","SENSOR_MEASURES_FETCH_FAILED","SENSOR_MEASURES_CLEAR","getAlternateRoutesService","getRouteService","startFetchingWorkmanships","completeFetchingWorkmanships","failFetchingWorkmanships","startAddingWorkmanship","completeAddingWorkmanship","failAddingWorkmanship","startEditingWorkmanship","completeEditingWorkmanship","failEditingWorkmanship","oldWorkmanship","startRemovingWorkmanship","completeRemovingWorkmanship","failRemovingWorkmanship","startFetchingProviders","completeFetchingProviders","failFetchingProviders","startAddingProvider","completeAddingProvider","failAddingProvider","startEditingProvider","completeEditingProvider","failEditingProvider","oldProvider","startRemovingProvider","completeRemovingProvider","failRemovingProvider","idTable","useTable","heightTable","columnsTable","onSelectTable","onDeselectTable","change","innerControl","innerHandleSubmit","isInnerForm","setIsInnerForm","saving","save","WrapperInput","wrapperInputProps","getConsolidableEvents","getDowntimeReasons","getContactsService","saveLoginextConfigurationService","categoryIdState","getCategoriesList","getCategory","getCategoriesListByMembership","isFetchingListCategories","haveCategoriesBeenFetched","operatorPermissions","operatorList","organizationPermissions","organizationCatalog","divisionPermissions","listDivision","subdivisionPermissions","subdivisionCatalog","serviceClassPermissions","listServiceClass","agentPermissions","agentList","operatorPaths","listOperator","screenId","screens","agentPaths","listAgent","organizationPaths","listOrganization","divisionPaths","subdivisionPaths","listSubdivision","serviceClassPaths","modulePermissions","listModule","modulePaths","simPermissions","listSim","simPaths","sensorPermissions","listSensor","sensorPaths","assetPermissions","assetCatalog","assetPaths","listAsset","vehiclePermissions","listVehicle","vehiclePaths","listShift","listTrigger","listGroup","listDrivers","listPerson","listPeople","listUsers","listCustomers","listCustomer","listContact","listOffices","listOffice","listConsoleNotifications","listEmailNotifications","listWebServiceNotifications","listSystemNotifications","listForms","answersFormReport","answersReportForms","header","affiliations","catalogs","inventories","workplanList","workplanMonitor","workplanReport","scheduledWorkplan","workplanAssignUnit","routeList","routeMonitor","routeReport","routeAssignUnit","viewOptimizations","listOptimization","vehicleFuel","vehicleMaintenance","optimizations","telemetryUnits","telemetryTemperature","telemetryFuelMonitor","telemetryFuelReport","telemetryFuelReportByVehicles","telemetryOBD2","telemetry","dashboard","geofencesAssignedList","consolidatedUnitMainStateReport","reportList","unitPermissions","listTrackingUnits","trackingUnits","pointsOfInterest","contractTemplatesPermissions","listTemplate","contractTemplatesPaths","organizationContractPermissions","listContract","organizationContractPaths","quotationPermissions","listQuotation","quotationPaths","listQuotations","contracts","listJobsBacklog","backlog","jobsImport","import","jobsBoard","board","jobsReport","jobsWorkingActivity","workingActivityReport","safedriver","safeDriver","businessPartnersPaths","editPartner","webServiceRates","businessPartners","listProtocol","createProtocol","deleteProtocol","protocolsList","general","apps","operations","administrations","sidebarOptionsCRM","generalCRM","sidebarOptionsMonitoring","generalMonitoringCenter","sidebarOptionsAdmin","generalAdmin","getOptions","optionNav","link","childrenOptions","LOCATION_CLASSES_FETCH_STARTED","LOCATION_CLASSES_FETCH_COMPLETED","LOCATION_CLASSES_FETCH_FAILED","TIME_ZONES_FETCH_STARTED","TIME_ZONES_FETCH_COMPLETED","TIME_ZONES_FETCH_FAILED","CURRENCIES_FETCH_STARTED","CURRENCIES_FETCH_COMPLETED","CURRENCIES_FETCH_FAILED","SENSOR_BRANDS_FETCH_STARTED","SENSOR_BRANDS_FETCH_COMPLETED","SENSOR_BRANDS_FETCH_FAILED","SENSOR_MODELS_FETCH_STARTED","SENSOR_MODELS_FETCH_COMPLETED","SENSOR_MODELS_FETCH_FAILED","PAYMENT_METHODS_FETCH_STARTED","PAYMENT_METHODS_FETCH_COMPLETED","PAYMENT_METHODS_FETCH_FAILED","workplansAssignments","bySchedule","byDateTime","byScheduleOrder","assignmentIdState","byDateTimeOrder","isFetchingAssignments","errorFetchingAssignments","getWorkplansAssignment","getWorkplansAssignmentsByScheduleListByMembership","getWorkplansAssignmentsByScheduleList","getWorkplansAssignmentsByDateTimeListByMembership","getWorkplansAssignmentsByDateTimeList","isFetchingWorkplansAssignments","uniqueIdentifier","getFuelCalibrationPubSubUrl","sendPubSubFuelCalibrationCommand","ContactsDropdown","extraContacts","contactTypeId","setContactsIn","contactsIn","setNewContact","closeSlidingPaneAddEditContact","prependcomponentFun","appendcomponentFun","defaultJobTitle","changeSelectedContacts","addEditContactSlideOpen","openAddEditContactSlide","newContact","changeNewContact","selectAndEditContact","ContactSelectors","userContactsEmails","useGetOperatorContacts","areFetchingOperatorContacts","isFetchingOperatorContacts","operatorPublicContacts","useGetContacts","organizationPublicContacts","areFetchingOrganizationContacts","formatContactsForDropdown","contactsToShow","userContacts","OrganizationContacts","usedEmails","filteredContacts","addNotIncludedContacts","filterContactByAcces","contactsToAdd","defaultContact","contactToAdd","selectedContact","setSelectedContact","prevContacts","newContactData","string","selectedValues","operatorContact","organizationContact","userContact","isSelectedOnCreate","isEditingFromMulti","onSave","editedContactData","assetIds","assetIdState","validIdentifier","validSecuritySealCode","getAsset","getAssetsList","assetStatus","getAssetListByMembership","getSelectedAsset","selectedAssets","isValidIdentifier","isValidSecuritySealCode","isPartialFetchingListAssets","isFetchingListAssets","startFetchingRouteCheckpoints","completeFetchingRouteCheckpoints","failFetchingRouteCheckpoints","simIds","simIdState","isFetchingSim","getSim","getSimsList","simCardStatus","getSelectedSim","selectedSims","isAddingSim","isEditingSim","isRemovingSim","isFetchingSimById","routeEdit","getCpGeofence","getUnitGeofences","getUnitGeofenceInfo","getAssignments","getUnassignedEntities","CustomersDropdown","appendAddCustomer","enableSelectLocation","customerSelectors","isOpenShiftPane","setOpenShiftPane","selectedCustomer","setSelectedCustomer","id_dropdwon","customerName","closeSlidingPaneAddEditCustomer","sensorIds","calibrationState","sensorIdState","getSensor","getSensorsList","sensorStatus","getSensorsListByMembership","getSelectedSensor","selectedSensors","removeJobBacklog","listAsignedJobsBacklog","asignJobBacklogToUnit","listOwnLocations","addLocations","editLocations","assignLocations","listLocationImages","addLocationImages","removeLocationImages","completeFetchingJobsBoard","failFetchingJobsBoard","completeChangeStatusJobsBoard","failChangeStatusJobsBoard","completeFetchingBookmarks","startFetchingBookmarks","failFetchingBookmarks","updateBookmarkedStarted","updateBookmarkedCompleted","updateBookmarkedFailed","handleSearchQuery","val","startFetchingComments","completeFetchingComments","startAddingComment","startRemovingComment","UnitsDropdown","usePartialMembership","unitTypeId","meta","touched","initial","opt","app","appName","appLogoImage","appLogo","skin","routerTransition","footer","customizer","REACT_APP_CUSTOMIZER","scrollTop","availabilityUserNameService","getRoles","getPermissionGroups","getRolePermissionGroups","getScreens","updateUserStatus","getUsersListByFiltersService","getUserByAutoComplete","vehicleIds","vehicleIdState","getVehicle","getVehiclesList","vehicleStatus","getVehiclesListByMembership","isLicenseValid","getSelectedVehicle","selectedVehicles","isPartialFetchingListVehicles","isFetchingListVehicles","isFetchingExecution","isManualTransitExecution","isChangingExecutionUnit","errorFetchingExecution","errorChangingExecutionUnit","getWorkplansExecution","workplansExecutionsLocations","workplansExecutionsLocationsSelectors","workplansExecutionsGeofences","workGeofenceArea","executionStatusLabel","executionStatusLabelInfo","progress","visited","progressLabel","pending","sequenceCompliance","sequenceCountValid","sequenceCountInvalid","sequenceCountPending","allById","allOrder","isFetchingVisits","isFetchingAllVisits","errorFetchingVisits","errorFetchingAllVisits","workplansReport","locationsById","workplansComments","workplanIdState","isFetchingLocationsList","isAssigningGeofence","errorFetchingLocationsList","errorAssigningGeofence","workplansPersistConfig","getWorkplan","estimatedTotalDistance","hasAutogeneratedGeofence","getWorkplansList","workplanStatus","getWorkplansListByMembership","getSelectedWorkplan","selectedWorkplans","isPartialFetchingListWorkplans","isFetchingListWorkplans","isFetchingLocationsListWorkplans","workplansSelectorsExecutions","denyRequisitionReason","deniedCustomerReason","timesup","quotationIdState","isScheduling","isCheckingSchedule","isSettingTimesup","isApprovingDenyingManagement","getQuotation","getQuotationsSpecificList","getQuotationsList","getSelectedQuotation","selectedQuotations","isPartialFetchingListQuotations","isFetchingListQuotations","isAddingQuotation","isCopyingQuotation","isSchedulingQuotation","isSettingTimesupQuotation","isCheckingScheduleQuotation","serviceClassIdState","getServiceClass","getServiceClasssList","getSelectedServiceClass","selectedServiceClasses","isFetchingListServiceClasses","contractIdState","getOrganizationContract","getOrganizationContractsList","getSelectedOrganizationContract","selectedOrganizationContracts","isPartialFetchingListOrganizationContracts","isFetchingListOrganizationContracts","templateIdState","getContractTemplate","getContractTemplatesList","getSelectedContractTemplate","selectedContractTemplates","isPartialFetchingListContractTemplates","isFetchingListContractTemplates","deleteSchedule","OfficesDropdown","appendAddOffice","isMainOffice","selectedOffice","setSelectedOffice","UncontrolledTooltip","SlidingPaneEditOffice","closeSlidingPaneEditOffice","mapHomeCenter","customerId1","initialLatitude","initialLongitude","initialLocationClassIconName","setLatitude","setLongitude","updateEditingLocation","locationClassesSelectors","closeSlidingPaneFunction","LocationClassesDropdownInput","customerId2","getDeviceAction","deviceMetricId","getDeviceMetric","getImage","reportId","getReport","startFetchingLocationClasses","completeFetchingLocationClasses","failFetchingLocationClasses","createPathComponent","ctx","_c","clusterProps","spiderLegPolylineOptions","pmIgnore","weight","opacity","removeOutsideVisibleBounds","chunkedLoading","iconCreateFunction","cluster","childCount","getChildCount","DivIcon","Point","clusterEvents","entries","propName","prop","markerClusterGroup","clearLayers","eventAsProp","clusterEvent","Children","isValidElement","leaflet","mapLayer","addLayer","instance","workplanEdit","startFetchingJob","completeFetchingJob","failFetchingJob","ColorPicker","displayColorPicker","setDisplayColorPicker","reactCSS","margin","borderRadius","background","swatch","padding","backgroundClip","popover","cover","right","bottom","left","onChangeComplete","disableAlpha","presetColors","GeofenceShapeDropdownInput","gs","onchange","textType","TextEditorInput","DurationInput","useDays","useHours","useMinutes","useSeconds","JobTypeDropdownInput","JobPriorityDropdownInput","JobStatusDropdownInput","subGeofences","FormsDropdown","UsersDropdown","ScheduleDropdown","showScheduleInformation","NoticeTypeDropdownInput","CategoriesDropdownInput","ThemeDropdown","importCustomersService","maintenanceLineIds","maintenanceLineIdState","getMaintenanceLine","getMaintenanceLinesList","maintenanceLineStatus","getMaintenanceLinesListByMembership","MaintenanceLinesByOdometer","maintenanceNoticeTypeId","getSelectedMaintenanceLine","selectedMaintenanceLines","isPartialFetchingListMaintenanceLines","isFetchingListMaintenanceLines","RadioButtonsInput","radioButton","boolean","addScheduleDescription","relativeIntervalDay","1","2","3","4","5","6","7","frequencyDescription","frequencyInterval","8","sDays","frequencyRecurrenceFactor","16","32","frequencyRelativeInterval","frequencyType","daysList","msToTime","parsed","milliseconds","minutesToTime","timeAsMilliseconds","minutesToMilliseconds","moduleIdState","dirty","getModule","getModulesList","device","deviceStatus","getSelectedModule","selectedModules","isFetchingModule","isAddingModule","isEditingModule","isRemovingModule","getSimsListDropdownService","importSIMsService","getSimsListByFiltersService","updateSimStatusService","AlreadyLeftTheOrigin","SelectAssignmentTypeTab","useAssignmentContext","stepper","updateAssignmentType","outline","alreadyLeftTheOrigin","useSharedLink","next","routeAssignmentIdState","isImportingAssignments","getRoutesAssignment","getRoutesAssignmentsListByType","getRoutesAssignmentsList","isFetchingRoutesAssignments","protocolIdState","protocolsPersistedConfig","getProtocol","getProtocolsListByMembership","getProtocolsList","isPartialFetchingListProtocols","isFetchingListProtocols","isAddingProtocol","isEditingProtocol","deleteServiceClass","getAssignedUnitsListService","listNotifications","completeFetchingJobsReport","entitiesByUser","orderByUser","failFetchingJobsReport","routeCommentIdState","isFetchingComments","errorFetchingComments","getRoutesComment","routeCheckpointId","typesRoutes","getRouteCheckpointsList","getRouteCheckpoint","getRouteCheckpointsListByRoute","getFetchingListRouteCheckpointsErrors","fillForm","listAllUserAnswersForm","ButtonIconDropdown","iconSelected","buttonIcons","iconFixed","onlyIconDropDown","tooltipPlacement","setIsOpen","tooltipOptionsOpen","setTooltipOptionsOpen","activeIcon","setActiveIcon","renderIconItem","buttonIcon","DropdownItem","tooltipmessage","prevState","toggleTooltip","ButtonDropdown","DropdownToggle","caret","DropdownMenu","ButtonTypes","SlidingPaneManualHourmeterAdjustment","handleAction","useWebtrackServiceOnAction","newHourMeter","newHourmeter","ManualHourmeterAdjustment","buttonType","useBoolean","setTrue","setFalse","useGetUnitAssets","setAssets","setIsFetching","SlidingPaneShareUnitLocation","isSlidingPaneOpen","isLinkCreated","setIsLinkCreated","durations","clipboard","writeText","receivers","durationId","SlidingPaneUnitHistoricalPositionsReport","columnInfo","borderStyle","borderColor","getArrowImage","showHistoricalPositions","setMapPositionToPositionsBounds","changeSetMapPositionToUnitsBounds","extraColumns","defaultMetricName","defaultMetricUnit","formatToTwoDecimals","ignitionValue","hasIgnitionInput","fetchInterval","changeSize","viewTable","changeViewTable","search","setSearch","changeRerender","historicalPositionsOnMapBounds","setHistoricalPositionsOnMapBounds","dropDownUnit","displayObjects","cleanup","clearInterval","zoomMapToPositions","selectedPositionId","consoleEvents","showUnitHistoryMarkers","groupPositionsIntoPraked","showUnitHistoryParkedMarkers","showUnitHeatMap","useInterval","setInterval","reportDataSource","dataSets","orderBy","headingArrows","ignition","isIgnitionOn","distanceAllPositions","RotatedMarker","rotationAngle","rotationOrigin","showUnitHistoryOnlyNormalPositionsMarkers","lineWidth","showUnitHistoryConsoleEventMarkers","ReportViewerButton","channelName","useEmbbededChannel","reportPath","saveUnitImage","deleteUnitImage","SlidingPaneUnitImages","addImageInitial","isLoadingUnitImages","setIsLoadingUnitImages","activeSlideImage","setActiveSlideImage","addImage","setAddImage","imageUrl","setUploadImage","saveUnitImageAsync","defaultImageValues","unitImageSave","imageTypeId","isDefault","deleteUnitImageAsync","unitImageDelete","slideId","Form","ImageUploader","cropShape","showGrid","aspect","onSuccessChangeFunction","onFailureChangeFunction","otherValues","onChangeImage","functionAfterUpload","filesPath","submitting","useGetUnitScripts","scriptsChats","setData","isFetchingScripts","useInsertUnitScript","execute","submittingSave","SlidingPaneUnitSendScripts","closeSlidingPaneSendScripts","useRerender","authUserId","newScript","fetchScriptsInterval","containerRef","firstLoad","setFirstLoad","executeSave","setExecuteSave","scriptToSave","setScriptToSave","secondary","REACT_APP_SECONDARY_COLOR","getScriptStatus","getStatusStyles","Badge","scrollHeight","sentDate","scriptDate","isProcessed","scriptTypeDescription","deviceActionDescription","Divider","scriptText","UnitFuel","measureId","measureTypeId","metricDescription","pathname","measurementUnitId","numberValue","UnitTemperature","showHistTemperature","setShowHistTemperature","showTable","setShowTable","isOpenDateRangeForm","setIsOpenDateRangeForm","isOpenSensorForm","setIsOpenSensorForm","setSensorId","setMeasureId","controlSensor","watchSensor","defaultValues","useGetUnitTemperatureHistory","formValuesSensor","formValuesDateRange","Dropdown","isDefaultPrevented","measurementUnitName","ControlChart","metricValue","upperLimit","lowerLimit","titleTooltip","bulletRadius","maxValue","minValue","SlidingPaneUnitInformation","setIsTrajectoryDisable","isFollowUnitPositionEnabled","setIsFollowUnitPositionEnabled","handleRecenterMapPosition","fetchInformationInterval","showAddImageSlidingPane","setShowAddImageSlidingPane","showHistPositionsReportSlidingPane","setShowHistPositionsReportSlidingPane","downtimeBinnacleSlideOpen","openDowntimeBinnacleSlide","showShareUnitLocationSlidingPane","setShowShareUnitLocationSlidingPane","showSendScriptsSlidingPane","setShowSendScriptsSlidingPane","showChangeStatusSlidingPane","setShowChangeStatusPane","showUnitImagesSlidingPane","setShowUnitImagesSlidingPane","previewDriverImagesSlideOpen","openPreviewDriverImagesSlide","openSpecialFunctionsSlidingPane","setOpenSpecialFunctionsSlidingPane","entityBinnacleSlideOpen","openEntityBinnacleSlide","isFetchingUnitData","setIsFetchingUnitData","isOpenModal","setIsOpenModal","shareWhatsAppLink","appMapEmbedLink","setAppMapEmbedLink","closeModal","copyLocationLinkToClipboard","intlLastEvent","userPermissions","permissionState","currentStatus","battery","useInActive","useInPeople","hidden","mainVoltage","sizeIcon","useInVehicles","isCharging","customChartTooltip","isSelectable","solarVoltage","backupBattery","doorState","coverTamperState","padlockState","padlockAuthorizationType","satellites","linealChart","gsmSignalLevel","plmn","mcc","mnc","cellNumber","trailerId","appVersion","useInAppCollapse","informationType","simCellularNumber","cellularProviderName","serialNumber","deviceImei","devicePropertyTypeId","vehicleMakerName","vehicleModelName","chasis","motor","availableIndicators","indicator","unitIndicators","unitAssetInformation","assetTypeId","assetData","followPositionButtonState","setFollowPositionButtonState","copyLatLong","wazeLink","whatsappLink","encodeURIComponent","googleMapsLink","useGoogleMaps","googleMapsApiKey","isEmpty","driverPhoneNumber","driverTotalFiles","ManualOdometerAdjustment","privateCode2","requireUserConfirmation","requireParameters","param","inputType","deviceActionParameterId","parameterName","parameterComments","doAction","driverBloodType","driverLicenseNumber","driverLicenseType","driverLicenseExpireDate","driverUseGlasses","driverBloodSugarProblems","SlidingPaneStartUnitDowntime","SlidingPaneDowntimeBinnacle","closeSlidingPaneDowntimeBinnacle","SlidingPanePreviewDriverImages","closeSlidingPanePreviewDriverImages","SlidingPaneEntityBinnacle","entityName","closeSlidingPaneEntityBinnacle","SlidingPaneUnitSpecialFunctions","Modal","centered","ModalHeader","overflow","href","rel","allowFullScreen","ModalFooter","useLocation","useMediaQuery","selectedUnitIds","useSlidingPaneUnitInformation","usePermanentPopover","initialShowSlidingPanelUnitInformationOpen","trackUnitNewWindowActive","selectedUnitState","fetchPositionInterval","showUnitInformationSlidingPane","setShowUnitInformationSlidingPane","setMapPositionToUnitsBounds","zoomMapToUnit","firstUnit","initialUnitInformation","trayectoryPolyline","setTrayectoryPolyline","trajectoryPositions","setTrajectoryPositions","trajectoryParkedPositionsMarkers","setTrajectoryParkedPositionsMarkers","isTrajectoryDisable","trayectoryFetched","setTrayectoryFetched","sort","antPolyline","antPath","dashArray","pulseColor","hardwareAccelerated","prevPositions","alias","l","isVisible","isDataReady","isTextButton","buttonClicked","setButtonClicked","channel","BroadcastChannel","isReportViewerOpen","setIsReportViewerOpen","isActive","isReportOpen","postReportData","infoHeader","tableHeaderColor","audit","partnerLogo","ds","datasets","postMessage","reportDetail","TabsContent","Card","CardBody","TabContent","tabContent","TabPane","vertical","checkbox","align","Tabs","toggleTab","TabsCardContent","paddingLeft","dependencies","setRerender","setValue","SlidingPaneEditFileName","closeSlidingPaneEditFileName","isImg","editFileName","CardImg","fileId","onSubmit","breakpoints","700","FileGallery","FilePreview","onClickImage","deleteFile","editFileNameSlideOpen","openEditFileNameSlide","objectFit","marginBottom","paddingTop","paddingBottom","textOverflow","wordWrap","maxHeight","startFetchingCurrencies","completeFetchingCurrencies","failFetchingCurrencies","getNotificationsListService","getConsoleListService","getWebServiceListService","saveNotifications","deleteNotifications","saveUserNotificationService","deleteUserNotificationService","additionalActions","additionalOnError","setResponse","setError","res","newRes","es","alertsEs","oldEs","vehicleFueli18n","workplansi18n","routesi18n","fileUploadi18n","mapi18n","operatorsi18n","organizationsi18n","divisionsi18n","subdivisionsi18n","agentsi18n","serviceClassesi18n","modulesi18n","vehiclesi18n","assetsi18n","usersi18n","simsi18n","locationi18n","driveri18n","sensorsi18n","unitsi18n","schedulesi18n","vehicleMaintenancei18n","maintenanceLinesi18n","paymentMethodsi18n","formsi18n","geofencesi18n","jobsi18n","safeDriveri18n","dashboardi18n","trackingUnitsi18n","reportsi18n","peoplei18n","notificationsi18n","telemetryi18n","operationsi18n","groupsi18n","consolei18n","contractsi18n","customersi18n","entitiesi18n","contractTemplatesi18n","quotationsi18n","officesi18n","optimizationsi18n","businessPartneri18n","protocolsi18n","etaModeli18n","newObj","replaceUnit","en","alertsEn","oldEn","notificationi18n","menuMessages","messagesEs","userMessagesEs","messagesEn","userMessagesEn","Context","createContext","IntlProviderWrapper","localStorageLang","messages","setMessages","loadCldr","numberingSystems","gregorian","numbers","timeZoneNames","weekData","messageEsGrid","messageEsDateTimePicker","Provider","switchLanguage","lang","defaultLocale","resetDropdown","monitoringUserSelectors","componentKey","startFetchingTimeZones","completeFetchingTimeZones","failFetchingTimeZones","getBrandsList","getBrand","isFetchingListBrands","haveBrandsBeenFetched","countryId","countryIds","getCountriesList","getCountry","isFetchingListCountries","assignmentByDate","idBySchedule","startFetchingBrands","completeFetchingBrands","failFetchingBrands","providedCoordinates","GeometryCollection","geometries","vertex","editTrackingUnits","startFetchingConfigurations","completeFetchingConfigurations","failFetchingConfigurations","startFetchingModels","completeFetchingModels","failFetchingModels","startFetchingVehicleMakers","completeFetchingVehicleMakers","failFetchingVehicleMakers","startFetchingVehicleModels","completeFetchingVehicleModels","failFetchingVehicleModels","injectIntl","locationClassesActions","jobCommentIdState","getWorkplansComment","getWorkplansCommentsListByFilters","getWorkplansCommentsList","isFetchingWorkplansComments","setRotationAngle","setRotationOrigin","startFetchingInsuranceCompanies","completeFetchingInsuranceCompanies","failFetchingInsuranceCompanies","startFetchingInsuranceAgents","completeFetchingInsuranceAgents","failFetchingInsuranceAgents","startFetchingSensorBrands","completeFetchingSensorBrands","failFetchingSensorBrands","startFetchingSensorModels","completeFetchingSensorModels","failFetchingSensorModels","startFetchingSensorMeasures","completeFetchingSensorMeasures","failFetchingSensorMeasures","clearSensorMeasures","jobsBacklog","jobIds","jobIdState","isRescheduling","jobsBacklogPersistedConfig","getJobBacklog","SlidingPaneManualOdometerAdjustment","distanceMeasure","parser","SimpleAlertMessage","newOdometer","createImage","Image","setAttribute","getRadianAngle","degreeValue","getCroppedImg","imageSrc","pixelCrop","rotation","fileType","canvas","getContext","maxSize","safeArea","sqrt","translate","rotate","drawImage","getImageData","putImageData","y","toDataURL","dataUrlToFile","dataUrl","blob","File","getRotatedImage","toBlob","URL","createObjectURL","readFile","reader","FileReader","readAsDataURL","ORIENTATION_TO_ANGLE","baseStyle","flex","borderWidth","activeStyle","acceptStyle","rejectStyle","showPreview","buttonConfirmTextId","buttonCancelTextId","dragndropTextId","uploadTextId","fileTypes","useDropzone","maxFiles","acceptedFiles","getRootProps","fileRejections","getInputProps","isDragActive","isDragAccept","isDragReject","onFileChange","imageDataUrl","getOrientation","orientation","setCroppedImage","setImageSrc","setFileType","setFileName","crop","setCrop","setRotation","setZoom","croppedAreaPixels","setCroppedAreaPixels","croppedImage","isLoadingImage","setIsLoadingImage","onCropComplete","croppedArea","uploadImage","Headers","append","FormData","jsonResponse","responseAfterUpload","onCropChange","onRotationChange","onZoomChange","Slider","aria-labelledby","getRouteExecutionsReportService","getRouteExecutionService","getRouteExecutionsMonitorService","getRouteReportService","shareRouteExecutionService","manualTransitRouteExecutionService","startRouteExecutionService","setIsExecutingAction","newRouteStatus","pauseRouteExecutionService","finalizeRouteExecutionService","completeRouteExecutionService","cancelRouteExecutionService","removeRouteExecutionService","getSharedLinkRoutesService","webpackContext","req","webpackContextResolve","__webpack_require__","exports","getFuelTanksAndSealTypes","getVehiclesListDropdownService","getBrandsAndModelsService","saveBrandService","saveModelService","deleteBrandService","deleteModelService","importVehiclesService","getUnitsAssetsService","getAvailableSensorsService","getFuelTanksService","getAssetsTemperatureAreas","getAssetTypes","pinActive","setPin","pills","tab","IconTag","IconFeather","active","checkboxComponent","usePin","getModulesDropdown","importModulesService","updateModuleStatusService","getModulesListByFiltersService","saveWorkplanAssignmentByScheduleService","saveWorkplanAssignmentByDateTimeService","geofencesAssign","forceUseMapquestMaps","forceUseGoogleMaps","forceUseHereMaps","forceUseBingMaps","mapquestConsumerKey","osmmap","gmRoadmap","gmHybrid","gmSatellite","gmTerrain","gmTraffic","bing","bing_satelite","bing_hibrido","here_layer","here_satelite_layer","mqOsm","mqHybrid","mqSatellite","mqDark","mqLight","useMapquestMaps","useBingMaps","useHereMaps","baseMapLayers","OpenStreetMap","TileLayer","attribution","hybridLayer","satelliteLayer","darkLayer","lightLayer","gridLayer","googleMutant","addGoogleLayer","bing_api_key","bingMapsApiKey","BingLayer","hereMapsAppId","hereMapsAppCode","tileLayer","app_id","app_code","layerGroup","Layers","operatorAdd","operatorEdit","operatorDelete","organizationAdd","organizationEdit","organizationDelete","agentAdd","agentEdit","agentDelete","deleteDivision","subdivisionAdd","subdivisionEdit","subdivisionDelete","editForms","reportForms","reportAnswerForms","addOptimizations","editOptimizations","deleteOptimizations","TableTimePicker","getValue","strictMode","enabled","floatLabelType","toDate","TrajectoryToolbar","trajectoryToolbar","postion","startFetchingPaymentMethods","completeFetchingPaymentMethods","failFetchingPaymentMethods","AppCollapse","accordion","titleKey","contentKey","blockContent","borderCard","defaultActive","openCollapse","setOpenCollapse","handleCollapseToggle","collapsed","baseUrlVehicleFuel","baseUrlEventActivity","baseUrlScheduledReports","baseUrlUnit","baseUrlNotification","getConsolidatedMileageData","getConsolidatedRunningTimeData","getConsolidatedVehicleActivity","getEventActivityDropdown","getTotalEventsActivity","getConsolidatedSummary","getAllUnitsEventsActivity","getUnitEventsActivity","getFuelSupplyHistory","getScheduledReportsList","getAvailableReports","saveScheduledReport","deleteScheduledReport","getCommunicationDiagnostics","getNotificationsReport","getNotificationsReportWithComments","getNotificationsComments","saveNotificationComment","deleteNotificationComment","cancelNotificationsService","processNotificationsService","getApiRequestReportData","getUserHistoryService","currencyId","getCurrency","getCurrenciesList","isFetchingListCurrencies","haveCurrenciesBeenFetched","SpinnerComponent","AssignmentContext","AssignmentProvider","changeStepper","setAssignmentType","setCommonValues","assignedUnits","setAssignedUnits","setAssignmentsByDate","setAssignmentsBySchedule","partialUpdatedAssignmentsByDate","setPartialUpdatedAssignmentsByDate","partialUpdatedAssignmentsBySchedule","setPartialUpdatedAssignmentsBySchedule","unitRouteAssignments","setUnitRouteAssignments","resetForms","startResetForms","schedulesSelectors","validateAssignments","assignments","validationFilters","isValidationNeeded","validationErrors","validatorErrors","resetAssignments","setStepper","updateCommonValues","revalidateUnitRouteAssignments","validatedItems","updateAssignedUnits","uniqueUnitIdValues","Set","oldStatus","removeAllAssignments","removeAllCompletedAssignments","completedAssignments","prev","el","updateUnitRouteAssignments","providedAssignments","newAssignments","newDataIdx","newAssignment","newItems","removeUnitRouteAssignment","syncAssignmentsByDate","partialUpdates","hasOwnProperty","completionType","completionTimeByUserInSec","automaticMonitoringWhenArrivingAtOrigin","startTimeWindowInSec","customField1","customField2","customField3","customField4","customField5","customField6","Yes","isSpecialCargo","completionTimeInMinutes","syncAssignmentsBySchedule","partialUpdateSelectedAssignmentsByDate","partialChanges","partialUpdateAssignmentsByDate","partialUpdateSelectedAssignmentsBySchedule","partialUpdateAssignmentsBySchedule","DriversDropdownInput","driverSelectors","driverPhotoUrl","EventsDropdown","useGetEventActivityDropdown","eventTypes","isFetchingEventTypes","selectedEvents","changeSelectedEvents","eventType","eventPrimaryColor","appendAddSchedule","showFrequency","showExecution","filterValidNextRun","selector","hasPermission","selectedSchedule","unfilteredSchedules","closeShiftPane","closeSchedulePane","isOpenTriggerPane","am4core","am4themes_animated","dataColor","axisRanges","fillOpacity","showFullChart","customColorTooltip","domRefId","tensionX","chart","chartIsReady","setChartIsReady","useLayoutEffect","dispose","am4charts","preloader","dateAxis","xAxes","dateFormats","setKey","tooltipDateFormat","baseInterval","timeUnit","valueAxis1","yAxes","stroke","strokeWidth","strokeOpacity","strokeDasharray","inside","fill","verticalCenter","rangeAR","series1","dataFields","valueY","dateX","bullet","bullets","series2","bullet2","series3","bullet3","circle","propertyFields","yAxis","getFillFromObject","events","tooltipDataItem","dataContext","legend","scrollbarX","bottomAxesContainer","addUsersToGroup","removeUsersFromGroup","addLocationsToGroup","removeLocationsFromGroup","addWorkplansToGroup","removeWorkplansFromGroup","addUnitsToGroup","removeUnitsFromGroup","addGeofencesToGroup","removeGeofencesFromGroup","addDriversToGroup","removeDriversFromGroup","appConfiguration","valueSec","onBlurInput","customDecorators","wildcardGroups","wildcards","wildcardGroup","EditorState","createWithContent","ContentState","createFromBlockArray","htmlToDraft","contentBlocks","entityMap","editorState","setEditorState","removeWildcardKey","wildcardProps","invoke","editorStateAux","contentState","startIndex","endIndex","end","htmlValue","draftToHtml","convertToRaw","getCurrentContent","newContent","decorators","strategy","contentBlock","matchArr","wildcardsRegex","RegExp","wildcard","getText","targetRange","getSelection","newContentState","Modifier","insertText","moveSelectionToEnd","insertWildcardKey","wrapperStyle","toolbarStyle","editorStyle","localization","onEditorStateChange","newEditorState","preserveSelectionOnBlur","reportMileage","reportHourMeters","reportHourOpportunityCharge","reportRunningTime","reportByUnitStopSummary","reportByUnitScriptsHistory","reportConsolidatedStopSummary","reportConsolidatedUnitActivity","reportConsolidatedEventActivity","reportParkedGeofence","reportScheduledReports","reportSystemCommunicationsDiag","reportSystemNotifications","reportSystemApiConsumption","reportConsolidatedSummary","reportSystemUserHistory","timeZoneId","getTimeZone","getTimeZonesList","isFetchingListTimeZones","haveTimezonesBeenFetched","getFilteredEntityTypesOptions","entityTypesOptions","userAccessLevelId","getMessageTypesStyles","getMessageTypePill","getMessageStatusPill","useGetDriverImages","update","driverImages","isFetchingDriverImages","responseSparePart","newSparePart","confirmedSparePart","sparePartIdState","getSparePart","getSparePartsList","getSparePartsListByMembership","haveSparePartsBeenFetched","useGetDowntimeBinnacle","downtimeBinnacle","isFetchingDowntimeBinnacle","binnacle","initialDateRange","setIsReportOpen","currentDate","startDateRange","endDateRange","organizationFormTypeId","selectFirst","formSelectors","isSelectedFirst","setIsSelectedFirst","workmanshipIdState","getWorkmanship","getWorkmanshipsListByMembership","haveWorkmanshipsBeenFetched","editContract","listContractVersions","consolidateContract","SlidingPaneAddEditContact","contactSelectors","initialValuesRedux","reduxContacts","contactStatus","unfilteredContacts","pattern","phoneNumber","birthDate","identification","nacionality","homeAddress","isShared","contactIdAux","createContact","contactIn","getOperatorContactsService","getOperatorStandardPricesService","priorities","variant","executeGetDriverImages","setExecuteGetDriverImages","fileTitle","getModelsList","getModel","deleteSensor","measurementHistory","locationSensor","viewCalibrationTable","addUser","editUser","removeUser","changePasswordUser","loadRolesPermissions","editUserPermissions","loadUserPermissions","suspendUser","reactivateUser","role1000","role1001","role1002","role1003","role1005","role1009","role1012","role1015","role1016","role1020","role1023","customerAccessLevel","divisionAccessLevel","organizationAccessLevel","systemAccessLevel","agentAccessLevel","operatorAccessLevel","gpsAccessLevel","vehicleMakerId","getVehicleMakersList","getVehicleMaker","vehicleModelId","getVehicleModelsList","getVehicleModel","getVehicleModelsListByMaker","makerId","saveLocationImage","locationImageId","getLocationImages","deleteLocationImage","SlidepanelLocationImages","locationImages","setLocationImages","isLoadingLocationImages","setIsLoadingLocationImages","getLocationImagesAsync","imagePath","saveLocationImageAsync","locationImageSave","deleteLocationImageAsync","locationImageDelete","SlidepanelLocationInformation","onEditLocation","showLocationImagesSlidepanel","setShowLocationImagesSlidepanel","showAddImageSlidepanel","setShowAddImageSlidepanel","isOpenSlidingPaneEditLocation","setOpenSlidingPaneEditLocation","editingLocationLocal","setEditingLocationLocal","locationsRouteParam","updatedLocation","getAllEvents","userOrganizationId","setEventTypes","eventActivity","jobTypes","jobType","GeofencesDropdownInput","subGeofence","notifId","shownAtLogin","notification","isMarkingAsRead","errorMarkingAsRead","getUserNotificationsList","getUserNotification","getPermanentUserNotifications","showToast","toastTime","getUnreadUserNotifications","isFetchingListUserNotifications","deleteModule","reactivateModule","reactivateSim","assetAdd","assetEdit","assetDelete","editDrivers","editPeople","editUsers","assignUnitsToUser","rolesPermissionsUsers","addCustomers","editCustomers","removeCustomers","editOptimization","editQuotations","followUpQuotations","webPageQuotations","sendingDiscountQuotations","getProvidersList","getProvider","getProvidersListByCountry","AbilityContext","createContextualCan","Consumer","insertBinnacleCommentService","useGetBinnacle","binnacleList","isFetchingBinnacle","getBinnacleService","auditBinnacle","fullBinnacleSorted","AuditDate","useInsertBinnacleComment","newComment","updateBinnacle","setUpdateBinnacle","valuesToSave","setValuesToSave","getBinnacleType","binnacleType","binnacleCategoryId","resolveEntityIntlLookUp","i18nLookup","resolveUnitsIntlLookUp","formatBinnacleLog","binnacleLog","i18NLookup","i18nDescription","i18NDescription","binnacleComment","resolveEntityIntlDescription","CardText","destinationId","getDestinationsList","modelName","getDestination","isFetchingListDestinations","SlidingPaneAddEditCustomer","locationPrivateCode","getValues","toLocaleTimeString","customerActions","businessName","taxId","customerAddress","customerEmails","contactName1","phone1","contactName2","phone2","contactName3","phone3","averageTime","createCustomer","createOffice","GoogleLocationsDropdownInput","userCountryCode","countryCode","countrySelectors","userCountriesIds","setGoogleLocation","getLatLngFromGoogle","geocodeByAddress","onChangeFinalGoogleLocation","place_id","REACT_APP_GOOGLE_ICON","selectProps","loadingMessage","autocompletionRequest","componentRestrictions","setContacts","SlidepanelGeofenceInformation","onEditGeofence","editingGeofenceLocal","setEditingGeofenceLocal","editingGeofenceLocalRef","onGeofenceDragend","updatedGeofence","geofencesRouteParam","bringToBack","noticeTypeOptions","noticeTypeId2","noticeTypeName","DropdownNotices","noticeType","DropDownCategories","Categorieselectors","categoryActions","connect","frequency","oneTimeDate","plus","oneTimeTime","local","recurrenceRange","sunday","utility","monday","tuesday","wednesday","thursday","friday","saturday","monthlyDay","frequencyDaily","frequencyWeekly","frequencyMonthly","frequencyDailyInterval","frequencyWeeklyInterval","isMonthlyRelative","relativeMonth","weekDaysList","frequencyDayType","stateProps","dispatchProps","ownProps","innerSelected","changeInnerSelected","shiftDays","setShiftDays","currentSchedule","scheduleShifts","daysToAdd","validDays","newDay","currentDay","newDayStartTime","newDayEndTime","currentDayStartTime","currentDayEndTime","errorDays","totalDays","shiftDay","startime","scheduleActions","saveShift","getScheduleTypes","getFrequency","getRelativeMonth","getWeekDaysList","getWeeklyFrequency","schedulePrivateCode","frequencyMonthlyInterval","noEndDate","selectedScheduleType","selectedFrequency","toISODate","toISOTime","valuesToDispatch","add","saveTrigger","themes","setThemes","fixedThemes","getExecution","setDowntime","useGetDowntimeReasons","downtimeReasons","isFetchingDowntimeReasons","mainStates","subMainStateId","temperatureHistory","providerIdState","getProvidersListByMembership","haveProvidersBeenFetched","noticeIdState","getNoticesList","getNotice","getNoticesListByMembership","getNoticesListByMembershipAndState","stateType","massAssignment","addPerson","editPerson","removePerson","sensorConfiguration","addOffices","editOffices","removeOffices","addContract","deleteContract","addTemplate","deleteTemplate","listQuote","editQuote","addQuote","deleteQuote","denyByManagement","denyByCustomer","approveByManagement","acceptByCustomer","previewQuotation","followUpQuotation","paymentMethodId","getPaymentMethod","getPaymentMethodsList","isFetchingListPaymentMethods","havePaymentMethodsBeenFetched","getInsuranceCompaniesList","getInsuranceCompaniesListByCountry","company","getInsuranceAgentsList","getInsuranceAgentsListByCountry","sensorBrandId","getSensorBrand","getSensorBrandsList","getSensorModel","getSensorModelsBySensorBrand","getSensorModelsList","getSensorMeasuresList","getSensorMeasure","REACT_APP_TOKEN_LIFE_TIME","getPublicRouteCheckpointsListService","firstOccurrence","lack","p","noticeProgressLabel","noticeMessageFormatted","noticeMessage","progress2","noticeTypeId2Format","noticeTypeId","getPreventiveNoticesByOdometerIndicators","permissons","onAllClick","onCurrentsClick","onExpiredClick","useGetUnitSpecialFunctions","specialFunctions","setSpecialFunctions","SpecialFunctionsDropdown","existingSpecialFunctionIds","useGetSpecialFunctionsDropdown","specialFunction","SlidingPaneEditUnitSpecialFunctions","refetchSpecialFunctions","isOnMap","refetch","setRefetch","isChangingStatus","errorChangingStatus","jobsBoardPersistedConfig","byIdUsers","orderUsers","jobsReportPersistedConfig","getJob","isFetchingJob","SlidingPaneSharedLinkUnitInformation","unitImage","MainStateDate","sharedLinkRoute","isDesktop","openSharedLinkUnitInformationSlidingPane","setOpenSharedLinkUnitInformationSlidingPane","openSharedLinkUnitInformationTooltip","setOpenSharedLinkUnitInformationTooltip","setUnitPositionHistoryReady","useLiveUnitFetchInterval","startLiveUnitRerender","sharedLinkUnitLocation","unitHistoricalPositions","mapOnSlidingPane","showConsoleEvents","zoomMapToUnitMobile","wordBreak","overflowWrap","whiteSpace","libraries","MapProvider","apiKey","useJsApiLoader","scriptLoaded","isLoaded","loadError","useGoogleMapsScript","CatalogIconsOptions","optionId","DropdownIcons","DropdownCategoriesIcons","Field","createReactClass","jQuery","jquery","existingAbility","ability","Ability","subject","ThemeColors","ThemeContext","setColors","getHex","light","main","danger","warning","dark","mounted","setMounted","isRippling","setIsRippling","setCoords","rect","getBoundingClientRect","clientX","clientY","Boolean","hostname","registerLicense","LazyApp","lazy","debug","accessToken","environment","captureUncaught","captureUnhandledRejections","ErrorBoundary","ReactRouterRoute","Route","fallback","newestOnTop","serviceWorker","ready","registration","unregister"],"mappings":"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MAAO,SACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,YACT,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,aACT,KAAK,EACH,MAAO,cACT,KAAK,EACH,MAAO,cACT,KAAK,GACH,MAAO,iBACT,KAAK,GACH,MAAO,0BACT,KAAK,GACH,MAAO,eACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,kBACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,iCACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,eACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,4BACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,4BACT,KAAK,GACH,MAAO,mCACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,yBACT,KAAK,GACH,MAAO,gBACT,KAAK,GACH,MAAO,0BACT,KAAK,GACH,MAAO,yBACT,KAAK,GACH,MAAO,oBACT,KAAK,GACH,MAAO,sBACT,KAAK,GACH,MAAO,iBACT,KAAK,GACH,MAAO,kBACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,wBACT,KAAK,IACH,MAAO,iBACT,KAAK,IACH,MAAO,kBACT,KAAK,KACH,MAAO,qBACT,KAAK,KACH,MAAO,eACT,KAAK,KACH,MAAO,gCACT,KAAK,KACH,MAAO,8BACT,KAAK,KACH,MAAO,yBACT,KAAK,KACH,MAAO,UACT,KAAK,KACH,MAAO,uBACT,KAAK,KACH,MAAO,yBACT,KAAK,KACH,MAAO,wBACT,KAAK,KACH,MAAO,qBACT,KAAK,KACH,MAAO,oBACT,KAAK,KACH,MAAO,kBAEX,MAAO,mBAGI8oG,EAA8B,SAACjoG,GAC1C,OAAQA,GACN,KAAK,EACH,MAAO,CAAC,WAAY,IACtB,KAAK,EACH,MAAO,CAAC,SAAU,IACpB,KAAK,EACH,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","file":"static/js/main.0a2ab933.chunk.js","sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Reducer Auth */\n/* -------------------------------------------------------------------------- */\n// Este reducer contiene toda la información del usuario en sesión.\n\nimport jwtDecode from 'jwt-decode';\nimport { combineReducers } from 'redux';\nimport camelcaseKeys from 'camelcase-keys';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as types from '../../types/auth';\nimport { tsNullKeyword } from '@babel/types';\n\nconst token = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return action.payload.token;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return action.payload.newToken;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return action.payload.tokenRefreshFailCount && tokenRefreshFailCount >= 2 ? null : state;\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst tokenRefreshFailCount = (state = null, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_COMPLETED: {\n return 0;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return state + 1;\n }\n default: {\n return state;\n }\n }\n};\n\nconst user = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return camelcaseKeys(jwtDecode(action.payload.token));\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return camelcaseKeys(jwtDecode(action.payload.newToken));\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED:\n return { ...state, ...action.payload };\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED:\n return { ...state, ...action.payload };\n case types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED: {\n const mapOptions = { ...action.payload };\n console.log({ mapOptions });\n\n return {\n ...state,\n enableLocationClustering: mapOptions.enableLocationClustering ? 1 : 0,\n locationMapLabelAlwaysOn: mapOptions.locationMapLabelAlwaysOn ? 1 : 0,\n activateUnitTrackMode: mapOptions.activateUnitTrackMode ? 1 : 0,\n unitMapLabelAlwaysOn: mapOptions.unitMapLabelAlwaysOn ? 1 : 0,\n unitsLabelContent: mapOptions.unitsLabelContent,\n zoomLevelToStartClustering: mapOptions.zoomLevelToStartClustering\n };\n }\n\n case types.PROFILE_UPDATE_PICTURE_COMPLETED: {\n const newImage = { ...action.payload };\n return {\n ...state,\n imageName: newImage.imageName,\n userImageUrl: newImage.userImageUrl\n };\n }\n\n case types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED: {\n const homeScreenId = action.payload;\n return {\n ...state,\n homeScreenId: homeScreenId\n };\n }\n\n case types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED: {\n const mapEntitiesFilterTab = action.payload;\n return {\n ...state,\n mapEntitiesFilterTab: mapEntitiesFilterTab\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst membership = (state = {}, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.AUTHENTICATION_SET_MEMBERSHIP: {\n const membership = action.payload;\n return membership;\n }\n default: {\n return state;\n }\n }\n};\n\nconst navigationOptions = (state = { productId: 1 }, action) => {\n switch (action.type) {\n case types.PROFILE_CHANGE_PRODUCT_COMPLETED: {\n const productId = action.payload;\n return {\n ...state,\n productId\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst isAuthenticating = (state = false, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return true;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return false;\n }\n case types.AUTHENTICATION_FAILED: {\n return false;\n }\n case types.AUTHENTICATION_USER_INFORMATION_STARTED: {\n return true;\n }\n case types.AUTHENTICATION_USER_INFORMATION_COMPLETED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfileGeneralInformation = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED: {\n return true;\n }\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED:\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingMapSettingsConfiguration = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED: {\n return true;\n }\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED:\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfileMapOptions = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_MAP_OPTIONS_STARTED: {\n return true;\n }\n\n case types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED:\n case types.PROFILE_UPDATE_MAP_OPTIONS_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfilePassword = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_PASSWORD_STARTED: {\n return true;\n }\n\n case types.PROFILE_UPDATE_PASSWORD_COMPLETED:\n case types.PROFILE_UPDATE_PASSWORD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRefreshing = (state = false, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_STARTED: {\n return true;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return false;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst refreshingError = (state = null, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_STARTED: {\n return null;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return null;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return action.payload.error;\n }\n default: {\n return state;\n }\n }\n};\n\nconst error = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return null;\n }\n case types.AUTHENTICATION_FAILED_CLEAR: {\n return null;\n }\n case types.AUTHENTICATION_FAILED: {\n return action.payload.error;\n }\n default: {\n return state;\n }\n }\n};\n\nconst catalogFilters = (state = {}, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return null;\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.PROFILE_SET_CATALOGS_FILTERS: {\n const { catalog, filters, initialValues } = action.payload;\n return {\n ...state,\n catalog,\n filters,\n initialValues\n };\n }\n default: {\n return state;\n }\n }\n};\n\nconst auth = combineReducers({\n token,\n user,\n membership,\n navigationOptions,\n isAuthenticating,\n isUpdatingMapSettingsConfiguration,\n isUpdatingProfileGeneralInformation,\n isUpdatingProfilePassword,\n isUpdatingProfileMapOptions,\n isRefreshing,\n error,\n refreshingError,\n tokenRefreshFailCount,\n catalogFilters\n});\n\nconst authPersistConfig = {\n key: 'auth',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'isUpdatingProfilePassword',\n 'isUpdatingProfileGeneralInformation',\n 'isUpdatingMapSettingsConfiguration',\n 'isUpdatingProfileMapOptions',\n 'isAuthenticating'\n ]\n // blackList: [],\n // whiteList: [],\n};\n\nexport default persistReducer(authPersistConfig, auth);\n\n//Own state\nexport const getOwnState = (state) => state.auth;\n\nexport const getUser = (state) => getOwnState(state).user;\n\n//Information\nexport const getAuthToken = (state) => getOwnState(state).token;\nexport const getIsAuthenticating = (state) => getOwnState(state).isAuthenticating;\n//Updating profile\nexport const getIsUpdatingProfileInformation = (state) =>\n getOwnState(state).isUpdatingProfileGeneralInformation;\nexport const getisUpdatingMapSettingsConfiguration = (state) =>\n getOwnState(state).isUpdatingMapSettingsConfiguration;\nexport const getIsUpdatingProfileMapOptions = (state) =>\n getOwnState(state).isUpdatingProfileMapOptions;\nexport const getIsUpdatingProfilePassword = (state) => getOwnState(state).isUpdatingProfilePassword;\nexport const getAuthenticatingError = (state) => getOwnState(state).error;\nexport const getAuthUserID = (state) =>\n getOwnState(state).user ? getOwnState(state).user.user_id : null;\nexport const getAuthExpiration = (state) =>\n getOwnState(state).user ? getOwnState(state).user.exp : null;\nexport const getAuthUsername = (state) =>\n getOwnState(state).user ? getOwnState(state).user.username : null;\nexport const getAuthUser = (state) => getOwnState(state).user ?? {};\nexport const getAuthUserForMembership = (state) => ({\n ...(getOwnState(state).user ?? {}),\n ...(getOwnState(state).membership ?? {})\n});\n\nexport const getAuthUserTimezoneName = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.zoneName\n ? getOwnState(state).user.zoneName\n : Intl.DateTimeFormat().resolvedOptions().timeZone\n : Intl.DateTimeFormat().resolvedOptions().timeZone;\n\nexport const getAuthUserCountryIdsForGoogleSearch = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.countriesForGoogleSearch\n ? getOwnState(state).user.countriesForGoogleSearch\n : null\n : null;\n\nexport const getAuthUserMapEntitiesFilterTab = (state) =>\n getOwnState(state).user ? Number(getOwnState(state).user.mapEntitiesFilterTab) : null;\n\nexport const getAuthUserMapGroupIdActive = (state) =>\n getOwnState(state).user ? getOwnState(state).user.mapGroupIdActive : null;\n\n/**\n * Get auth user map center\n * @param {*} state State from Redux\n * @returns {LatLngExpression}\n */\nexport const getAuthUserMapHomeCenter = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.homeLatitude && getOwnState(state).user.homeLongitude\n ? [getOwnState(state).user.homeLatitude, getOwnState(state).user.homeLongitude]\n : [14.62, -90.53]\n : [14.62, -90.53];\nexport const getAuthUserMapHomeZoom = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.homeZoom\n ? getOwnState(state).user.homeZoom\n : 12\n : 12;\nexport const isAuthenticated = (state) => getAuthToken(state) != null;\nexport const getAuthUserPermissions = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user?.permissions == ''\n ? []\n : getOwnState(state).user?.permissions.split(',')\n : [];\n\nexport const getAuthUserOrganizationId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.organizationId\n ? getOwnState(state).user.organizationId\n : null\n : null;\n\nexport const getAuthUserDivisionId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.divisionId\n ? getOwnState(state).user.divisionId\n : null\n : null;\n\nexport const getAuthUserSubdivisionId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.subdivisionId\n ? getOwnState(state).user.subdivisionId\n : null\n : null;\n\nexport const getAuthUserAccessLevelId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.accessLevelId\n ? getOwnState(state).user.accessLevelId\n : null\n : null;\n\nexport const getAuthUserHomeScreenId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user?.homeScreenId\n ? parseInt(getOwnState(state).user?.homeScreenId)\n : null\n : null;\n\nexport const getNavigationProduct = (state) =>\n getOwnState(state).navigationOptions\n ? getOwnState(state).navigationOptions?.productId\n ? parseInt(getOwnState(state).navigationOptions?.productId)\n : null\n : null;\n\nexport const getAuthUserMembershipFilters = (state, { filterOperatorId, filterOrganizationId }) => {\n const {\n accessLevelId,\n operatorId: userOperatorId,\n organizationId: userOrganizationId\n } = getAuthUserForMembership(state);\n\n if ([9, 11, 13, 15].includes(parseInt(accessLevelId))) {\n if (filterOperatorId && !filterOrganizationId)\n return {\n operatorId: filterOperatorId,\n organizationId: null\n };\n else if (!filterOperatorId && filterOrganizationId)\n return {\n operatorId: organizationSelectors.getOrganization(state, filterOrganizationId)?.operatorId,\n organizationId: filterOrganizationId\n };\n else if (!filterOperatorId && !filterOrganizationId) {\n return {\n //NOTA: Anteriormente se tenia los valores quemados del usuario\n operatorId: null,\n organizationId: null\n };\n } else\n return {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n };\n } else\n return {\n allowNullOrganizationId: true,\n operatorId: null,\n organizationId: null\n };\n};\n\nexport const getAuthUserOperatorId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.operatorId\n ? getOwnState(state).user.operatorId\n : null\n : null;\nexport const getAuthUserHasPermissionsAny = (state, permissions = []) =>\n permissions.some((userPer) => getAuthUserPermissions(state).includes(userPer));\n\nexport const getAuthUserHasPermissionByAccessLevels = (state, accessLevels = []) =>\n accessLevels.includes(parseInt(getAuthUser(state).accessLevelId));\n\nexport const isAuthUserSystemOrOperator = (state) =>\n [9, 13, 15].includes(parseInt(getAuthUser(state).accessLevelId));\n\nexport const getAuthUserHasPermissionsEvery = (state, permissions = []) =>\n permissions.every((userPer) => getAuthUserPermissions(state).includes(userPer));\n\nexport const getUserCatalogFilters = (state) => getOwnState(state).catalogFilters;\n\n//Systems\n// -------------------------------------------------------------------\n// | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n// -------------------------------------------------------------------\n// | distance | km | km | mi |\n// | capacity | gal | lt | gal |\n// | temperature | C | C | F |\n// | distance2 | m | m | pies |\n// | speed | km/h | km/h | mph |\n// | fuel | km/gal | km/l | mpg |\n// | fuel2 | g/h | l/h | g/h |\n// -------------------------------------------------------------------\n//\n// IMPORTANTE: La base de datos utiliza Metric System 2\n// 1-> Centroamericano\n// 2-> Metrico Decimal\n// 3-> U.S\n\nexport const getAuthSystems = (state) => {\n const distance = getOwnState(state)?.user?.distanceSystem;\n const capacity = getOwnState(state)?.user?.capacitySystem;\n\n return {\n distance,\n capacity,\n volume: getOwnState(state)?.user?.volumeSystem,\n temperature: getOwnState(state)?.user?.temperatureSystem,\n distance2: getOwnState(state)?.user?.distance2System,\n speed: getOwnState(state)?.user?.speedSystem,\n fuel: getOwnState(state)?.user?.fuelSystem,\n fuel2: getOwnState(state)?.user?.fuel2System,\n performance: `${distance}/${capacity}`\n };\n};\n\nexport const getParsers = (state) => ({\n /* -------------------------------------------------------------------------- */\n /* Distance */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Metros -> Sistema métrico del usuario (Kilometros o Millas)\n */\n convertMetersToAuthUserDistanceSystem: (meters) =>\n meters / (getAuthUser(state)?.metricSystemId == 3 ? 1609 : 1000),\n /**\n * Parser de Kilometros -> Sistema métrico del usuario (Kilometros o Millas)\n */\n convertKilometersToAuthUserDistanceSystem: (kilometers) =>\n kilometers / (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n /**\n * Parser de Sistema métrico del usuario (Kilometros o Millas) -> Metros\n */\n convertAuthUserDistanceSystemToMeters: (authUserDistanceSystem) =>\n authUserDistanceSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1609 : 1000),\n\n /* Pasar de sistema métrico del usuario (Kilometros o Millas) -> Kilometros */\n convertAuthUserDistanceSystemToKilometers: (authUserDistanceSystem) =>\n authUserDistanceSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Capacity */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | capacity | gal | lt | gal |\n // -------------------------------------------------------------------\n /**\n * Parser de Galones -> Sistema de capacidad del usuario (Galones o Litros)\n */\n convertGalonsToAuthUserCapacitySystem: (gal) =>\n gal * (getAuthUser(state)?.metricSystemId == 2 ? 3.78541 : 1),\n /**\n * Parser de Sistema de capacidad del usuario (Galones o Litros) -> Galones\n */\n convertAuthUserCapacitySystemToGalons: (authUserCapacitySystem) =>\n authUserCapacitySystem / (getAuthUser(state)?.metricSystemId == 2 ? 3.78541 : 1),\n /**\n * Parser de Litros -> Sistema de capacidad del usuario (Galones o Litros)\n */\n convertLitersToAuthUserCapacitySystem: (lt) =>\n lt / (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.78541),\n /**\n * Parser de Sistema de capacidad del usuario (Galones o Litros) -> Litros\n */\n convertAuthUserCapacitySystemToLiters: (authUserCapacitySystem) =>\n authUserCapacitySystem * (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.78541),\n\n /* -------------------------------------------------------------------------- */\n /* Volume */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de m³ -> Sistema de volumen del usuario (m³ o yd³)\n */\n convertCubicMetersToAuthUserVolumeSystem: (cubicMeters) =>\n cubicMeters / (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1),\n /**\n * Parser de Sistema de volumen del usuario (m³ o yd³) -> m³\n */\n convertAuthUserVolumeSystemToCubicMeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1),\n /**\n * Parser de Sistema de volumen del usuario (m³ o yd³) -> cm³\n */\n convertAuthUserVolumeSystemToCubicCentimeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1) * 1000000,\n\n /**\n * Parser de metros cubicos a centimetros cubicos (m³) -> cm³\n */\n convertAuthUserVolumeSystemToCubicCentimeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * 1000000,\n\n /* -------------------------------------------------------------------------- */\n /* Temperature */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Celsius -> Sistema de temperatura del usuario (Celsius o Fahrenheit)\n */\n convertCelsiusToAuthUserTemperatureSystem: (c) =>\n getAuthUser(state)?.metricSystemId == 3 ? (c * 9) / 5 + 32 : c,\n /**\n * Parser de Sistema de temperatura del usuario (Celsius o Fahrenheit) -> Celsius\n */\n convertAuthUserTemperatureSystemToCelsius: (authUserTemperatureSystem) =>\n getAuthUser(state)?.metricSystemId == 3\n ? (authUserTemperatureSystem - 32) * (5 / 9)\n : authUserTemperatureSystem,\n\n /* -------------------------------------------------------------------------- */\n /* Distance2 */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Metros -> Sistema métrico del usuario (Metros o Pies)\n */\n convertMetersToAuthUserDistance2System: (meters) =>\n meters * (getAuthUser(state)?.metricSystemId == 3 ? 3.281 : 1),\n /**\n * Parser de Sistema métrico del usuario (Metros o Pies) -> Metros\n */\n convertAuthUserDistance2SystemToMeters: (authUserDistance2System) =>\n authUserDistance2System / (getAuthUser(state)?.metricSystemId == 3 ? 3.281 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Speed */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de km/h -> Sistema de velocidad del usuario (km/h o mph)\n */\n convertKilometersPerHourToAuthUserSpeedSystem: (kilometersPerHour) =>\n kilometersPerHour / (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n /**\n * Parser de Sistema de velocidad del usuario (km/h o mph) -> km/h\n */\n convertAuthUserSpeedSystemToKilometersPerHour: (authUserSpeedSystem) =>\n authUserSpeedSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Fuel */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | fuel | km/gal | km/l | mpg |\n // -------------------------------------------------------------------\n /**\n * Parser de km/gal -> Sistema de capacidad del usuario (km/gal o km/l o mpg)\n */\n convertKilometersPerGalonToAuthUserFuelSystem: (kmPerGal) =>\n getAuthUser(state)?.metricSystemId == 2\n ? kmPerGal / 3.7854\n : getAuthUser(state)?.metricSystemId == 3\n ? kmPerGal / 1.609\n : kmPerGal,\n /**\n * Parser de Sistema de capacidad del usuario (km/gal o km/l o mpg) -> km/gal\n */\n convertAuthUserFuelSystemToKilometersPerGalon: (authUserFuelSystem) =>\n getAuthUser(state)?.metricSystemId == 2 //km/lt\n ? authUserFuelSystem * 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? authUserFuelSystem * 1.609\n : authUserFuelSystem,\n /**\n * Parser de km/gal -> Sistema de capacidad del usuario (km/gal o km/l o mpg)\n */\n convertKilometersPerLiterToAuthUserFuelSystem: (kmPerLiter) =>\n getAuthUser(state)?.metricSystemId == 1 //km/gal\n ? kmPerLiter * 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? (kmPerLiter * 3.7854) / 1.609\n : kmPerLiter,\n /**\n * Parser de Sistema de capacidad del usuario (km/gal o km/l o mpg) -> km/gal\n */\n convertAuthUserFuelSystemToKilometersPerLiter: (authUserFuelSystem) =>\n getAuthUser(state)?.metricSystemId == 1 //km/gal\n ? authUserFuelSystem / 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? (authUserFuelSystem / 3.7854) * 1.609\n : authUserFuelSystem,\n /* -------------------------------------------------------------------------- */\n /* Fuel2 */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | fuel2 | g/h | l/h | g/h |\n // -------------------------------------------------------------------\n /**\n * Parser de g/h -> Sistema de capacidad del usuario (g/h o l/h)\n */\n convertGalonsPerHourToAuthUserFuel2System: (galPerHour) =>\n galPerHour * (getAuthUser(state)?.metricSystemId == 2 ? 3.7854 : 1),\n /**\n * Parser de Sistema de capacidad del usuario (g/h o l/h) -> g/h\n */\n convertAuthUserFuel2SystemToGalonsPerHour: (authUserFuel2System) =>\n authUserFuel2System / (getAuthUser(state)?.metricSystemId == 2 ? 3.7854 : 1),\n /**\n * Parser de g/h -> Sistema de capacidad del usuario (g/h o l/h)\n */\n convertLitersPerHourToAuthUserFuel2System: (litersPerHour) =>\n litersPerHour / (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.7854),\n /**\n * Parser de Sistema de capacidad del usuario (g/h o l/h) -> g/h\n */\n convertAuthUserFuel2SystemToLitersPerHour: (authUserFuel2System) =>\n authUserFuel2System * (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.7854)\n});\n\n//Status of sagas\nexport const getIsRefreshingToken = (state) => getOwnState(state).isRefreshing;\n\n//Errors\nexport const getRefreshingError = (state) => getOwnState(state).refreshingError;\n\n//Errors\nexport const getTokenRefreshFailCount = (state) => getOwnState(state).tokenRefreshFailCount;\n","import React from \"react\";\nimport { useIntl } from \"react-intl\";\n\n// 'intl' service singleton reference\nlet intl;\n\nexport function IntlGlobalProvider({ children }) {\n intl = useIntl(); // Keep the 'intl' service reference\n return children;\n}\n\n// Getter function to expose the read-only 'intl' service\nexport function appIntl() {\n return intl;\n}\n","/* -------------------------------------------------------------------------- */\n/* Tipos del reductor Auth */\n/* -------------------------------------------------------------------------- */\n\nexport const AUTHENTICATION_STARTED = 'AUTHENTICATION_STARTED';\nexport const AUTHENTICATION_COMPLETED = 'AUTHENTICATION_COMPLETED';\nexport const AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED';\n\nexport const AUTHENTICATION_FAILED_CLEAR = 'AUTHENTICATION_FAILED_CLEAR';\nexport const AUTHENTICATION_IDENTITY_CLEARED = 'AUTHENTICATION_IDENTITY_CLEARED';\n\nexport const AUTHENTICATION_SET_MEMBERSHIP = 'AUTHENTICATION_SET_MEMBERSHIP';\n\nexport const AUTHENTICATION_USER_INFORMATION_STARTED = 'AUTHENTICATION_USER_INFORMATION_STARTED';\nexport const AUTHENTICATION_USER_INFORMATION_COMPLETED =\n 'AUTHENTICATION_USER_INFORMATION_COMPLETED';\n\nexport const TOKEN_REFRESH_STARTED = 'TOKEN_REFRESH_STARTED';\nexport const TOKEN_REFRESH_FORCE_STARTED = 'TOKEN_REFRESH_FORCE_STARTED';\nexport const TOKEN_REFRESH_COMPLETED = 'TOKEN_REFRESH_COMPLETED';\nexport const TOKEN_REFRESH_FAILED = 'TOKEN_REFRESH_FAILED';\n\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_STARTED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_STARTED';\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED';\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_FAILED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_FAILED';\n\nexport const PROFILE_UPDATE_PASSWORD_STARTED = 'PROFILE_UPDATE_PASSWORD_STARTED';\nexport const PROFILE_UPDATE_PASSWORD_COMPLETED = 'PROFILE_UPDATE_PASSWORD_COMPLETED';\nexport const PROFILE_UPDATE_PASSWORD_FAILED = 'PROFILE_UPDATE_PASSWORD_FAILED';\n\nexport const PROFILE_UPDATE_PICTURE_STARTED = 'PROFILE_UPDATE_PICTURE_STARTED';\nexport const PROFILE_UPDATE_PICTURE_COMPLETED = 'PROFILE_UPDATE_PICTURE_COMPLETED';\nexport const PROFILE_UPDATE_PICTURE_FAILED = 'PROFILE_UPDATE_PICTURE_FAILED';\n\nexport const PROFILE_UPDATE_MAP_OPTIONS_STARTED = 'PROFILE_UPDATE_MAP_OPTIONS_STARTED';\nexport const PROFILE_UPDATE_MAP_OPTIONS_COMPLETED = 'PROFILE_UPDATE_MAP_OPTIONS_COMPLETED';\nexport const PROFILE_UPDATE_MAP_OPTIONS_FAILED = 'PROFILE_UPDATE_MAP_OPTIONS_FAILED';\n\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED';\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED';\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED';\n\nexport const PROFILE_UPDATE_HOME_SCREEN_STARTED = 'PROFILE_UPDATE_HOME_SCREEN_STARTED';\nexport const PROFILE_UPDATE_HOME_SCREEN_COMPLETED = 'PROFILE_UPDATE_HOME_SCREEN_COMPLETED';\nexport const PROFILE_UPDATE_HOME_SCREEN_FAILED = 'PROFILE_UPDATE_HOME_SCREEN_FAILED';\n\nexport const PROFILE_CHANGE_PRODUCT_STARTED = 'PROFILE_CHANGE_PRODUCT_STARTED';\nexport const PROFILE_CHANGE_PRODUCT_COMPLETED = 'PROFILE_CHANGE_PRODUCT_COMPLETED';\nexport const PROFILE_CHANGE_PRODUCT_FAILED = 'PROFILE_CHANGE_PRODUCT_FAILED';\n\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED';\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED';\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED';\n\nexport const PROFILE_SET_CATALOGS_FILTERS = 'PROFILE_SET_CATALOGS_FILTERS';\n","export const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n};\n","import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\n\nexport const promiseWith = (data: T) => {\n return new Promise((resolve) => resolve(data));\n};\n\nexport class HttpAxios {\n service: AxiosInstance;\n\n constructor(config: any) {\n this.service = axios.create(config);\n }\n\n async getWithToken(path: string, token: string) {\n const response = await this.service.get(path, {\n headers: { Authorization: `Bearer ${token}` }\n });\n return promiseWith(response.data);\n }\n\n async getPdf(path: string, token: string): Promise {\n const response = await this.service.get(path, {\n headers: { Authorization: `Bearer ${token}` },\n responseType: 'arraybuffer'\n });\n return promiseWith(response.data);\n }\n\n async get(path: string, config?: AxiosRequestConfig): Promise {\n const response = await this.service.get(path, config);\n return promiseWith(response.data);\n }\n\n async patch(path: string, payload: string) {\n const response = await this.service.patch(path, payload);\n return promiseWith(response.data);\n }\n\n async post(path: string, payload: any, config?: AxiosRequestConfig) {\n const response = await this.service.post(path, payload, config);\n return promiseWith(response.data);\n }\n\n async put(path: string, payload: any = {}, config?: AxiosRequestConfig) {\n const response = await this.service.put(path, payload, config);\n return promiseWith(response.data);\n }\n\n async delete(path: string) {\n const response = await this.service.delete(path);\n return promiseWith(response.data);\n }\n}\n","/* eslint-disable class-methods-use-this,no-param-reassign,no-restricted-syntax */\nimport API_BASE_URL from 'redux/sagas/settings/apibaseurl';\nimport { headers } from './constants';\nimport { HttpAxios } from './http-axios';\nimport { ConfigMessages, ConfigActions } from './http-events';\n\nexport const buildParams = (params: any) => {\n if (params) {\n for (const key in params) {\n if (params[key] === '' || params[key] === undefined) {\n delete params[key];\n }\n }\n return Object.keys(params).length > 0 ? params : undefined;\n }\n return undefined;\n};\n\nclass HttpWebtrack extends HttpAxios {\n configMessage: ConfigMessages | undefined;\n configAction: ConfigActions | undefined;\n\n constructor() {\n super({ baseURL: API_BASE_URL, headers });\n }\n\n setConfigMessage = (configMessage: ConfigMessages | undefined) => {\n this.configMessage = configMessage;\n };\n\n setConfigActions = (configAction: ConfigActions | undefined) => {\n this.configAction = configAction;\n };\n}\n\nexport default HttpWebtrack;\n","import Swal from 'sweetalert2';\nimport { ConfigMessages } from 'utility/http/http-events';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\n\nexport interface AlertsConfig extends ConfigMessages {\n success?: string | null;\n altText?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Common Success, Confirmation And Error Alerts */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessMessage = ({ success, timer = 4000 }) => {\n Swal.fire({\n timer: timer,\n icon: 'success',\n text: `${success}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showConfirmationMessage = ({ title, message, confirmText, action, width }) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width,\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: confirmText,\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showErrorAlertFailChanges = ({ error, timer = undefined, title = 'Error' }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showErrorCustomMessage = (config: AlertsConfig) => {\n Swal.fire({\n icon: 'error',\n text: `${config.customMessageError}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#FF4757',\n buttonsStyling: false\n });\n};\n\nexport const showErrorAlertWarning = ({ error, timer = undefined, title = '' }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Success Alerts Created, Edited and Deleted */\n/* -------------------------------------------------------------------------- */\nconst getSuccessMessage = (genderType: string | undefined, action: string) => {\n switch (genderType) {\n case 'PluralFemale':\n return `common.${action}SuccessMessageMultipleAlt`;\n case 'PluralMale':\n return `common.${action}SuccessMessageMultiple`;\n case 'SingularFemale':\n return `common.${action}SuccessMessageAlt`;\n case 'SingularMale':\n return `common.${action}SuccessMessage`;\n default:\n return 'common.changesSuccess';\n }\n};\n\nexport const showSuccessCreatedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'created');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: 3000,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessEditedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'edited');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessCustomMessage = (config: AlertsConfig) => {\n Swal.fire({\n icon: 'success',\n text: `${config.customMessage}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDeletedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'deleted');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessLeavedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'leaved');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Error Alerts Created, Edited And Deleted */\n/* -------------------------------------------------------------------------- */\nconst getFailMessage = (genderType: string | undefined, action: string) => {\n switch (genderType) {\n case 'PluralFemale':\n return `common.${action}FailMessageMultipleAlt`;\n case 'PluralMale':\n return `common.${action}FailMessageMultiple`;\n case 'SingularFemale':\n return `common.${action}FailMessageAlt`;\n case 'SingularMale':\n return `common.${action}FailMessage`;\n default:\n return 'common.changesFail';\n }\n};\n\nexport const showFailCreatedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'created');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailEditedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'edited');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailDeletedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'deleted');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailLeavedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'leaved');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\nexport const showDeleteConfirmationMessage = ({ action, objectType, objectName }) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.deleteConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text: appIntl().formatMessage({ id: 'common.deleteWarning' }),\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* LOADING Alert */\n/* -------------------------------------------------------------------------- */\nexport const showLoading = () => {\n Swal.fire({\n title: appIntl().formatMessage({ id: 'common.loading' }),\n customClass: {\n loader: 'custom-loader'\n },\n loaderHtml: '
',\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const closeLoading = () => {\n Swal.close();\n};\n","/* eslint-disable no-param-reassign,no-case-declarations */\nimport * as axios from 'axios';\nimport Swal from 'sweetalert2';\nimport API_BASE_URL from 'redux/sagas/settings/apibaseurl';\nimport * as alerts from 'redux/utils/alerts-interceptors';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { HttpWebtrack } from 'utility/http';\n\nexport interface ConfigMessages {\n object: string;\n name?: string;\n customMessage?: string;\n customMessageError?: string;\n action?: 'Create' | 'Delete' | 'Edit' | 'Get' | 'Custom' | 'Leave';\n genderType?: 'PluralFemale' | 'SingularFemale' | 'PluralMale' | 'SingularMale';\n successTimer?: number;\n useSuccessTimer?: boolean;\n errorTimer?: number;\n}\n\nexport interface ConfigActions {\n successAction?: Function;\n errorAction?: Function;\n}\n\nexport const redirectTo = (document: any, path: string) => {\n document.location = path;\n // window.history.pushState({}, '', path);\n // window.location.reload();\n};\n\nexport const handleSuccess = (\n response: any,\n configMessage: ConfigMessages | undefined,\n configAction: ConfigActions | undefined\n) => {\n if (configMessage) {\n const { successTimer = 4000, useSuccessTimer = true } = configMessage;\n const alertObject: alerts.AlertsConfig = {\n object: appIntl().formatMessage({\n id: configMessage.object\n }),\n name: configMessage.name,\n genderType: configMessage.genderType,\n successTimer: !!useSuccessTimer ? successTimer : undefined,\n customMessage: configMessage.customMessage\n };\n\n switch (configMessage.action) {\n case 'Create':\n alerts.showSuccessCreatedMessage(alertObject);\n break;\n case 'Delete':\n alerts.showSuccessDeletedMessage(alertObject);\n break;\n case 'Edit':\n alerts.showSuccessEditedMessage(alertObject);\n break;\n case 'Leave':\n alerts.showSuccessLeavedMessage(alertObject);\n break;\n case 'Custom':\n if (configMessage.customMessage) alerts.showSuccessCustomMessage(alertObject);\n break;\n }\n }\n if (configAction?.successAction) configAction.successAction(response.data);\n // HttpWebtrack.setConfigMessage(undefined);\n // HttpWebtrack.setConfigActions(undefined);\n return response;\n};\n\nexport const handleError = (\n error: any,\n configMessage: ConfigMessages | undefined,\n configAction: ConfigActions | undefined\n) => {\n const Toast = Swal.mixin({\n toast: true,\n position: 'top-end',\n showConfirmButton: false,\n timer: 6000\n });\n\n switch (error?.response?.status) {\n // case 401:\n // Toast.fire({\n // icon: 'error',\n // title: 'No Autorizado'\n // });\n // break;\n // case 403:\n // Toast.fire({\n // icon: 'error',\n // title: 'No Autorizado'\n // });\n // setTimeout(() => {\n // if (error?.response.data?.source !== 'login') {\n // localStorage.clear();\n // redirectTo(document, `${API_BASE_URL}/`);\n // }\n // }, 2000);\n // break;\n // case 404:\n // Toast.fire({\n // icon: 'error',\n // title: 'Servicio no encontrado!'\n // });\n // break;\n default:\n if (configMessage) {\n const alertObject: alerts.AlertsConfig = {\n object: appIntl().formatMessage({\n id: configMessage.object\n }),\n name: configMessage.name,\n genderType: configMessage.genderType,\n errorTimer: configMessage.action === 'Custom' ? 4000 : configMessage.errorTimer,\n customMessageError: configMessage.customMessageError\n };\n\n switch (configMessage.action) {\n case 'Create':\n alerts.showFailCreatedMessage(alertObject);\n break;\n case 'Delete':\n alerts.showFailDeletedMessage(alertObject);\n break;\n case 'Leave':\n alerts.showFailLeavedMessage(alertObject);\n break;\n case 'Edit':\n alerts.showFailEditedMessage(alertObject);\n // case 'Get':\n // alerts.showErrorAlertFailChanges({\n // error: { errorMessage: 'Error al obtener el listado' }\n // });\n break;\n case 'Custom':\n if (configMessage.customMessageError) alerts.showErrorCustomMessage(alertObject);\n break;\n }\n }\n break;\n }\n if (configAction?.errorAction) configAction.errorAction(error);\n // HttpWebtrack.setConfigMessage(undefined);\n // HttpWebtrack.setConfigActions(undefined);\n return Promise.reject(error);\n};\n","import { AxiosRequestConfig, AxiosResponse } from 'axios';\n// import { actions } from 'app/Layout/slice';\nimport { HttpWebtrack } from '../index';\n\nconst httpWebtrack = new HttpWebtrack();\n\nconst methods = ['POST', 'PUT', 'DELETE'];\n\nexport const loadingOverlyaInterceptor = (store: any) => {\n httpWebtrack.service.interceptors.request.use(\n (config: AxiosRequestConfig) => {\n if (methods.some((x) => x === config.method?.toUpperCase())) {\n // store.dispatch(actions.showSpinner());\n }\n return config;\n },\n (error: any) => {\n // store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.response.use(\n (axiosResponse: AxiosResponse) => {\n if (methods.some((x) => x === axiosResponse.config.method?.toUpperCase())) {\n //store.dispatch(actions.hideSpinner());\n }\n\n return axiosResponse;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.request.use(\n (config: AxiosRequestConfig) => {\n if (methods.some((x) => x === config.method?.toUpperCase())) {\n //store.dispatch(actions.showSpinner());\n }\n return config;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.response.use(\n (axiosResponse: AxiosResponse) => {\n if (methods.some((x) => x === axiosResponse.config.method?.toUpperCase())) {\n //store.dispatch(actions.hideSpinner());\n }\n\n return axiosResponse;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n};\n","/* eslint-disable no-param-reassign */\nimport { endDateAdjustment } from './interceptor-utils';\n\nexport const redirectTo = (document: any, path: string) => {\n document.location = path;\n};\n\nexport const refreshTokenInterceptor = (failedRequest: any, session: any, store: any) => {\n //aquí iría el refresh token luego de que el backend responde con token vencido\n};\n\nexport const authTokenInterceptor = async (config: any, session: any) => {\n if (session?.token) {\n config.headers.Authorization = `Bearer ${session?.token}`;\n }\n\n return { ...config, data: endDateAdjustment(config?.data) };\n};\n","import { AxiosResponse } from 'axios';\nimport { HttpWebtrack } from 'utility/http';\nimport { handleError, handleSuccess } from 'utility/http/http-events';\nimport { loadingOverlyaInterceptor } from 'utility/http/interceptors/loading-overlay-interceptor';\nimport { authTokenInterceptor } from './auth-token-interceptor';\n\nconst ConfigureWebtrackInterceptor = (store: any, httpWebtrack: HttpWebtrack) => {\n loadingOverlyaInterceptor(store);\n httpWebtrack.service.interceptors.request.use(\n (conf: any) => {\n const session = store.getState()?.auth;\n return authTokenInterceptor(conf, session);\n },\n (error: any) => {\n return Promise.reject(error);\n }\n );\n httpWebtrack.service.interceptors.response.use(\n (response: AxiosResponse): AxiosResponse => {\n return handleSuccess(response, httpWebtrack.configMessage, httpWebtrack.configAction);\n },\n (error) => {\n return handleError(error, httpWebtrack.configMessage, httpWebtrack.configAction);\n }\n );\n};\n\nexport default {\n ConfigureWebtrackInterceptor\n};\n","// ** ThemeConfig Import\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\n// ** Returns Initial Menu Collapsed State\r\nconst initialMenuCollapsed = () => {\r\n const item = window.localStorage.getItem('menuCollapsed');\r\n //** Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed;\r\n};\r\n\r\n// ** Initial State\r\nconst initialState = {\r\n isRTL: themeConfig.layout.isRTL,\r\n menuCollapsed: initialMenuCollapsed(),\r\n menuHidden: themeConfig.layout.menu.isHidden,\r\n menuPinner: themeConfig.layout.menu.isPinner,\r\n contentWidth: themeConfig.layout.contentWidth\r\n};\r\n\r\nconst layoutReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case 'HANDLE_CONTENT_WIDTH':\r\n return { ...state, contentWidth: action.payload };\r\n case 'HANDLE_MENU_COLLAPSED':\r\n window.localStorage.setItem('menuCollapsed', action.payload);\r\n return { ...state, menuCollapsed: action.payload };\r\n case 'HANDLE_MENU_HIDDEN':\r\n return { ...state, menuHidden: action.payload };\r\n case 'HANDLE_MENU_PINNER':\r\n return { ...state, menuPinner: action.payload };\r\n case 'HANDLE_RTL':\r\n return { ...state, isRTL: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default layoutReducer;\r\n","import { User } from 'react-feather';\nexport default [\n {\n id: 'accountSettings',\n title: 'profile.profile',\n icon: ,\n permissions: [],\n iconName: 'Users',\n navLink: '/account-settings'\n }\n];\n","import sidebarOptions, * as sidebar from '../../../navigation/vertical';\nimport outsideSidebarOptions from '../../../navigation/outside-sidebar';\n\nimport * as navbarTypes from '../../types/navbar';\n// ** Initial State\nconst initialState = {\n suggestions: [\n ...sidebar.getOptions(sidebarOptions),\n ...sidebar.getOptions(outsideSidebarOptions)\n ],\n bookmarks: [],\n query: '',\n isFetchingBookmarks: false\n};\n\nconst navbar = (state = initialState, action) => {\n switch (action.type) {\n case navbarTypes.HANDLE_SEARCH_QUERY:\n return { ...state, query: action.payload };\n case navbarTypes.GET_BOOKMARKS_FETCH_COMPLETED:\n return {\n ...state,\n bookmarks: action.payload.bookmarks,\n suggestions: action.payload.suggestions,\n isFetchingBookmarks: false\n };\n case navbarTypes.GET_BOOKMARKS_FETCH_FAILED:\n return {\n ...state,\n isFetchingBookmarks: false\n };\n case navbarTypes.GET_BOOKMARKS_FETCH_STARTED:\n return {\n ...state,\n isFetchingBookmarks: true\n };\n case navbarTypes.UPDATE_BOOKMARKED_STARTED:\n let objectToUpdate;\n\n // ** find & update object\n state.suggestions.find((item) => {\n if (item.id === action.payload.id) {\n item.isBookmarked = !item.isBookmarked;\n objectToUpdate = item;\n }\n });\n\n // ** Get index to add or remove bookmark from array\n const bookmarkIndex = state.bookmarks.findIndex((x) => x.id === action.payload.id);\n\n if (bookmarkIndex === -1) {\n state.bookmarks.push(objectToUpdate);\n } else {\n state.bookmarks.splice(bookmarkIndex, 1);\n }\n\n return { ...state };\n default:\n return state;\n }\n};\n\nexport default navbar;\n\n//Own state\nexport const getOwnState = (state) => state.navbar;\n\n// Get User Bookmarks\nexport const getUserBookmarks = (state) => getOwnState(state).bookmarks;\n//Status of sagas\nexport const isFetchingBookmarks = (state) => getOwnState(state).isFetchingBookmarks;\n","import { combineReducers } from 'redux';\nimport currencies from './currencies';\nimport paymentMethods from './payment-methods';\nimport timeZones from './time-zones';\nimport countries from './countries';\nimport providers from './cellular-providers';\nimport vehicleMakers from './vehicle-makers';\nimport vehicleModels from './vehicle-models';\nimport insuranceCompanies from './insurance-companies';\nimport insuranceAgents from './insurance-agents';\nimport sensorBrands from './sensor-brands';\nimport sensorModels from './sensor-models';\nimport sensorMeasures from './sensor-measures';\nimport locationClasses from './location-classes';\nimport brands from './brands';\n\nconst staticCatalogs = combineReducers({\n currencies,\n timeZones,\n countries,\n providers,\n vehicleMakers,\n vehicleModels,\n insuranceCompanies,\n insuranceAgents,\n sensorBrands,\n sensorModels,\n sensorMeasures,\n paymentMethods,\n locationClasses,\n brands\n});\n\nexport default staticCatalogs;\n\n//Own state\nexport const getOwnState = (state) => state.staticCatalogs;\n","// ** Redux Imports\nimport { combineReducers } from 'redux';\nimport { reducer as formReducer } from 'redux-form';\n// ** Reducers Imports\nimport localforage from 'localforage';\nimport agents from 'views/screens/Agents/reducers';\nimport assets from 'views/screens/Assets/reducers';\nimport people from 'views/screens/Contacts/reducers';\nimport organizationContracts from 'views/screens/Contracts/reducers';\nimport contractTemplates from 'views/screens/ContractTemplates/reducers';\nimport customers from 'views/screens/Customers/reducers';\nimport divisions from 'views/screens/Divisions/reducers';\nimport drivers from 'views/screens/Drivers/reducers';\nimport entities from 'views/screens/Entities/reducers';\nimport etaModels from 'views/screens/ETAModelRoutes/reducers';\nimport forms from 'views/screens/Forms/reducers';\nimport geofences from 'views/screens/Geofences/reducers';\nimport groups from 'views/screens/Groups/reducers';\nimport jobs from 'views/screens/Jobs/reducers';\nimport locations from 'views/screens/Locations/reducers';\nimport maintenanceLines from 'views/screens/MaintenanceLines/reducers';\nimport modules from 'views/screens/Modules/reducers';\nimport userNotifications from 'views/screens/Notifications/reducers';\nimport offices from 'views/screens/Offices/reducers';\nimport operators from 'views/screens/Operators/reducers';\nimport organizations from 'views/screens/Organizations/reducers';\nimport protocols from 'views/screens/Protocols/reducers';\nimport quotations from 'views/screens/Quotations/reducers';\nimport routes from 'views/screens/Routes/reducers/routes';\nimport schedules from 'views/screens/Schedules/reducers';\nimport sensors from 'views/screens/Sensors/reducers';\nimport serviceClasses from 'views/screens/ServiceClasses/reducers';\nimport sims from 'views/screens/SIMs/reducers';\nimport subdivisions from 'views/screens/Subdivisions/reducers';\nimport units from 'views/screens/Units/reducers';\nimport monitoringUsers from 'views/screens/Users/reducers';\nimport categories from 'views/screens/vehicleMaintenance/reducers/catalogs/categories';\nimport providers from 'views/screens/vehicleMaintenance/reducers/catalogs/providers';\nimport spareParts from 'views/screens/vehicleMaintenance/reducers/catalogs/spareParts';\nimport workmanship from 'views/screens/vehicleMaintenance/reducers/catalogs/workmanship';\nimport noticesByDate from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByDate';\nimport noticesByHourmeter from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByHourmeter';\nimport noticesByOdometer from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByOdometer';\nimport vehicles from 'views/screens/Vehicles/reducers';\nimport workplans from 'views/screens/Workplans/reducers/workplans';\nimport * as authTypes from '../types/auth';\nimport auth from './auth';\nimport layout from './layout';\nimport navbar from './navbar';\nimport staticCatalogs from './static-catalogs';\n\nconst reducer = combineReducers({\n auth,\n layout,\n operators,\n organizations,\n divisions,\n subdivisions,\n serviceClasses,\n agents,\n navbar,\n modules,\n entities,\n people,\n workplans,\n locations,\n drivers,\n monitoringUsers,\n routes,\n schedules,\n units,\n categories,\n workmanship,\n geofences,\n staticCatalogs,\n sims,\n vehicles,\n assets,\n sensors,\n forms,\n jobs,\n groups,\n quotations,\n organizationContracts,\n contractTemplates,\n customers,\n offices,\n form: formReducer,\n noticesByOdometer,\n noticesByDate,\n noticesByHourmeter,\n providers,\n spareParts,\n maintenanceLines,\n protocols,\n userNotifications,\n etaModels\n});\n\nconst rootReducer = (state, action): any => {\n let newState = { ...state };\n\n if (!action) {\n return reducer;\n }\n\n if (action.type === authTypes.AUTHENTICATION_IDENTITY_CLEARED) {\n //Remove Session Information\n localStorage.removeItem('auth');\n localStorage.removeItem('userData');\n //Clear redux-persist storage\n localforage.removeItem('persist:root');\n //Set initialState\n const {\n jobs,\n groups,\n entities,\n routes,\n workplans,\n locations,\n drivers,\n auth,\n geofences,\n units\n } = state;\n newState = {\n jobs,\n groups,\n entities,\n routes,\n workplans,\n locations,\n drivers,\n auth,\n geofences,\n units\n };\n }\n return reducer(newState, action);\n};\n\nexport default rootReducer;\nexport type RootState = ReturnType;\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const agent = new schema.Entity(\n \"agents\",\n {},\n { idAttribute: \"agentId\" }\n);\nexport const agents = new schema.Array(agent);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as agentSelectors from '../reducers';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAgentsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/agent/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { agents },\n result //order\n } = normalize(resultData, schemas.agents); //normalize data to byId and order\n yield put(actions.completeFetchingAgents(agents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingAgents(error));\n }\n}\n\nexport function* watchFetchAgentsList() {\n yield takeEvery(types.AGENTS_FETCH_STARTED, fetchAgentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchAgentsList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/agent/GET`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { agents },\n result //order\n } = normalize(resultData, schemas.agents); //normalize data to byId and order\n yield put(actions.completePartialFetchingAgents(agents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingAgents(error));\n }\n}\n\nexport function* watchPartialFetchAgentsList() {\n yield takeEvery(types.AGENTS_PARTIAL_FETCH_STARTED, partialFetchAgentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addAgent(action) {\n const agent = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/save`, {\n method: 'POST',\n body: JSON.stringify({ ...agent, agentId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedAgent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingAgent(agent.agentId, addedAgent));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: agent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAgent(agent.agentId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAgent(agent.agentId, error));\n }\n}\n\nexport function* watchAddAgentsStarted() {\n yield takeEvery(types.AGENT_ADD_STARTED, addAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAgent(action) {\n const agent = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/save`, {\n method: 'POST',\n body: JSON.stringify({\n ...agent\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAgent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAgent(editedAgent));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: editedAgent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldAgent } = yield select((state) => selectors.getAgent(state, agent.agentId));\n yield put(actions.failEditingAgent(oldAgent, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldAgent } = yield select((state) => selectors.getAgent(state, agent.agentId));\n yield put(actions.failEditingAgent(oldAgent, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditAgentsStarted() {\n yield takeEvery(types.AGENT_EDIT_STARTED, editAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAgent(action) {\n const { agentId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedAgent = yield select((state) => agentSelectors.getAgent(state, agentId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/delete`, {\n method: 'POST',\n body: JSON.stringify({ agentId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingAgent(agentId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: deletedAgent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAgent(agentId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAgent(agentId, error));\n }\n}\n\nexport function* watchRemoveAgentStarted() {\n yield takeEvery(types.AGENT_REMOVE_STARTED, removeAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH AGENT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAgent(action) {\n const agentId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/${agentId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const agent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingAgent(agent));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingAgent(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingAgent(error));\n }\n}\n\nexport function* watchAgentFetchStarted() {\n yield takeEvery(types.AGENT_FETCH_STARTED, fetchAgent);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Divisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const division = new schema.Entity(\n \"divisions\",\n {},\n { idAttribute: \"divisionId\" }\n);\nexport const divisions = new schema.Array(division);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchDivisionsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { divisions },\n result //order\n } = normalize(resultData, schemas.divisions); //normalize data to byId and order\n yield put(actions.completeFetchingDivisions(divisions, result, operatorId, organizationId));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingDivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingDivisions(error));\n }\n}\n\nexport function* watchFetchDivisionsList() {\n yield takeEvery(types.DIVISIONS_FETCH_STARTED, fetchDivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchDivisionsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { divisions },\n result //order\n } = normalize(resultData, schemas.divisions); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingDivisions(divisions, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingDivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingDivisions(error));\n }\n}\n\nexport function* watchPartialFetchDivisionsList() {\n yield takeEvery(types.DIVISIONS_PARTIAL_FETCH_STARTED, partialFetchDivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addDivision(action) {\n const division = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/save`, {\n method: 'POST',\n body: JSON.stringify({ ...division, divisionId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedDivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingDivision(division.divisionId, addedDivision));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: division.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingDivision(division.divisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingDivision(division.divisionId, error));\n }\n}\n\nexport function* watchAddDivisionsStarted() {\n yield takeEvery(types.DIVISION_ADD_STARTED, addDivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editDivision(action) {\n const division = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/division/save`, {\n method: 'POST',\n body: JSON.stringify(division),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedDivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingDivision(editedDivision));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: editedDivision.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldDivision } = yield select((state) =>\n selectors.getDivision(state.divisions, division.divisionId)\n );\n yield put(actions.failEditingDivision(oldDivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldDivision = yield select((state) => selectors.getDivision(state, division.divisionId));\n yield put(actions.failEditingDivision(oldDivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditDivisionsStarted() {\n yield takeEvery(types.DIVISION_EDIT_STARTED, editDivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeDivision(action) {\n const { divisionId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedDivision = yield select((state) => selectors.getDivision(state, divisionId));\n const response = yield call(fetch, `${API_BASE_URL}/division/delete`, {\n method: 'POST',\n body: JSON.stringify({ divisionId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingDivision(divisionId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: deletedDivision.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingDivision(divisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingDivision(divisionId, error));\n }\n}\n\nexport function* watchRemoveDivisionStarted() {\n yield takeEvery(types.DIVISION_REMOVE_STARTED, removeDivision);\n}\n","/* Schema Entities */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const entity = new schema.Entity('entities', {}, { idAttribute: 'entityTypeId' });\nexport const entities = new schema.Array(entity);\n","import * as types from '../types';\n\nexport const startFetchingDestinations = (filters = {}) => ({\n type: types.ETAMONITORING_DESTINATIONS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingDestination = (entities, order, operatorId, organizationId) => ({\n type: types.ETAMONITORING_DESTINATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failFetchingDestination = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ETAMONITORING_DESTINATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import * as types from '../../../types/static-catalogs/countries';\n\nexport const startFetchingCountries = (filters = {}) => ({\n type: types.COUNTRIES_FETCH_STARTED,\n payload: { filters }\n});\nexport const completeFetchingCountries = (entities, order) => ({\n type: types.COUNTRIES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingCountries = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.COUNTRIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingCountries = (filters = {}) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_STARTED,\n payload: { filters }\n});\nexport const completePartialFetchingCountries = (entities, order) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingCountries = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const selectModel = (modelId) => ({\n type: types.COUNTRY_SELECTED,\n payload: modelId\n});\n\nexport const deselectModel = (modelId) => ({\n type: types.COUNTRY_DESELECTED,\n payload: modelId\n});\n\nexport const deselectAllCountries = (\n modelIds = [] //List of ModelIds\n) => ({\n type: types.COUNTRIES_ALL_DESELECTED,\n payload: modelIds\n});\n","import { all, call, put, select, takeEvery } from 'redux-saga/effects';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as entityTypes from '../../../screens/Entities/constants';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as types from '../types';\n//Se importan las actions de las entities que se quieren actualizar\nimport * as divisionsActions from 'views/screens/Divisions/actions';\nimport * as geofencesActions from 'views/screens/Geofences/actions';\nimport * as maintenanceLinesActions from 'views/screens/MaintenanceLines/actions';\nimport * as operatorsActions from 'views/screens/Operators/actions';\nimport * as organizationsActions from 'views/screens/Organizations/actions';\nimport * as subdivisionsActions from 'views/screens/Subdivisions/actions';\nimport * as workplansActions from 'views/screens/Workplans/actions/workplans';\nimport * as unitsActions from '../../Units/actions';\n\nimport * as agentActions from 'views/screens/Agents/actions';\nimport * as assetsActions from 'views/screens/Assets/actions';\nimport * as contactsActions from 'views/screens/Contacts/actions';\nimport * as organizationContractsActions from 'views/screens/Contracts/actions';\nimport * as contractTemplatesActions from 'views/screens/ContractTemplates/actions';\nimport * as customersActions from 'views/screens/Customers/actions';\nimport * as destinationActions from 'views/screens/ETAModelRoutes/actions';\nimport * as formsActions from 'views/screens/Forms/actions';\nimport * as groupsActions from 'views/screens/Groups/actions';\nimport * as jobActions from 'views/screens/Jobs/actions';\nimport * as notificationsActions from 'views/screens/Notifications/actions';\nimport * as protocolsActions from 'views/screens/Protocols/actions';\nimport * as routesActions from 'views/screens/Routes/actions/routes';\nimport * as sensorsActions from 'views/screens/Sensors/actions';\nimport * as serviceClassesActions from 'views/screens/ServiceClasses/actions';\nimport * as countriesActions from '../../../../redux/actions/static-catalogs/countries';\nimport * as driverActions from '../../Drivers/actions';\nimport * as locationActions from '../../Locations/actions';\nimport * as modulesActions from '../../Modules/actions';\nimport * as officeActions from '../../Offices/actions';\nimport * as schedulesActions from '../../Schedules/actions';\nimport * as simActions from '../../SIMs/actions';\nimport * as monitoringUsers from '../../Users/actions';\nimport * as vehicleActions from '../../Vehicles/actions/index';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchEntitiesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/account/entities-datetimes`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { entities },\n result //order\n } = normalize(resultData, schemas.entities); //normalize data to byId and order\n yield put(actions.completeFetchingEntities(entities, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingEntities(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingEntities(error));\n }\n}\n\nexport function* watchFetchEntitiesList() {\n yield takeEvery(types.ENTITIES_FETCH_STARTED, fetchEntitiesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* updateEntities(action) {\n const isFetchedListEntities = yield select(selectors.isFetchedListEntities);\n if (isFetchedListEntities) {\n try {\n const entitiesToUpdate = action.payload;\n const isEntityUpdatedFunction = yield select(selectors.isEntityUpdated);\n const isEntityUpdated = isEntityUpdatedFunction(entitiesToUpdate);\n yield all(\n entitiesToUpdate.map((entity, index) => {\n //Si no esta actualizada se actualiza con la acción fetch de la propia entidad\n const entityTypeId = entity?.entityTypeId || entity;\n if (isEntityUpdated[index] !== true) {\n switch (parseInt(entityTypeId)) {\n case entityTypes.ENTITY_UNITS:\n if (isEntityUpdated[index] === null)\n return put(\n unitsActions.startFetchingUnits({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n unitsActions.startPartialFetchingUnits(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SUBDIVISONS:\n if (isEntityUpdated[index] === null)\n return put(\n subdivisionsActions.startFetchingSubdivisions({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n subdivisionsActions.startPartialFetchingSubdivisions(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_MAINTENANCE_LINES:\n if (isEntityUpdated[index] === null)\n return put(\n maintenanceLinesActions.startFetchingMaintenanceLines({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n maintenanceLinesActions.startPartialFetchingMaintenanceLines(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_VEHICLES:\n if (isEntityUpdated[index] === null)\n return put(\n vehicleActions.startFetchingVehicles({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n vehicleActions.startPartialFetchingVehicles(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_MODULES:\n if (isEntityUpdated[index] === null)\n return put(\n modulesActions.startFetchingModules({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n modulesActions.startPartialFetchingModules(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_AGENTS:\n if (isEntityUpdated[index] === null) return put(agentActions.startFetchingAgents());\n else return put(agentActions.startPartialFetchingAgents(parseInt(entityTypeId)));\n case entityTypes.ENTITY_SERVICE_CLASSES:\n if (isEntityUpdated[index] === null)\n return put(\n serviceClassesActions.startFetchingServiceClasses({}, entity.isDropdown)\n );\n else\n return put(\n serviceClassesActions.startPartialFetchingServiceClasses(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_OPERATORS:\n if (isEntityUpdated[index] === null)\n return put(operatorsActions.startFetchingOperators());\n else\n return put(\n operatorsActions.startPartialFetchingOperators(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_DIVISIONS:\n if (isEntityUpdated[index] === null)\n return put(\n divisionsActions.startFetchingDivisions({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n divisionsActions.startPartialFetchingDivisions(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_FORMS:\n if (isEntityUpdated[index] === null) return put(formsActions.startFetchingForms());\n else return put(formsActions.startPartialFetchingForms(parseInt(entityTypeId)));\n case entityTypes.ENTITY_ORGANIZATIONS:\n if (isEntityUpdated[index] === null)\n return put(organizationsActions.startFetchingOrganizations());\n else\n return put(\n organizationsActions.startPartialFetchingOrganizations(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_USERS:\n if (isEntityUpdated[index] === null)\n return put(\n monitoringUsers.startFetchingMonitoringUsers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n monitoringUsers.startPartialFetchingMonitoringUsers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_ORGANIZATION_CONTRACTS:\n if (isEntityUpdated[index] === null)\n return put(\n organizationContractsActions.startFetchingOrganizationContracts({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n organizationContractsActions.startPartialFetchingOrganizationContracts(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_CONTRACT_TEMPLATES:\n // console.log('Se actualiza plantillas de contratos');\n if (isEntityUpdated[index] === null)\n return put(\n contractTemplatesActions.startFetchingContractTemplates({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n contractTemplatesActions.startPartialFetchingContractTemplates(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_CUSTOMERS:\n if (isEntityUpdated[index] === null)\n return put(\n customersActions.startFetchingCustomers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n customersActions.startPartialFetchingCustomers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_CONTACTS:\n if (isEntityUpdated[index] === null)\n return put(contactsActions.startFetchingContacts());\n else\n return put(contactsActions.startPartialFetchingContacts(parseInt(entityTypeId)));\n case entityTypes.ENTITY_WORKPLANS:\n if (isEntityUpdated[index] === null)\n return put(\n workplansActions.startFetchingWorkplans({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n workplansActions.startPartialFetchingWorkplans(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_GEOFENCES:\n if (isEntityUpdated[index] === null)\n return put(\n geofencesActions.startFetchingGeofences({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n bounds: entity.bounds\n })\n );\n else\n return put(\n geofencesActions.startPartialFetchingGeofences(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SCHEDULES:\n if (isEntityUpdated[index] === null)\n return put(schedulesActions.startFetchingSchedules());\n else\n return put(\n schedulesActions.startPartialFetchingSchedules(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_ROUTES:\n if (isEntityUpdated[index] === null)\n return put(\n routesActions.startFetchingRoutes({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n routesActions.startPartialFetchingRoutes(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SIM_CARDS:\n if (isEntityUpdated[index] === null)\n return put(\n simActions.startFetchingSims({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n simActions.startPartialFetchingSims(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n null,\n null,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_COUNTRIES:\n if (isEntityUpdated[index] === null)\n return put(countriesActions.startFetchingCountries());\n else\n return put(\n countriesActions.startPartialFetchingCountries(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_LOCATIONS:\n if (isEntityUpdated[index] === null)\n return put(\n locationActions.startFetchingLocations({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n bounds: entity?.bounds\n })\n );\n else\n return put(\n locationActions.startPartialFetchingLocations(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_OFFICES:\n if (isEntityUpdated[index] === null)\n return put(\n officeActions.startFetchingOffices({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n officeActions.startPartialFetchingOffices(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_DRIVERS:\n if (isEntityUpdated[index] === null)\n return put(\n driverActions.startFetchingDrivers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n driverActions.startPartialFetchingDrivers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_ASSETS:\n if (isEntityUpdated[index] === null)\n return put(\n assetsActions.startFetchingAssets({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n assetsActions.startPartialFetchingAssets(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SENSORS:\n if (isEntityUpdated[index] === null)\n return put(sensorsActions.startFetchingSensors());\n else return put(sensorsActions.startPartialFetchingSensors(parseInt(entityTypeId)));\n case entityTypes.ENTITY_JOBS_BACKLOG:\n if (isEntityUpdated[index] === null)\n return put(jobActions.startFetchingJobsBacklog());\n else return put(jobActions.startPartialFetchingJobsBacklog(parseInt(entityTypeId)));\n case entityTypes.ENTITY_GROUPS:\n if (isEntityUpdated[index] === null)\n return put(\n groupsActions.startFetchingGroups({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n groupsActions.startPartialFetchingGroups(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_PROTOCOLS:\n if (isEntityUpdated[index] === null)\n return put(\n protocolsActions.startFetchingProtocols({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n protocolsActions.startPartialFetchingProtocols(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_DESTINATIONS:\n return put(\n destinationActions.startFetchingDestinations({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n case entityTypes.ENTITY_USER_NOTIFICATIONS:\n if (isEntityUpdated[index] === null)\n return put(\n notificationsActions.startFetchingUserNotifications({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n notificationsActions.startPartialFetchingUserNotifications(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n default:\n break;\n }\n }\n })\n );\n yield put(actions.completeUpdatingEntities());\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingEntities(error));\n }\n }\n}\n\nexport function* watchUpdateEntities() {\n yield takeEvery(types.ENTITIES_UPDATE_STARTED, updateEntities);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Geofences */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const geofence = new schema.Entity('geofences', {}, { idAttribute: 'geofenceId' });\nexport const geofences = new schema.Array(geofence);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport {\n deleteGeofenceService,\n getGeofencesListService,\n saveGeofenceService,\n getGeofenceByIdService\n} from '../services/geofences';\nimport * as types from '../types';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport { call, takeEvery, put, select } from 'redux-saga/effects';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGeofencesList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n bounds: filterBounds\n } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n {\n operatorId: operatorId,\n organizationId: organizationId,\n minLat: filterBounds?.minLat,\n maxLat: filterBounds?.maxLat,\n minLng: filterBounds?.minLng,\n maxLng: filterBounds?.maxLng\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { geofences },\n result //order\n } = normalize(resultData, schemas.geofences); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingGeofences(\n geofences,\n result,\n operatorId,\n organizationId,\n filterBounds?.showInMapGeofences ? filterBounds?.showInMapGeofences : false\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGeofences(error));\n }\n }\n );\n}\n\nexport function* watchFetchGeofencesList() {\n yield takeEvery(types.GEOFENCES_FETCH_STARTED, fetchGeofencesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchGeofencesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { geofences },\n result //order\n } = normalize(resultData, schemas.geofences); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingGeofences(geofences, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingGeofences(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchGeofencesList() {\n yield takeEvery(types.GEOFENCES_PARTIAL_FETCH_STARTED, partialFetchGeofencesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addGeofence(action) {\n const geofence = action.payload;\n saveGeofenceService(\n { ...geofence, geofenceId: null },\n {\n successAction: (response) => {\n const addedGeofence = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingGeofence(geofence.geofenceId, addedGeofence));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGeofence(geofence.geofenceId, error));\n }\n }\n );\n}\n\nexport function* watchAddGeofencesStarted() {\n yield takeEvery(types.GEOFENCE_ADD_STARTED, addGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editGeofence(action) {\n const geofence = action.payload;\n const oldGeofence = yield select((state) => selectors.getGeofence(state, geofence.geofenceId));\n saveGeofenceService(\n { ...geofence },\n {\n successAction: (response) => {\n const editedGeofence = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingGeofence(editedGeofence));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingGeofence(oldGeofence, error));\n }\n }\n );\n}\n\nexport function* watchEditGeofencesStarted() {\n yield takeEvery(types.GEOFENCE_EDIT_STARTED, editGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeGeofence(action) {\n const { geofenceId } = action.payload;\n const geofence = yield select((state) => selectors.getGeofence(state, geofenceId));\n deleteGeofenceService(\n { ...geofence },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingGeofence(geofenceId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingGeofence(geofenceId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveGeofenceStarted() {\n yield takeEvery(types.GEOFENCE_REMOVE_STARTED, removeGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Geofence Unit */\n/* -------------------------------------------------------------------------- */\nfunction* assignGeofenceUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(assignation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitsGeofences(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitsGeofences(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitsGeofences(error));\n }\n}\n\nexport function* watchAssignGeofenceUnit() {\n yield takeEvery(types.GEOFENCE_ASSIGN_UNIT_STARTED, assignGeofenceUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove Geofence Assignation */\n/* -------------------------------------------------------------------------- */\nfunction* removeGeofenceAssignation(action) {\n const unitGeofences = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteUnitGeofences`, {\n method: 'POST',\n body: JSON.stringify(unitGeofences),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(unitGeofences));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove All Assignments By Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* removeAllAssigmentsByGeofences(action) {\n //const unitGeofences = action.payload;\n console.log('removeAll payload', action.payload);\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteAllByGeofences`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n console.log('response', jsonResult);\n if (\n response.status <= 300 &&\n jsonResult.success /* &&\n jsonResult.data.length === unitGeofences.length */\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(action.payload));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove All Assignments By Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* removeAllAssigmentsByUnits(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteAllByUnits`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n console.log('response', jsonResult);\n if (\n response.status <= 300 &&\n jsonResult.success /* &&\n jsonResult.data.length === unitGeofences.length */\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(action.payload));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\nexport function* watchRemoveGeofenceAssignation() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_REMOVE_STARTED, removeGeofenceAssignation);\n}\n\nexport function* watchRemoveAllAssignmentsByGeofences() {\n yield takeEvery(\n types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED,\n removeAllAssigmentsByGeofences\n );\n}\n\nexport function* watchRemoveAllAssignmentsByUnits() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED, removeAllAssigmentsByUnits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Edit Geofence Assignation */\n/* -------------------------------------------------------------------------- */\nfunction* editGeofenceAssignation(action) {\n const unitGeofenceInfo = action.payload.unitGeofenceInfo;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/editUnitGeofenceNotification`, {\n method: 'POST',\n body: JSON.stringify(unitGeofenceInfo),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeEditingGeofenceAssignation(unitGeofenceInfo));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyEdited'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.editingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.editingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingGeofenceAssignation(error));\n }\n}\n\nexport function* watchEditGeofenceAssignation() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_EDIT_STARTED, editGeofenceAssignation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* GET GEOFENCE BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchGeofenceById(action) {\n const geofenceId = action.payload;\n getGeofenceByIdService(\n {\n geofenceId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingGeofence(resultData, [resultData.geofenceId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGeofence(error));\n }\n }\n );\n}\n\nexport function* watchFetchGeofenceById() {\n yield takeEvery(types.GEOFENCE_FETCH_STARTED, fetchGeofenceById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Modules */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n//Cambio de nombre porque module causaba problemas al inicializar\nexport const moduleSchema = new schema.Entity(\n \"modules\",\n {},\n { idAttribute: \"deviceId\" }\n);\nexport const modules = new schema.Array(moduleSchema);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { getModulesListService } from '../services';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModulesList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getModulesListService(\n {\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { modules },\n result //order\n } = normalize(resultData, schemas.modules); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingModules(modules, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingModules(error));\n }\n }\n );\n}\n\nexport function* watchFetchModulesList() {\n yield takeEvery(types.MODULES_FETCH_STARTED, fetchModulesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchModulesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getModulesListService(\n {\n userFetchDate: date,\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { modules },\n result //order\n } = normalize(resultData, schemas.modules); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingModules(modules, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingModules(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchModulesList() {\n yield takeEvery(types.MODULES_PARTIAL_FETCH_STARTED, partialFetchModulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addModule(action) {\n const module = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/save`, {\n method: 'POST',\n body: JSON.stringify({ ...module, deviceId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: module.identifier\n });\n const addedModule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingModule(module.deviceId, addedModule));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingModule(module.deviceId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingModule(module.deviceId, error));\n }\n}\n\nexport function* watchAddModulesStarted() {\n yield takeEvery(types.MODULE_ADD_STARTED, addModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editModule(action) {\n const module = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/save`, {\n method: 'POST',\n body: JSON.stringify({\n ...module\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedModule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingModule(editedModule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: editedModule.identifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldModule } = yield select((state) => selectors.getModule(state, module.deviceId));\n yield put(actions.failEditingModule(oldModule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldModule } = yield select((state) => selectors.getModule(state, module.deviceId));\n yield put(actions.failEditingModule(oldModule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditModulesStarted() {\n yield takeEvery(types.MODULE_EDIT_STARTED, editModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeModule(action) {\n const { module } = action.payload;\n const moduleId = module.deviceId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedModule = module;\n const response = yield call(fetch, `${API_BASE_URL}/module/delete`, {\n method: 'POST',\n body: JSON.stringify({ moduleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingModule(moduleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: deletedModule.identifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingModule(moduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingModule(moduleId, error));\n }\n}\n\nexport function* watchRemoveModuleStarted() {\n yield takeEvery(types.MODULE_REMOVE_STARTED, removeModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH MODULE */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModule(action) {\n const moduleId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/${moduleId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const module = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingModule(module));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingModule(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingModule(error));\n }\n}\n\nexport function* watchModuleFetchStarted() {\n yield takeEvery(types.MODULE_FETCH_STARTED, fetchModule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Operators */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const operator = new schema.Entity(\n \"operators\",\n {},\n { idAttribute: \"operatorId\" }\n);\nexport const operators = new schema.Array(operator);\n","/* -------------------------------------------------------------------------- */\n/* Schema Contacts */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const contact = new schema.Entity('contacts', {}, { idAttribute: 'contactId' });\nexport const contacts = new schema.Array(contact);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as contactSchemas from 'views/screens/Contacts/schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as operatorSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOperatorsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/operator/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { operators },\n result //order\n } = normalize(resultData, schemas.operators); //normalize data to byId and order\n yield put(actions.completeFetchingOperators(operators, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOperators(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOperators(error));\n }\n}\n\nexport function* watchFetchOperatorsList() {\n yield takeEvery(types.OPERATORS_FETCH_STARTED, fetchOperatorsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOperatorsList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/operator/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { operators },\n result //order\n } = normalize(resultData, schemas.operators); //normalize data to byId and order\n yield put(actions.completePartialFetchingOperators(operators, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOperators(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOperators(error));\n }\n}\n\nexport function* watchPartialFetchOperatorsList() {\n yield takeEvery(types.OPERATORS_PARTIAL_FETCH_STARTED, partialFetchOperatorsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOperator(action) {\n const operator = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/save`, {\n method: 'POST',\n body: JSON.stringify({ ...operator, operatorId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOperator = camelcaseKeys(jsonResult.data.operatorData);\n\n // const operatorContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(operatorContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeAddingOperator(operator.operatorId, addedOperator));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: operator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOperator(operator.operatorId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOperator(operator.operatorId, error));\n }\n}\n\nexport function* watchAddOperatorsStarted() {\n yield takeEvery(types.OPERATOR_ADD_STARTED, addOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOperator(action) {\n const operator = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/save`, {\n method: 'POST',\n body: JSON.stringify(operator),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOperator = camelcaseKeys(jsonResult.data.operatorData);\n\n const operatorContacts = camelcaseKeys(jsonResult.data.contacts);\n const {\n entities: { contacts },\n result //order\n } = normalize(operatorContacts, contactSchemas.contacts); //normalize data to byId and order\n yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeEditingOperator(editedOperator));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: editedOperator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOperator } = yield select((state) =>\n selectors.getOperator(state.operators, operator.operatorId)\n );\n yield put(actions.failEditingOperator(oldOperator, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldOperator } = yield select((state) =>\n selectors.getOperator(state.operators, operator.operatorId)\n );\n yield put(actions.failEditingOperator(oldOperator, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOperatorsStarted() {\n yield takeEvery(types.OPERATOR_EDIT_STARTED, editOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOperator(action) {\n const { operatorId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedOperator = yield select((state) =>\n operatorSelectors.getOperator(state, operatorId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/delete`, {\n method: 'POST',\n body: JSON.stringify({ operatorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOperator(operatorId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: deletedOperator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOperator(operatorId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOperator(operatorId, error));\n }\n}\n\nexport function* watchRemoveOperatorStarted() {\n yield takeEvery(types.OPERATOR_REMOVE_STARTED, removeOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT STANDARD PRICES */\n/* -------------------------------------------------------------------------- */\nfunction* editOperatorStandardPrices(action) {\n const standardPrices = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/saveStandardPrices`, {\n method: 'POST',\n body: JSON.stringify(standardPrices),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOperatorStandardPrices = camelcaseKeys(jsonResult.data);\n\n // console.log('editedOperator', editedOperator);\n yield put(actions.completeEditingOperatorStandardPrices(editedOperatorStandardPrices));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'operators.editStandardPricesSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n yield put(actions.failEditingOperator(standardPrices, error));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'operators.editStandardPricesFailure' })\n }\n });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failEditingOperator(standardPrices, error));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'operators.editStandardPricesFailure' })\n }\n });\n }\n}\n\nexport function* watchEditOperatorStandardPricesStarted() {\n yield takeEvery(types.OPERATOR_EDIT_STANDARD_PRICES_STARTED, editOperatorStandardPrices);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Organizations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const organization = new schema.Entity(\n \"organizations\",\n {},\n { idAttribute: \"organizationId\" }\n);\nexport const organizations = new schema.Array(organization);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as quotationActions from '../../Quotations/actions';\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as types from '../types';\nimport * as selectors from 'views/screens/Organizations/reducers';\nimport * as schemas from '../schemas';\nimport * as contactSchemas from 'views/screens/Contacts/schemas';\nimport * as organizationUsers from '../../../../redux/schemas/organizations-users';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport forEach from 'lodash/forEach';\nimport groupBy from 'lodash/groupBy';\nimport chain from 'lodash/chain';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteOrganizationService,\n getOrganizationsListService,\n saveOrganizationService\n} from '../services';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOrganizationsList(action) {\n getOrganizationsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.organizationList.map((result) => camelcaseKeys(result));\n var usersData = response.data.usersList.map((result) => camelcaseKeys(result));\n const {\n entities: { organizations },\n result //order\n } = normalize(resultData, schemas.organizations); //normalize data to byId and order\n const usersByOrganization = groupBy(usersData, 'organizationId');\n forEach(organizations, (organization) => {\n if (organization.organizationId in usersByOrganization) {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: usersByOrganization[organization.organizationId]\n };\n }\n } else {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: []\n };\n }\n }\n });\n store.dispatch(actions.completeFetchingOrganizations(organizations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingOrganizations(error));\n }\n }\n );\n}\n\nexport function* watchFetchOrganizationsList() {\n yield takeEvery(types.ORGANIZATIONS_FETCH_STARTED, fetchOrganizationsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOrganizationsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getOrganizationsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.organizationList.map((result) => camelcaseKeys(result));\n var usersData = response.data.usersList.map((result) => camelcaseKeys(result));\n const {\n entities: { organizations },\n result //order\n } = normalize(resultData, schemas.organizations); //normalize data to byId and order\n const usersByOrganization = groupBy(usersData, 'organizationId');\n forEach(organizations, (organization) => {\n if (organization.organizationId in usersByOrganization) {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: usersByOrganization[organization.organizationId]\n };\n }\n } else {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: []\n };\n }\n }\n });\n store.dispatch(actions.completeFetchingOrganizations(organizations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingOrganizations(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchOrganizationsList() {\n yield takeEvery(types.ORGANIZATIONS_PARTIAL_FETCH_STARTED, partialFetchOrganizationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganization(action) {\n const { organization, isSelected } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/save`, {\n method: 'POST',\n body: JSON.stringify({ ...organization, organizationId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOrganization = camelcaseKeys(jsonResult.data.organizationData);\n\n // const organizationContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(organizationContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(\n actions.completeAddingOrganization(organization.organizationId, addedOrganization)\n );\n\n if (organization.quotationId)\n yield put(\n quotationActions.changeQuotationOrganization(\n {\n quotationId: organization.quotationId,\n baseQuotationId: organization.baseQuotationId\n },\n {\n organizationId: addedOrganization?.organizationId,\n organizationName: addedOrganization?.organizationName,\n organizationTaxNumber: addedOrganization?.taxNumber,\n organizationType: addedOrganization?.organizationType\n }\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: organization.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganization(organization.organizationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganization(organization.organizationId, error));\n }\n}\n\nexport function* watchAddOrganizationsStarted() {\n yield takeEvery(types.ORGANIZATION_ADD_STARTED, addOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganization(action) {\n const organization = action.payload;\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state, organization.organizationId)\n );\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/save`, {\n method: 'POST',\n body: JSON.stringify(organization),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOrganization = camelcaseKeys(jsonResult.data.organizationData);\n\n // const organizationContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(organizationContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeEditingOrganization(editedOrganization));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: editedOrganization.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n yield put(actions.failEditingOrganization(oldOrganization, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failEditingOrganization(oldOrganization, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOrganizationsStarted() {\n yield takeEvery(types.ORGANIZATION_EDIT_STARTED, editOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SAVE CONSOLIDABLE EVENTS */\n/* -------------------------------------------------------------------------- */\nfunction* saveConsolidableEvents(action) {\n const { organization, consolidableEvents } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organization/SaveConsolidableEvents`, {\n method: 'POST',\n body: JSON.stringify({ organizationId: organization.organizationId, consolidableEvents }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeSavingConsolidableEvents(organization.organizationId, consolidableEvents)\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'organizations.consolidableEventsSavingSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state.organizations, organization.organizationId)\n );\n yield put(actions.failSavingConsolidableEvents(oldOrganization, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state.organizations, organization.organizationId)\n );\n yield put(actions.failSavingConsolidableEvents(oldOrganization, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSaveConsolidableEventsStarted() {\n yield takeEvery(types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED, saveConsolidableEvents);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganization(action) {\n const { organizationId } = action.payload;\n const organization = yield select((state) => selectors.getOrganization(state, organizationId));\n deleteOrganizationService(\n { ...organization },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingOrganization(organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingOrganization(organizationId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveOrganizationStarted() {\n yield takeEvery(types.ORGANIZATION_REMOVE_STARTED, removeOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CODE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { organizationId, code } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/validateRegistrationCode`, {\n method: 'POST',\n body: JSON.stringify({ code, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.RegistrationCodeStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchRegistrationCodeStarted() {\n yield takeEvery(types.ORGANIZATION_CODE_CHECK_STARTED, checkRegistrationCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CODE ASSIGN */\n/* -------------------------------------------------------------------------- */\nfunction* assigCode(action) {\n const {\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/assignCode`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeAssigningCode(\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n )\n );\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssigningCode(error));\n }\n}\n\nexport function* watchCodeAssignStarted() {\n yield takeEvery(types.ORGANIZATION_CODE_ASSIGN_STARTED, assigCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/saveDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify({ ...downtimeReason, reasonId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedDowntimeReason = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingOrganizationDowntimeReason(\n downtimeReason.reasonId,\n addedDowntimeReason\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchAddOrganizationDowntimeReasonsStarted() {\n yield takeEvery(types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED, addOrganizationDowntimeReason);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/saveDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify(downtimeReason),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedDowntimeReason = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingOrganizationDowntimeReason(editedDowntimeReason));\n\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchEditOrganizationDowntimeReasonsStarted() {\n yield takeEvery(types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED, editOrganizationDowntimeReason);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/deleteDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify(downtimeReason),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOrganizationDowntimeReason(downtimeReason.reasonId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchRemoveOrganizationDowntimeReasonsStarted() {\n yield takeEvery(\n types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED,\n removeOrganizationDowntimeReason\n );\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Service Classes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const serviceClass = new schema.Entity(\n \"serviceClasses\",\n {},\n { idAttribute: \"serviceClassId\" }\n);\nexport const serviceClasses = new schema.Array(serviceClass);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchServiceClassesList(action) {\n const { filters, isDropdown, isWebPage } = action.payload;\n let urlGet = `${API_BASE_URL}/serviceClass`;\n if (isDropdown) {\n urlGet = `${API_BASE_URL}/serviceClass/allStatus`;\n }\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, urlGet, {\n method: 'POST',\n body: JSON.stringify({ operatorId: isWebPage ? filters?.operatorId : null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { serviceClasses },\n result //order\n } = normalize(resultData, schemas.serviceClasses); //normalize data to byId and order\n yield put(actions.completeFetchingServiceClasses(serviceClasses, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingServiceClasses(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingServiceClasses(error));\n }\n}\n\nexport function* watchFetchServiceClassesList() {\n yield takeEvery(types.SERVICECLASSES_FETCH_STARTED, fetchServiceClassesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addServiceClass(action) {\n const serviceClass = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/save`, {\n method: 'POST',\n body: JSON.stringify({ ...serviceClass, serviceClassId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedServiceClass = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingServiceClass(serviceClass.serviceClassId, addedServiceClass)\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: addedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingServiceClass(serviceClass.serviceClassId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingServiceClass(serviceClass.serviceClassId, error));\n }\n}\n\nexport function* watchAddServiceClassesStarted() {\n yield takeEvery(types.SERVICECLASS_ADD_STARTED, addServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editServiceClass(action) {\n const serviceClass = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/save`, {\n method: 'POST',\n body: JSON.stringify(serviceClass),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedServiceClass = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingServiceClass(editedServiceClass));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: editedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const oldServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClass.serviceClassId)\n );\n yield put(actions.failEditingServiceClass(oldServiceClass, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClass.serviceClassId)\n );\n yield put(actions.failEditingServiceClass(oldServiceClass, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditServiceClassesStarted() {\n yield takeEvery(types.SERVICECLASS_EDIT_STARTED, editServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeServiceClass(action) {\n const { serviceClassId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClassId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/delete`, {\n method: 'POST',\n body: JSON.stringify({ serviceClassId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingServiceClass(serviceClassId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: deletedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingServiceClass(serviceClassId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingServiceClass(serviceClassId, error));\n }\n}\n\nexport function* watchRemoveServiceClassStarted() {\n yield takeEvery(types.SERVICECLASS_REMOVE_STARTED, removeServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH SERVICE CLASS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchServiceClass(action) {\n const serviceClassId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/${serviceClassId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const serviceClass = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingServiceClass(serviceClass));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingServiceClass(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingServiceClass(error));\n }\n}\n\nexport function* watchServiceClassFetchStarted() {\n yield takeEvery(types.SERVICECLASS_FETCH_STARTED, fetchServiceClass);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Subdivisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const subdivision = new schema.Entity(\n \"subdivisions\",\n {},\n { idAttribute: \"subdivisionId\" }\n);\nexport const subdivisions = new schema.Array(subdivision);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSubdivisionsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { subdivisions },\n result //order\n } = normalize(resultData, schemas.subdivisions); //normalize data to byId and order\n yield put(\n actions.completeFetchingSubdivisions(subdivisions, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSubdivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSubdivisions(error));\n }\n}\n\nexport function* watchFetchSubdivisionsList() {\n yield takeEvery(types.SUBDIVISIONS_FETCH_STARTED, fetchSubdivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSubdivisionsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { subdivisions },\n result //order\n } = normalize(resultData, schemas.subdivisions); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingSubdivisions(\n subdivisions,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSubdivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSubdivisions(error));\n }\n}\n\nexport function* watchPartialFetchSubdivisionsList() {\n yield takeEvery(types.SUBDIVISIONS_PARTIAL_FETCH_STARTED, partialFetchSubdivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSubdivision(action) {\n const subdivision = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/save`, {\n method: 'POST',\n body: JSON.stringify({ ...subdivision, subdivisionId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSubdivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSubdivision(subdivision.subdivisionId, addedSubdivision));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: subdivision.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSubdivision(subdivision.subdivisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSubdivision(subdivision.subdivisionId, error));\n }\n}\n\nexport function* watchAddSubdivisionsStarted() {\n yield takeEvery(types.SUBDIVISION_ADD_STARTED, addSubdivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSubdivision(action) {\n const subdivision = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/save`, {\n method: 'POST',\n body: JSON.stringify(subdivision),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSubdivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSubdivision(editedSubdivision));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: editedSubdivision.subdivisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const oldSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivision.subdivisionId)\n );\n yield put(actions.failEditingSubdivision(oldSubdivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivision.subdivisionId)\n );\n yield put(actions.failEditingSubdivision(oldSubdivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSubdivisionsStarted() {\n yield takeEvery(types.SUBDIVISION_EDIT_STARTED, editSubdivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSubdivision(action) {\n const { subdivisionId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivisionId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/delete`, {\n method: 'POST',\n body: JSON.stringify({ subdivisionId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingSubdivision(subdivisionId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: deletedSubdivision.subdivisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSubdivision(subdivisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSubdivision(subdivisionId, error));\n }\n}\n\nexport function* watchRemoveSubdivisionStarted() {\n yield takeEvery(types.SUBDIVISION_REMOVE_STARTED, removeSubdivision);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Units */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const unit = new schema.Entity('units', {}, { idAttribute: 'unitId' });\nexport const units = new schema.Array(unit);\n","/* -------------------------------------------------------------------------- */\n/* Schema Device Metrics */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const deviceMetric = new schema.Entity(\n 'deviceMetrics',\n {},\n { idAttribute: 'deviceMetricId' }\n);\nexport const deviceMetrics = new schema.Array(deviceMetric);\n","/* -------------------------------------------------------------------------- */\n/* Schema Device Actions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const deviceAction = new schema.Entity(\n 'deviceActions',\n {},\n { idAttribute: 'deviceActionId' }\n);\nexport const deviceActions = new schema.Array(deviceAction);\n","/* -------------------------------------------------------------------------- */\n/* Schema Groups */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const group = new schema.Entity('groups', {}, { idAttribute: 'groupId' });\nexport const groups = new schema.Array(group);\n","/* -------------------------------------------------------------------------- */\n/* Schema Reports */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const report = new schema.Entity('reports', {}, { idAttribute: 'reportId' });\nexport const reports = new schema.Array(report);\n","/* -------------------------------------------------------------------------- */\n/* Schema Images */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const image = new schema.Entity('images', {}, { idAttribute: 'imageId' });\nexport const images = new schema.Array(image);\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensors */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensor = new schema.Entity('sensors', {}, { idAttribute: 'sensorId' });\nexport const sensors = new schema.Array(sensor);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\nimport { ENTITY_UNITS } from '../../Entities/constants';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as deviceMetricsSchemas from '../schemas/deviceMetrics';\nimport * as deviceActionsSchemas from '../schemas/deviceActions';\nimport * as groupsSchemas from '../schemas/groups';\nimport * as reportsSchemas from '../schemas/reports';\nimport * as imagesSchemas from '../schemas/images';\nimport * as sensorsSchemas from '../schemas/sensors';\nimport * as types from '../types';\nimport {\n getUnitsListService,\n getUnitsLiveStatusListService,\n getUnitInformationService,\n executeDeviceActionService,\n getUnitHistoricalPositionsReportService,\n acknowledgeUnitEventService,\n updateDeviceService,\n updateSimCardService,\n getUnitByIdService,\n getUnitTrajectoryService\n} from '../services';\nimport { camelize } from 'utility/Utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUnitsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(actions.completeFetchingUnits(units, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnits(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitsList() {\n yield takeEvery(types.UNITS_FETCH_STARTED, fetchUnitsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchUnitsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUnitsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingUnits(units, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingUnits(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchUnitsList() {\n yield takeEvery(types.UNITS_PARTIAL_FETCH_STARTED, partialFetchUnitsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIVE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitsLiveStatusList(action) {\n const operatorId = yield select(entitySelectors.getUserUpdateByEntityOperatorId, ENTITY_UNITS);\n const organizationId = yield select(\n entitySelectors.getUserUpdateByEntityOrganizationId,\n ENTITY_UNITS\n );\n const userFetchDate = yield select(selectors.getUnitLiveFetchDate, organizationId);\n\n getUnitsLiveStatusListService(\n { operatorId, organizationId, userFetchDate },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(actions.completeFetchingUnitsLiveStatus(units, result, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitsLiveStatus(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitsLiveStatusList() {\n yield takeEvery(types.UNITS_LIVE_STATUS_FETCH_STARTED, fetchUnitsLiveStatusList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH INFORMATION */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitInformation(action) {\n const { unitId } = action.payload;\n\n getUnitInformationService(\n { unitId },\n {\n successAction: (response) => {\n const resultData = response.data;\n //Unit data Live Status\n const unitData = camelcaseKeys(resultData.unitData);\n //Unit device metrics\n const unitMetrics = resultData.unitMetrics.map((result) => camelcaseKeys(result));\n const {\n entities: { deviceMetrics: deviceMetricsEntities },\n result: deviceMetricsOrder //order\n } = normalize(unitMetrics, deviceMetricsSchemas.deviceMetrics); //normalize data to byId and order\n\n //Unit device actions\n const unitActions = resultData.unitActions.map((result) => camelcaseKeys(result));\n const {\n entities: { deviceActions: deviceActionsEntities },\n result: deviceActionsOrder //order\n } = normalize(unitActions, deviceActionsSchemas.deviceActions); //normalize data to byId and order\n\n //Unit groups\n const groupsData = resultData.groupsData.map((result) => camelcaseKeys(result));\n const {\n entities: { groups: groupsEntities },\n result: groupsOrder //order\n } = normalize(groupsData, groupsSchemas.groups); //normalize data to byId and order\n\n //Unit Reports\n const unitReports = resultData.unitReports.map((result) => camelcaseKeys(result));\n const {\n entities: { reports: reportsEntities },\n result: reportsOrder //order\n } = normalize(unitReports, reportsSchemas.reports); //normalize data to byId and order\n\n //Unit Images\n const unitImages = resultData.unitImages.map((result) => camelcaseKeys(result));\n const {\n entities: { images: imagesEntities },\n result: imagesOrder //order\n } = normalize(unitImages, imagesSchemas.images); //normalize data to byId and order\n\n //Unit Sensors\n const unitSensorMeasures = resultData.unitSensorMeasures.map((result) =>\n camelcaseKeys(result)\n );\n const {\n entities: { sensors: sensorsEntities },\n result: sensorsOrder //order\n } = normalize(unitSensorMeasures, sensorsSchemas.sensors); //normalize data to byId and order\n\n store.dispatch(\n actions.completeFetchingUnitInformation(\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitInformation(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitInformationStarted() {\n yield takeEvery(types.UNIT_INFORMATION_FETCH_STARTED, fetchUnitInformation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIVE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitHistoricalPositionsReport(action) {\n const { unitId, reportType, startDate, endDate, idleSpeed } = action.payload;\n\n getUnitHistoricalPositionsReportService(\n { unitId, reportType, startDate, endDate, idleSpeed },\n {\n successAction: (response) => {\n const distance = response.data.distance;\n const parkedPositions = response.data?.parkedPositions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `parkedPosition-${i}`\n }));\n const polyline = response.data?.polyline?.map((result) => camelcaseKeys(result));\n const positions = response.data?.positions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `position-${i}`\n }));\n store.dispatch(\n actions.completeFetchingUnitPositions(\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitPositions(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitHistoricalPositionsStarted() {\n yield takeEvery(types.UNIT_POSITIONS_FETCH_STARTED, fetchUnitHistoricalPositionsReport);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH TRAJECTORY */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitTrajectory(action) {\n const { unitId, limit } = action.payload;\n\n getUnitTrajectoryService(\n { unitId, limit },\n {\n successAction: (response) => {\n const distance = response.data.distance;\n const parkedPositions = response.data?.parkedPositions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `parkedPosition-${i}`\n }));\n const polyline = response.data?.polyline?.map((result) => camelcaseKeys(result));\n const positions = response.data?.positions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `position-${i}`\n }));\n store.dispatch(\n actions.completeFetchingUnitTrajectory(\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitTrajectory(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitTrajectoryStarted() {\n yield takeEvery(types.UNIT_TRAJECTORY_FETCH_STARTED, fetchUnitTrajectory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EXECUTE DEVICE ACTION */\n/* -------------------------------------------------------------------------- */\nfunction* executeDeviceAction(action) {\n const { unitId, deviceActionId, parameters } = action.payload;\n\n executeDeviceActionService({\n unitId,\n deviceActionId,\n parameters\n });\n}\n\nexport function* watchExecuteDeviceAction() {\n yield takeEvery(types.UNIT_EXECUTE_DEVICE_ACTION, executeDeviceAction);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addUnit(action) {\n const unit = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/save`, {\n method: 'POST',\n body: JSON.stringify({ ...unit, unitId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedUnit = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingUnit(unit.unitId, addedUnit));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'units.unit'\n }),\n name: unit.unitName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingUnit(unit.unitId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingUnit(unit.unitId, error));\n }\n}\n\nexport function* watchAddUnitsStarted() {\n yield takeEvery(types.UNIT_ADD_STARTED, addUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editUnit(action) {\n const unit = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/save`, {\n method: 'POST',\n body: JSON.stringify(unit),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingUnit(editedUnit));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'units.unit'\n }),\n name: unit.unitName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldUnit } = yield select((state) => selectors.getUnit(state.units, unit.unitId));\n yield put(actions.failEditingUnit(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n\n //store.dispatch(actions.startFetchingUnits());\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldUnit } = yield select((state) => selectors.getUnit(state.units, unit.unitId));\n yield put(actions.failEditingUnit(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditUnitsStarted() {\n yield takeEvery(types.UNIT_EDIT_STARTED, editUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UNIT ACKNOWLEDGE */\n/* -------------------------------------------------------------------------- */\nfunction* acknowledgeUnitEvent(action) {\n const { unitId } = action.payload;\n acknowledgeUnitEventService(\n { unitId },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAcknowledgeUnitEvent(unitId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAcknowledgeUnitEvent(error));\n }\n }\n );\n}\n\nexport function* watchAcknowledgeUnitEvent() {\n yield takeEvery(types.UNIT_ACKNOWLEDGE_STARTED, acknowledgeUnitEvent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeUnit(action) {\n const unitBody = action.payload;\n const units = unitBody.units;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/delete`, {\n method: 'POST',\n body: JSON.stringify({ units }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingUnit(unitBody.units, unitBody.unitsName));\n alerts.showSuccessDisabledMessage({\n object: appIntl().formatMessage({\n id: unitBody.units.length > 1 ? 'units.units' : 'units.unit'\n }),\n multiple: unitBody.units.length > 1,\n altText: true,\n name: unitBody.unitsName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingUnit(unitBody.units, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingUnit(unitBody.units, error));\n }\n}\n\nexport function* watchRemoveUnitStarted() {\n yield takeEvery(types.UNIT_REMOVE_STARTED, removeUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ACTIVE UNITS */\n/* -------------------------------------------------------------------------- */\nfunction* activeUnits(action) {\n const units = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/updateUnitStatus`, {\n method: 'POST',\n body: JSON.stringify(units),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeActivingUnits(units));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'units.unitsWereSuccessfullyActived'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'units.unitsActivationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failActivingUnits(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'units.unitsActivationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failActivingUnits(error));\n }\n}\n\nexport function* watchActiveUnits() {\n yield takeEvery(types.UNITS_ACTIVE_STARTED, activeUnits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN DRIVER */\n/* -------------------------------------------------------------------------- */\nfunction* assignDriver(action) {\n const units = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/assignDriver`, {\n method: 'POST',\n body: JSON.stringify(units),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAssigningDriverUnits(units));\n units[0].driverName && units[0].driverName !== ''\n ? alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: units.length > 1 ? 'drivers.drivers' : 'drivers.driver'\n }),\n name: units.length > 1 ? '' : units[0].driverName,\n plural: units.length > 1\n })\n : alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'drivers.driver'\n })\n });\n\n /* store.dispatch(actions.startFetchingUnits()); */\n store.dispatch(actions.startFetchingUnitsLiveStatus());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignDriverUnitsStarted() {\n yield takeEvery(types.UNITS_ASSIGN_DRIVER_STARTED, assignDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* START UNIT DOWNTIME */\n/* -------------------------------------------------------------------------- */\nfunction* startUnitDowntime(action) {\n const { unitId, reasonId } = action.payload;\n try {\n //const { unit } = yield select((state) => selectors.getUnit(state.units, unitId));\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/startDowntime`, {\n method: 'POST',\n body: JSON.stringify({ unitId, reasonId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeStartDowntimeUnit(\n unitId,\n editedUnit.reasonId,\n editedUnit.reasonDescription\n )\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'units.startDowntimeSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.startDowntimeFailure' }) }\n });\n yield put(actions.failStartDowntimeUnit(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.startDowntimeFailure' }) }\n });\n yield put(actions.failStartDowntimeUnit(error));\n }\n}\n\nexport function* watchStartUnitDowntimeStarted() {\n yield takeEvery(types.UNIT_START_DOWNTIME_STARTED, startUnitDowntime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* END UNIT DOWNTIME */\n/* -------------------------------------------------------------------------- */\nfunction* endUnitDowntime(action) {\n const { unitId } = action.payload;\n try {\n //const { unit } = yield select((state) => selectors.getUnit(state.units, unitId));\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/endDowntime`, {\n method: 'POST',\n body: JSON.stringify({ unitId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeEndDowntimeUnit(unitId, editedUnit.mainStateId, editedUnit.mainStateDate)\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'units.endDowntimeSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.endDowntimeFailure' }) }\n });\n yield put(actions.failEndDowntimeUnit(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.endDowntimeFailure' }) }\n });\n yield put(actions.failEndDowntimeUnit(error));\n }\n}\n\nexport function* watchEndUnitDowntimeStarted() {\n yield takeEvery(types.UNIT_END_DOWNTIME_STARTED, endUnitDowntime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CREATE SHARED LINK */\n/* -------------------------------------------------------------------------- */\nfunction* createSharedLink(action) {\n const { unitId, unitName, emails, ttl } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/unit/shareUnitLocationLink`, {\n method: 'POST',\n body: JSON.stringify({ unitId, unitName, emails, ttl }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const sharedLink = jsonResult.data;\n yield put(actions.completeCreatingShareLink(sharedLink));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'common.sharedLinkCreatedSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'common.sharedLinkCreatingFailure' })\n }\n });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchCreateSharedLinkUnitStarted() {\n yield takeEvery(types.UNIT_CREATE_SHARE_LINK_STARTED, createSharedLink);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE DEVICE */\n/* -------------------------------------------------------------------------- */\nfunction* updateDevice(action) {\n const requestData = action.payload;\n const oldUnitId = requestData.unitId;\n const additionalOnSuccess = requestData.additionalOnSuccess;\n updateDeviceService(requestData, {\n successAction(response) {\n const [data] = camelize(response?.data);\n store.dispatch(actions.completeUpdateDevice(data));\n if (typeof additionalOnSuccess === 'function') additionalOnSuccess();\n },\n errorAction(error) {\n store.dispatch(actions.failUpdateDevice(oldUnitId, error.toString()));\n }\n });\n}\n\nexport function* watchUpdateDevice() {\n yield takeEvery(types.UNIT_UPDATE_DEVICE_STARTED, updateDevice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE SIM */\n/* -------------------------------------------------------------------------- */\nfunction* updateSim(action) {\n const requestData = action.payload;\n const oldUnitId = requestData.unitId;\n const additionalOnSuccess = requestData?.additionalOnSuccess;\n\n updateSimCardService(requestData, {\n successAction(response) {\n const [data] = camelize(response?.data);\n store.dispatch(actions.completeUpdateSim(data));\n if (typeof additionalOnSuccess === 'function') additionalOnSuccess();\n },\n errorAction(error) {\n store.dispatch(actions.failUpdateSim(oldUnitId, error?.toString() ?? ''));\n }\n });\n}\n\nexport function* watchUpdateSim() {\n yield takeEvery(types.UNIT_UPDATE_SIM_STARTED, updateSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* GET UNIT BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchUnitById(action) {\n const unitId = action.payload;\n getUnitByIdService(\n {\n unitId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingUnit(resultData, [resultData.unitId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnit(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitById() {\n yield takeEvery(types.UNIT_FETCH_STARTED, fetchUnitById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Schedules */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const schedule = new schema.Entity('schedules', {}, { idAttribute: 'scheduleId' });\nexport const schedules = new schema.Array(schedule);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as scheduleSelectors from '../reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport * as utility from '../../../../utility/Utils';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { addSchedulesDescription } from '../utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSchedulesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { schedules },\n result //order\n } = normalize(resultData, schemas.schedules); //normalize data to byId and order\n yield put(actions.completeFetchingSchedules(schedules, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSchedules(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSchedules(error));\n }\n}\n\nexport function* watchFetchSchedulesList() {\n yield takeEvery(types.SCHEDULES_FETCH_STARTED, fetchSchedulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSchedulesList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { schedules },\n result //order\n } = normalize(resultData, schemas.schedules); //normalize data to byId and order\n yield put(actions.completePartialFetchingSchedules(schedules, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSchedules(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSchedules(error));\n }\n}\n\nexport function* watchPartialFetchSchedulesList() {\n yield takeEvery(types.SCHEDULES_PARTIAL_FETCH_STARTED, partialFetchSchedulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSchedule(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveTrigger`, {\n method: 'POST',\n body: JSON.stringify({ ...schedule, scheduleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSchedule(schedule.scheduleId, addedSchedule));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: schedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n}\n\nexport function* watchAddSchedulesStarted() {\n yield takeEvery(types.SCHEDULE_ADD_STARTED, addSchedule);\n}\n\nexport function* completeAddingSchedule({ payload }) {\n const { oldId, schedule } = payload;\n yield put(actions.startFetchingSchedules());\n}\n\nexport function* watchAddSchedulesCompleted() {\n yield takeEvery(types.SCHEDULE_ADD_COMPLETED, addSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSchedule(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveTrigger`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSchedule(editedSchedule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: editedSchedule.scheduleName\n });\n yield put(actions.startFetchingSchedules());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingSchedule(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingSchedule(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSchedulesStarted() {\n yield takeEvery(types.SCHEDULE_EDIT_STARTED, editSchedule);\n}\n\n// added in order to resolve problem of not refreshing the schedule list after editing a schedule\nfunction* completeEditSchedule(action) {\n const schedule = action.payload;\n yield put(actions.startFetchingSchedules());\n}\n\nexport function* watchCompleteEditSchedule() {\n yield takeEvery(types.SCHEDULE_EDIT_COMPLETED, completeEditSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD SHIFT */\n/* -------------------------------------------------------------------------- */\nfunction* addShift(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveShift`, {\n method: 'POST',\n body: JSON.stringify({ ...schedule, scheduleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSchedule(schedule.scheduleId, addedSchedule));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: schedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n}\n\nexport function* watchAddShiftStarted() {\n yield takeEvery(types.SCHEDULE_SHIFT_ADD_STARTED, addShift);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT SHIFT */\n/* -------------------------------------------------------------------------- */\nfunction* editScheduleShift(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveShift`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingShift(editedSchedule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: editedSchedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingShift(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingShift(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSchedulesShiftStarted() {\n yield takeEvery(types.SCHEDULE_SHIFT_EDIT_STARTED, editScheduleShift);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSchedule(action) {\n const { scheduleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/delete`, {\n method: 'POST',\n body: JSON.stringify({ scheduleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const scheduleDeleted = yield select(scheduleSelectors.getSchedule, scheduleId);\n yield put(actions.completeRemovingSchedule(scheduleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: scheduleDeleted?.scheduleName\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'schedules.scheduleDeleteMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSchedule(scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'schedules.scheduleDeleteMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSchedule(scheduleId, error));\n }\n}\n\nexport function* watchRemoveScheduleStarted() {\n yield takeEvery(types.SCHEDULE_REMOVE_STARTED, removeSchedule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema bookmarks */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const bookmark = new schema.Entity(\n \"bookmarks\",\n {},\n { idAttribute: \"id\" }\n);\nexport const bookmarks = new schema.Array(bookmark);\n","/* eslint-disable semi */\n/* -------------------------------------------------------------------------- */\n/* Saga Auth */\n/* -------------------------------------------------------------------------- */\n\nimport camelcaseKeys from 'camelcase-keys';\nimport jwtDecode from 'jwt-decode';\nimport { normalize } from 'normalizr';\nimport { call, delay, put, select, takeEvery } from 'redux-saga/effects';\nimport sidebarOptions, * as sidebar from '../../../navigation/vertical';\nimport outsideSidebarOptions, * as outsideSidebar from '../../../navigation/outside-sidebar';\nimport * as actions from '../../actions/auth';\nimport * as navbarActions from '../../actions/navbar';\nimport * as selectors from '../../reducers/auth';\nimport * as navbarSelectors from '../../reducers/navbar';\nimport * as schemas from '../../schemas/bookmarks';\nimport * as types from '../../types/auth';\nimport * as navbarTypes from '../../types/navbar';\nimport * as alerts from '../../utils/alerts';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport TOKEN_LIFE_TIME from '../settings/tokenLifeTime';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { getTokenRefreshFailCount } from '../../reducers/auth';\n\nfunction* login(action) {\n try {\n let timerInterval;\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/account/login`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n // alerts.closeLoading();\n if (response.status <= 300) {\n const { token } = yield response.json();\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n let userData = camelcaseKeys(jwtDecode(token));\n yield localStorage.setItem('userData', JSON.stringify(userData));\n\n // alerts.showSuccessMessage({\n // success: `Bienvenido ${userData.username}`,\n // timer: 2000,\n // });\n\n // yield put(reset(\"login\"));\n ////////////////////////////////////////\n yield put(actions.completeLogin(token));\n // Obtener informacion adicional del usuario\n // yield put(actions.authenticationUserInformationStarted());\n } else {\n yield put(\n actions.failLogin(\n 'El nombre de usuario y contraseña introducidos no coinciden con nuestros registros. Revísalos e inténtalo de nuevo.'\n )\n );\n\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage:\n 'El nombre de usuario y contraseña introducidos no coinciden con nuestros registros. Revísalos e inténtalo de nuevo.'\n }\n });\n }\n } catch (error) {\n yield put(actions.failLogin('Falló la autentitación.'));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage:\n 'El nombre de usuario y contraseña introducidos no coinciden con nuestros registros. Revísalos e inténtalo de nuevo.'\n }\n });\n }\n}\n\nexport function* watchLoginStarted() {\n yield takeEvery(types.AUTHENTICATION_STARTED, login);\n}\n\nfunction* userInformationRequest(action) {\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n const userId = yield select(selectors.getAuthUserID);\n\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n\n const responseSuperAdmin = yield call(fetch, `${API_BASE_URL}/superAdmins/${userId}/`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `JWT ${token}`\n }\n });\n\n if (responseSuperAdmin.status <= 300) {\n const jsonResultUser = yield responseSuperAdmin.json();\n yield put(actions.authenticationUserInformationCompleted(jsonResultUser));\n } else {\n const responseRestaurantAdmin = yield call(\n fetch,\n `${API_BASE_URL}/restaurantAdmins/${userId}/`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `JWT ${token}`\n }\n }\n );\n\n if (responseRestaurantAdmin.status <= 300) {\n const jsonResultUser = yield responseRestaurantAdmin.json();\n yield put(actions.authenticationUserInformationCompleted(jsonResultUser));\n } else {\n yield put(actions.logout());\n }\n }\n }\n } catch (error) {\n yield put(actions.logout());\n yield put(actions.failRefreshToken('Falló la conexión'));\n }\n}\n\nexport function* watchUserInformationRequest() {\n yield takeEvery(types.AUTHENTICATION_USER_INFORMATION_STARTED, userInformationRequest);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REFRESH TOKEN */\n/* -------------------------------------------------------------------------- */\nfunction* refreshToken(action) {\n const tokenRefreshFailCount = yield select(getTokenRefreshFailCount);\n try {\n const isAuth = yield select((state) => state.auth.token != null);\n const token = yield select((state) => state.auth.token);\n\n const expiration = yield select((state) => state.auth.user.exp);\n const now = parseInt(new Date().getTime() / 1000);\n\n if (expiration - now < TOKEN_LIFE_TIME / 2) {\n const response = yield call(fetch, `${API_BASE_URL}/account/refresh-token`, {\n method: 'POST',\n body: JSON.stringify({ token }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n if (response.status === 200) {\n const { token } = yield response.json();\n yield put(actions.completeRefreshToken(token));\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n yield localStorage.setItem('userData', JSON.stringify(camelcaseKeys(jwtDecode(token))));\n } else {\n if (tokenRefreshFailCount && tokenRefreshFailCount >= 2) yield put(actions.logout());\n const { non_field_errors } = yield response.json();\n yield put(actions.failRefreshToken({ ...non_field_errors[0], tokenRefreshFailCount }));\n yield delay(200);\n }\n }\n } catch (error) {\n if (tokenRefreshFailCount && tokenRefreshFailCount >= 2) yield put(actions.logout());\n\n yield put(actions.failRefreshToken('Falló la conexión'));\n }\n}\n\nexport function* watchRefreshTokenStarted() {\n yield takeEvery(types.TOKEN_REFRESH_STARTED, refreshToken);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FORCE REFRESH TOKEN WHEN PROFILE UPDATED */\n/* -------------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------------- */\n/* REFRESH TOKEN */\n/* -------------------------------------------------------------------------- */\nfunction* forceRefreshToken(action) {\n const token = yield select((state) => state.auth.token);\n\n try {\n const response = yield call(fetch, `${API_BASE_URL}/account/refresh-token`, {\n method: 'POST',\n body: JSON.stringify({ token }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n if (response.status === 200) {\n const { token } = yield response.json();\n yield put(actions.completeRefreshToken(token));\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n yield localStorage.setItem('userData', JSON.stringify(camelcaseKeys(jwtDecode(token))));\n } else {\n // yield put(actions.logout());\n // const { non_field_errors } = yield response.json();\n // yield put(actions.failRefreshToken(non_field_errors[0]));\n // yield delay(200);\n }\n } catch (error) {\n // yield put(actions.logout());\n // yield put(actions.failRefreshToken('Falló la conexión'));\n }\n}\n\nexport function* watchForceRefreshToken() {\n yield takeEvery(\n [\n types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED,\n types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED,\n types.PROFILE_UPDATE_PASSWORD_COMPLETED,\n types.PROFILE_UPDATE_PICTURE_COMPLETED,\n types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED,\n types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED,\n types.TOKEN_REFRESH_FORCE_STARTED,\n types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED\n ],\n forceRefreshToken\n );\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH BOOKMARKS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUserBookmarks(action) {\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/account/userSettings`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const bookmarkSetting = jsonResult.data.filter(\n (setting) => camelcaseKeys(setting).settingId == 19\n );\n const bookmarkSettingValue =\n bookmarkSetting.length == 1 ? camelcaseKeys(bookmarkSetting[0]).settingValue : '';\n const bookmarkIds =\n (bookmarkSettingValue ?? '') != '' ? bookmarkSettingValue.split(',') : [];\n const optionsSuggestions = [\n ...sidebar.getOptions(sidebarOptions),\n ...sidebar.getOptions(outsideSidebarOptions)\n ];\n const {\n entities: {\n bookmarks //byId\n },\n result //order\n } = normalize(optionsSuggestions, schemas.bookmarks); //normalize data to byId and order\n let userBookmarks = bookmarkIds.map((id) => {\n bookmarks[id] = {\n ...bookmarks[id],\n isBookmarked: true\n };\n return {\n ...bookmarks[id]\n };\n });\n let newSuggestions = result.map((id) => bookmarks[id]);\n\n yield put(navbarActions.completeFetchingBookmarks(userBookmarks, newSuggestions));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.failFetchingBookmarks());\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.failFetchingBookmarks());\n }\n}\n\nexport function* watchFetchUserBookmarksStarted() {\n yield takeEvery(navbarTypes.GET_BOOKMARKS_FETCH_STARTED, fetchUserBookmarks);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD USER BOOKMARK */\n/* -------------------------------------------------------------------------- */\nfunction* updateUserBookmarks(action) {\n // const id = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n const userBookmarks = yield select(navbarSelectors.getUserBookmarks);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n const userBookmarksSettingsValue = userBookmarks.map((ub) => ub.id).toString();\n const response = yield call(fetch, `${API_BASE_URL}/account/saveUserSettings`, {\n method: 'POST',\n body: JSON.stringify({\n settingId: 19,\n settingValue: userBookmarksSettingsValue\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n // const updateUserSettings = camelcaseKeys(jsonResult.data);\n yield put(navbarActions.updateBookmarkedCompleted());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.updateBookmarkedFailed());\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.updateBookmarkedFailed());\n }\n}\n\nexport function* watchUpdateUserBookmarkssStarted() {\n yield takeEvery(navbarTypes.UPDATE_BOOKMARKED_STARTED, updateUserBookmarks);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE GENERAL INFORMATION */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfileGeneralInformation(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n yield delay(2000);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveProfile`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileGeneralInformation(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileGeneralInformation(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileGeneralInformation(error));\n }\n}\n\nexport function* watchUpdateProfileGeneralInformationStarted() {\n yield takeEvery(\n types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED,\n updateProfileGeneralInformation\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE MAP SETTINGS CONFIG */\n/* -------------------------------------------------------------------------- */\nfunction* updateMapProfileSettings(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/account/saveUserSettingsMap`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMapSettingsConfiguration(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapSettingsConfiguration(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapSettingsConfiguration(error));\n }\n}\n\nexport function* watchUpdateMapProfileSettingsStarted() {\n yield takeEvery(\n types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED,\n updateMapProfileSettings\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE MAP OPTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfileMapOptions(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveMapOptions`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.mapOptions.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileMapOptions(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileMapOptions(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileMapOptions(error));\n }\n}\n\nexport function* watchUpdateProfileMapOptionsStarted() {\n yield takeEvery(types.PROFILE_UPDATE_MAP_OPTIONS_STARTED, updateProfileMapOptions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE PASSWORD */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfilePassword(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/password`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changePassword.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfilePassword(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfilePassword(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfilePassword(error));\n }\n}\n\nexport function* watchUpdateProfilePasswordStarted() {\n yield takeEvery(types.PROFILE_UPDATE_PASSWORD_STARTED, updateProfilePassword);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE HOME SCREEN */\n/* -------------------------------------------------------------------------- */\nfunction* updateHomeScreen(action) {\n const homeScreenId = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/homeScreen`, {\n method: 'POST',\n body: JSON.stringify({\n homeScreenId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileHomeScreen(homeScreenId));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileHomeScreen(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileHomeScreen(error));\n }\n}\n\nexport function* watchUpdateProfileHomeScreenStarted() {\n yield takeEvery(types.PROFILE_UPDATE_HOME_SCREEN_STARTED, updateHomeScreen);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PRODUCT */\n/* -------------------------------------------------------------------------- */\nfunction* changeProduct(action) {\n const serviceId = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n /*const response = yield call(fetch, `${API_BASE_URL}/profile/service`, {\n method: 'POST',\n body: JSON.stringify({\n homeScreenId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });*/\n // alerts.closeLoading();\n //const jsonResult = yield response.json();\n //if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changeProduct.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeChangingProduct(serviceId));\n /*} else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeActualService.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileActualService(error));\n }*/\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeProduct.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangingProduct(error));\n }\n}\n\nexport function* watchChangeProductStarted() {\n yield takeEvery(types.PROFILE_CHANGE_PRODUCT_STARTED, changeProduct);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PINNED TAB */\n/* -------------------------------------------------------------------------- */\n\nfunction* updateMapFilterTabPinned(action) {\n const mapEntitiesFilterTab = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveMapFilterTabPinned`, {\n method: 'POST',\n body: JSON.stringify({\n mapEntitiesFilterTab: mapEntitiesFilterTab\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: `profile.mapOptions.pinnedTabSuccessMessage${mapEntitiesFilterTab}`\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMapFilterTabPinned(mapEntitiesFilterTab));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.pinnedTabFailMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapFilterTabPinned(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.pinnedTabFailMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapFilterTabPinned(error));\n }\n}\n\nexport function* watchUpdateMapFilterTabPinnedStarted() {\n yield takeEvery(types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED, updateMapFilterTabPinned);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const route = new schema.Entity('routes', {}, { idAttribute: 'routeId' });\nexport const routes = new schema.Array(route);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Route Checkpoints */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const routeCheckpoint = new schema.Entity(\n 'routeCheckpoints',\n {},\n { idAttribute: (value) => `${value.routeId}-${value.checkpointId}` }\n);\nexport const routeCheckpoints = new schema.Array(routeCheckpoint);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routes';\nimport * as types from '../../types/routes';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routes';\nimport * as schemasRouteCheckpoints from '../../schemas/routeCheckpoints';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\n\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport {\n getRoutesListService,\n saveRouteService,\n deleteRouteService,\n deleteRoutesService\n} from '../../services/routes';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getRoutesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { routes },\n result //order\n } = normalize(resultData, schemas.routes); //normalize data to byId and order\n store.dispatch(actions.completeFetchingRoutes(routes, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingRoutes(error));\n }\n }\n );\n}\n\nexport function* watchFetchRoutesList() {\n yield takeEvery(types.ROUTES_FETCH_STARTED, fetchRoutesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchRoutesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getRoutesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { routes },\n result //order\n } = normalize(resultData, schemas.routes); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingRoutes(routes, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingRoutes(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchRoutesList() {\n yield takeEvery(types.ROUTES_PARTIAL_FETCH_STARTED, partialFetchRoutesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addRoute(action) {\n const route = action.payload;\n\n saveRouteService(\n { ...route, route: { ...route.route, routeId: null } },\n {\n successAction: async (response) => {\n const addedRoute = camelcaseKeys(response.data.routeData);\n const addedCheckpoints = response.data.checkpointList\n .map((result) => camelcaseKeys(result))\n .map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const routeGroupId = response.data.routeGroupId;\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(addedCheckpoints, schemasRouteCheckpoints.routeCheckpoints); //normalize data to byId and order\n store.dispatch(\n actions.completeAddingRoute(route.route.routeId, {\n route: { ...addedRoute, routeGroupId },\n checkpoints: { entities: routeCheckpoints, order: result }\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(actions.failAddingRoute(route.route.routeId, error));\n }\n },\n true\n );\n}\n\nexport function* watchAddRoutesStarted() {\n yield takeEvery(types.ROUTE_ADD_STARTED, addRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editRoute(action) {\n const route = action.payload;\n const { oldRoute } = yield select(selectors.getRoute, route.route.routeId);\n\n saveRouteService(\n route,\n {\n successAction: async (response) => {\n const editedRoute = camelcaseKeys(response.data.routeData);\n const editedCheckpoints = response.data.checkpointList\n .map((result) => camelcaseKeys(result))\n .map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const routeGroupId = response.data.routeGroupId;\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(editedCheckpoints, schemasRouteCheckpoints.routeCheckpoints); //normalize data to byId and order\n store.dispatch(\n actions.completeEditingRoute({\n route: { ...editedRoute, routeGroupId },\n checkpoints: { entities: routeCheckpoints, order: result }\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(actions.failEditingRoute(oldRoute, error));\n }\n },\n false\n );\n}\n\nexport function* watchEditRoutesStarted() {\n yield takeEvery(types.ROUTE_EDIT_STARTED, editRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeRoute(action) {\n const { routeId } = action.payload;\n const routeDeleted = yield select(selectors.getRoute, routeId);\n\n deleteRouteService(\n { routeId, routeName: routeDeleted?.routeName },\n {\n successAction: async (response) => {\n store.dispatch(actions.completeRemovingRoute(routeId));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingRoute(routeId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveRouteStarted() {\n yield takeEvery(types.ROUTE_REMOVE_STARTED, removeRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeRoutes(action) {\n const { routeIds } = action.payload;\n\n deleteRoutesService(\n { routeIds },\n {\n successAction: async (response) => {\n store.dispatch(\n actions.completeRemovingRoutes(routeIds.split(',').map((routeId) => parseInt(routeId)))\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failRemovingRoutes(\n routeIds.split(',').map((routeId) => parseInt(routeId)),\n error\n )\n );\n }\n }\n );\n}\n\nexport function* watchRemoveRoutesStarted() {\n yield takeEvery(types.ROUTES_REMOVE_STARTED, removeRoutes);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy Route */\n/* -------------------------------------------------------------------------- */\nfunction* copyRoute(action) {\n const route = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/copyRoute`, {\n method: 'POST',\n body: JSON.stringify(route),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeCopyRoute(\n route.routeId,\n jsonResult.data.newRouteId,\n route.newRouteName,\n route.organizationId,\n route.divisionId,\n route.subdivisionId\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.copySuccessful'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.copyError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyRoute(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.copyError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyRoute(error));\n }\n}\n\nexport function* watchCopyRouteStarted() {\n yield takeEvery(types.ROUTE_COPY_STARTED, copyRoute);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from 'views/../redux/sagas/settings/apibaseurl.js';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from 'views/../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { appIntl } from 'views/../utility/context/IntlGlobalProvider';\nimport * as alerts from 'views/../redux/utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchContactsList(action) {\n const { query, selected } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contact/getDropdown`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n },\n body: JSON.stringify({ selected: selected })\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contacts },\n result //order\n } = normalize(resultData, schemas.contacts); //normalize data to byId and order\n yield put(actions.completeFetchingContacts(contacts, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContacts(error));\n }\n }\n } catch (err) {\n const error: any = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContacts(error));\n }\n}\n\nexport function* watchFetchContactsList() {\n yield takeEvery(types.CONTACTS_FETCH_STARTED, fetchContactsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addContact(action) {\n const contact = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/save`, {\n method: 'POST',\n body: JSON.stringify({ ...contact, contactId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedContact = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingContact(contact.contactId, addedContact));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contacts.contact'\n }),\n name: contact.contactName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContact(contact.contactId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContact(contact.contactId, error));\n }\n}\n\nexport function* watchAddContactsStarted() {\n yield takeEvery(types.CONTACT_ADD_STARTED, addContact);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editContact(action) {\n const contact = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/save`, {\n method: 'POST',\n body: JSON.stringify(contact),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedContact = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingContact(editedContact));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contacts.contact'\n }),\n name: contact.contactName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldContact } = yield select((state) =>\n selectors.getContact(state.contacts, contact.contactId)\n );\n yield put(actions.failEditingContact(oldContact, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n const oldContact = yield select((state) => selectors.getContact(state, contact.contactId));\n yield put(actions.failEditingContact(oldContact, error));\n }\n}\n\nexport function* watchEditContactsStarted() {\n yield takeEvery(types.CONTACT_EDIT_STARTED, editContact);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeContact(action) {\n const contactBody = action.payload;\n const contacts = contactBody.contacts;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/delete`, {\n method: 'POST',\n body: JSON.stringify({ contacts }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingContact(contactBody.contacts, contactBody.contactsName));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: contactBody.contacts.length > 1 ? 'contacts.contacts2' : 'contacts.contact'\n }),\n name: contactBody.contactsName,\n multiple: contactBody.contacts.length > 1\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContact(contactBody.contacts, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContact(contactBody.contacts, error));\n }\n}\n\nexport function* watchRemoveContactsStarted() {\n yield takeEvery(types.CONTACT_REMOVE_STARTED, removeContact);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routeCheckpoints';\nimport * as types from '../../types/routeCheckpoints';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routeCheckpoints';\nimport * as schemasRouteCheckpoints from '../../schemas/routeCheckpoints';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\n\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { getRouteCheckpointsListService } from '../../services/routeCheckpoints';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRouteCheckpointsList(action) {\n const routeId = action.payload;\n\n getRouteCheckpointsListService(\n { routeId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const finalResultData = resultData.map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(finalResultData, schemas.routeCheckpoints); //normalize data to byId and order\n store.dispatch(actions.completeFetchingRouteCheckpoints(routeCheckpoints, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingRouteCheckpoints(error));\n }\n }\n );\n}\n\nexport function* watchFetchRouteCheckpointsList() {\n yield takeEvery(types.ROUTE_CHECKPOINTS_FETCH_STARTED, fetchRouteCheckpointsList);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routesAssignments';\nimport * as types from '../../types/routesAssignments';\nimport * as selectors from '../../reducers/routesAssignments';\nimport * as schemas from '../../schemas/routesAssignments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteAssignmentService,\n getRouteAssignmentsListService,\n importRouteAssignmentsService,\n saveAssignmentService\n} from '../../services/routesAssignments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssignmentsList(action) {\n const { startDate, endDate, organizationId, divisionId, subdivisionId } = action.payload;\n\n getRouteAssignmentsListService(\n { startDate, endDate, organizationId, divisionId, subdivisionId },\n {\n successAction: (response) => {\n const resultDataByDate = response.data.assignmentsByDate.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 1\n }));\n const resultDataBySchedule = response.data.assignmentsBySchedule.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 2\n }));\n const {\n entities: { assignmentsByDate },\n result: orderByDate //order\n } = normalize(resultDataByDate, schemas.assignmentsByDate); //normalize data to byId and order\n const {\n entities: { assignmentsBySchedule },\n result: orderBySchedule //order\n } = normalize(resultDataBySchedule, schemas.assignmentsBySchedule); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingAssignments(\n assignmentsByDate,\n orderByDate,\n assignmentsBySchedule,\n orderBySchedule\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssignments(error));\n }\n }\n );\n}\n\nexport function* watchFetchAssignmentsList() {\n yield takeEvery(types.ROUTES_ASSIGNMENTS_FETCH_STARTED, fetchAssignmentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignment(action) {\n const assignment = action.payload;\n const { oldAssignment } = yield select((state) =>\n selectors.getRoutesAssignment(state, assignment.routeAssignmentId)\n );\n saveAssignmentService(\n {\n ...assignment,\n routeAssignmentId: oldAssignment.routeAssignmentId,\n routeId: oldAssignment.routeId,\n unitId: oldAssignment.unitId,\n scheduleId: oldAssignment.scheduleId,\n unitName: oldAssignment.unitName\n },\n {\n successAction: (response) => {\n const editedAssignment = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditingAssignment(assignment.routeAssignmentId, editedAssignment)\n );\n },\n errorAction: (error) => {\n store.dispatch(\n actions.failEditingAssignment(assignment.routeAssignmentId, oldAssignment, error)\n );\n }\n }\n );\n}\n\nexport function* watchEditAssignmentsStarted() {\n yield takeEvery(types.ROUTES_ASSIGNMENT_EDIT_STARTED, editAssignment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAssignment(action) {\n const { routeAssignmentId } = action.payload;\n const deletedAssignment = yield select((state) =>\n selectors.getRoutesAssignment(state, routeAssignmentId)\n );\n deleteAssignmentService(\n { ...deletedAssignment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingAssignment(routeAssignmentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingAssignment(routeAssignmentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveAssignmentStarted() {\n yield takeEvery(types.ROUTES_ASSIGNMENT_REMOVE_STARTED, removeAssignment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* importRouteAssignments(action) {\n const { routeAssignments } = action.payload;\n\n importRouteAssignmentsService(\n { ...routeAssignments },\n {\n successAction: (response) => {\n const resultDataByDate = response.data.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 1\n }));\n const {\n entities: { assignmentsByDate },\n result: orderByDate //order\n } = normalize(resultDataByDate, schemas.assignmentsByDate); //normalize data to byId and order\n store.dispatch(actions.completeImportingRouteAssignments(assignmentsByDate, orderByDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingRouteAssignments(error));\n }\n }\n );\n}\n\nexport function* watchImportRouteAssignments() {\n yield takeEvery(types.ROUTES_ASSIGNMENTS_IMPORT_STARTED, importRouteAssignments);\n}\n","import * as types from '../../types/routesComments';\n\nexport const startFetchingComments = (routeAssignmentId) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED,\n payload: { routeAssignmentId }\n});\nexport const completeFetchingComments = (entities, order) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingComments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_STARTED,\n payload: comment\n});\nexport const completeAddingComment = (oldId, comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED,\n payload: { oldId, comment }\n});\nexport const failAddingComment = (oldId, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED,\n payload: comment\n});\nexport const completeEditingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED,\n payload: comment\n});\nexport const failEditingComment = (oldComment, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED,\n payload: {\n oldComment,\n error\n }\n});\n\nexport const startRemovingComment = (routeCommentId) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED,\n payload: {\n routeCommentId\n }\n});\nexport const completeRemovingComment = (routeCommentId) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED,\n payload: {\n routeCommentId\n }\n});\nexport const failRemovingComment = (routeCommentId, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_FAILED,\n payload: {\n routeCommentId,\n error\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const comment = new schema.Entity('comments', {}, { idAttribute: 'routeCommentId' });\nexport const comments = new schema.Array(comment);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routesComments';\nimport * as types from '../../types/routesComments';\nimport * as selectors from '../../reducers/routesComments';\nimport * as schemas from '../../schemas/routesComments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteCommentService,\n getRouteCommentsListService,\n saveCommentService\n} from '../../services/routesComments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCommentsList(action) {\n const { routeAssignmentId } = action.payload;\n\n getRouteCommentsListService(\n { routeAssignmentId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { comments },\n result //order\n } = normalize(resultData, schemas.comments); //normalize data to byId and order\n store.dispatch(actions.completeFetchingComments(comments, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingComments(error));\n }\n }\n );\n}\n\nexport function* watchFetchCommentsList() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED, fetchCommentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addComment(action) {\n const comment = action.payload;\n saveCommentService(\n { ...comment, routeCommentId: null },\n {\n successAction: (response) => {\n const addedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingComment(comment.routeCommentId, addedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingComment(comment.routeCommentId, error));\n }\n }\n );\n}\n\nexport function* watchAddCommentsStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_ADD_STARTED, addComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editComment(action) {\n const comment = action.payload;\n const { oldComment } = yield select((state) =>\n selectors.getRoutesComment(state, comment.routeCommentId)\n );\n saveCommentService(\n { ...comment },\n {\n successAction: (response) => {\n const editedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingComment(editedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingComment(oldComment, error));\n }\n }\n );\n}\n\nexport function* watchEditCommentsStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED, editComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeComment(action) {\n const { routeCommentId } = action.payload;\n const deletedComment = yield select((state) => selectors.getRoutesComment(state, routeCommentId));\n deleteCommentService(\n { ...deletedComment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingComment(routeCommentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingComment(routeCommentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveCommentStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED, removeComment);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const routeExecution = new schema.Entity(\n 'routesExecutions',\n {},\n { idAttribute: 'routeAssignmentId' }\n);\nexport const routesExecutions = new schema.Array(routeExecution);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/routesExecutions';\nimport * as types from '../../types/routesExecutions';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routesExecutions';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n changeToAlternateRouteService,\n saveRouteExecutionService\n} from '../../services/routeExecution';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST EXECUTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesExecutions(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/route/getExecutions`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n const { scheduledBySchedule } = camelcaseKeys(jsonResult.data.scheduledBySchedule);\n const { totalNotShown } = camelcaseKeys(jsonResult.data.totalNotShown);\n const resultData = jsonResult.data.routesList.map((result) => camelcaseKeys(result));\n const {\n entities: { routesExecutions },\n result //order\n } = normalize(resultData, schemas.routesExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingRoutesExecutions(routesExecutions, result, {\n ...indicators,\n scheduledBySchedule,\n totalNotShown\n })\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchMonitorMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchMonitorMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesExecutions(error));\n }\n}\n\nexport function* watchFetchRoutesExecutions() {\n yield takeEvery(types.ROUTES_EXECUTIONS_FETCH_STARTED, fetchRoutesExecutions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editRouteExecution(action) {\n const routeExecution = action.payload;\n const oldRouteExecution = yield select((state) =>\n selectors.getRoutesExecution(state, routeExecution.routeAssignmentId)\n );\n saveRouteExecutionService(\n {\n ...routeExecution,\n routeAssignmentId: oldRouteExecution.routeAssignmentId,\n unitName: oldRouteExecution.unitName\n },\n {\n successAction: (response) => {\n const editedRouteExecution = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditRouteExecution({ ...routeExecution, ...editedRouteExecution })\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditRouteExecution(error));\n }\n }\n );\n}\n\nexport function* watchEditRouteExecutionStarted() {\n yield takeEvery(types.ROUTE_EXECUTION_EDIT_STARTED, editRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* changeToAlternateRoute(action) {\n const { routeAssignmentId, routeId, reason } = action.payload;\n changeToAlternateRouteService(\n { routeAssignmentId, routeId, reason },\n {\n successAction: (response) => {\n if (response.success)\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.successfullyChangeAlternateRoute'\n })\n });\n store.dispatch(actions.completeChangeToAlternateRoute(routeAssignmentId, routeId, reason));\n },\n errorAction: (error) => {\n const errorTxt = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.changeAlternateRouteMessageError'\n })\n };\n alerts.showErrorAlertFailChanges({ error: errorTxt });\n store.dispatch(actions.failChangeToAlternateRoute(error));\n }\n }\n );\n}\n\nexport function* watchChangeToAlternateRouteStarted() {\n yield takeEvery(types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED, changeToAlternateRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Route Execution Unit */\n/* -------------------------------------------------------------------------- */\nfunction* assignRouteExecutionUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(assignation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitRoutesExecutions(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitRoutesExecutions(error));\n }\n}\n\nexport function* watchAsignRouteExecutionUnit() {\n yield takeEvery(types.ROUTES_EXECUTION_ASSIGN_UNIT_STARTED, assignRouteExecutionUnit);\n}\n","import * as types from '../../types/routesReport';\n\nexport const startFetchingRoutesReport = (filters = {}) => ({\n type: types.ROUTES_REPORT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutesReport = (\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n) => ({\n type: types.ROUTES_REPORT_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n }\n});\nexport const failFetchingRoutesReport = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_REPORT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/routesReport';\nimport * as types from '../../types/routesReport';\nimport * as selectors from '../../reducers/routes';\nimport * as routesExecutionsSchemas from '../../schemas/routesExecutions';\nimport * as unitsSchemas from '../../../Units/schemas';\nimport * as routesSchemas from '../../schemas/routes';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST REPORT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesReport(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/route/getReport`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const units = jsonResult.data.units.map((result) => camelcaseKeys(result));\n const {\n entities: { units: unitsEntities },\n result: unitsOrder //order\n } = normalize(units, unitsSchemas.units); //normalize data to byId and order\n\n const routes = jsonResult.data.routes.map((result) => camelcaseKeys(result));\n const {\n entities: { routes: routesEntities },\n result: routesOrder //order\n } = normalize(routes, routesSchemas.routes); //normalize data to byId and order\n\n const resultData = jsonResult.data.routeExecutions.map((result) => camelcaseKeys(result));\n const {\n entities: { routesExecutions },\n result //order\n } = normalize(resultData, routesExecutionsSchemas.routesExecutions); //normalize data to byId and order\n\n yield put(\n actions.completeFetchingRoutesReport(\n routesExecutions,\n result,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchReportMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesReport(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchReportMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesReport(error));\n }\n}\n\nexport function* watchFetchRoutesReport() {\n yield takeEvery(types.ROUTES_REPORT_FETCH_STARTED, fetchRoutesReport);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const monitoringUser = new schema.Entity('monitoringUsers', {}, { idAttribute: 'userName' });\nexport const monitoringUsers = new schema.Array(monitoringUser);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as authActions from '../../../../redux/actions/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as entitySelectors from '../../Entities/reducers';\nimport {\n getUsersListService,\n saveUserService,\n deleteUserService,\n getUserByIdService\n} from '../services';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchMonitoringUsersList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUsersListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { monitoringUsers },\n result //order\n } = normalize(resultData, schemas.monitoringUsers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingMonitoringUsers(\n monitoringUsers,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMonitoringUsers(error));\n }\n }\n );\n}\n\nexport function* watchFetchMonitoringUsersList() {\n yield takeEvery(types.MONITORING_USERS_FETCH_STARTED, fetchMonitoringUsersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchMonitoringUsersList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUsersListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { monitoringUsers },\n result //order\n } = normalize(resultData, schemas.monitoringUsers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingMonitoringUsers(\n monitoringUsers,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingMonitoringUsers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchMonitoringUsersList() {\n yield takeEvery(types.MONITORING_USERS_PARTIAL_FETCH_STARTED, partialFetchMonitoringUsersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addMonitoringUser(action) {\n const monitoringUser = action.payload;\n saveUserService(\n { ...monitoringUser },\n {\n successAction: (response) => {\n const addedMonitoringUser = camelcaseKeys(response?.data[0]);\n store.dispatch(\n actions.completeAddingMonitoringUser(monitoringUser.userName, addedMonitoringUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingMonitoringUser(monitoringUser.userName, error));\n }\n }\n );\n}\n\nexport function* watchAddMonitoringUsersStarted() {\n yield takeEvery(types.MONITORING_USER_ADD_STARTED, addMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editMonitoringUser(action) {\n const monitoringUser = action.payload;\n const oldMonitoringUser = yield select((state) =>\n selectors.getMonitoringUser(state, monitoringUser.oldUserName)\n );\n saveUserService(\n { ...monitoringUser },\n {\n successAction: (response) => {\n const editedMonitoringUser = camelcaseKeys(response?.data[0]);\n store.dispatch(\n actions.completeEditingMonitoringUser(monitoringUser.oldUserName, editedMonitoringUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingMonitoringUser(oldMonitoringUser, error));\n }\n }\n );\n}\n\nexport function* watchEditMonitoringUsersStarted() {\n yield takeEvery(types.MONITORING_USER_EDIT_STARTED, editMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeMonitoringUser(action) {\n const { users, usersName } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/delete`, {\n method: 'POST',\n body: JSON.stringify({ users }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingMonitoringUser(users, usersName));\n\n //verificar si en la lista de usuario eliminados esta incluido el usuario logeado\n const loggedUsername = yield select(authSelectors.getAuthUsername);\n //si esta en la lista, forzamos un logout\n if (users.includes(loggedUsername)) yield put(authActions.logout());\n else\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: users.length > 1 ? 'users.users' : 'users.user'\n }),\n multiple: users.length > 1,\n name: usersName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingMonitoringUser(users, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingMonitoringUser(users, error));\n }\n}\n\nexport function* watchRemoveMonitoringUserStarted() {\n yield takeEvery(types.MONITORING_USER_REMOVE_STARTED, removeMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE USER PASSWORD */\n/* -------------------------------------------------------------------------- */\nfunction* updateMonitoringUserPassword(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/user/password`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changePassword.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMonitoringUserPassword(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMonitoringUserPassword(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMonitoringUserPassword(error));\n }\n}\n\nexport function* watchUpdateMonitoringUserPasswordStarted() {\n yield takeEvery(types.MONITORING_USER_UPDATE_PASSWORD_STARTED, updateMonitoringUserPassword);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SAVE ROLES AND PERMISSIONS */\n/* -------------------------------------------------------------------------- */\nfunction* saveRolesAndPermissions(action) {\n const rolesAndPermissions = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/user/saveRolesAndPermissions`, {\n method: 'POST',\n body: JSON.stringify(rolesAndPermissions),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSavingMonitoringUserRolesAndPermissions(rolesAndPermissions));\n alerts.showSuccessRolesAndPermissionsSavedMessage({\n name: rolesAndPermissions.userName\n });\n const userInSession = yield select(authSelectors.getAuthUser);\n if (rolesAndPermissions.userName === userInSession.username) {\n yield put(authActions.startForceRefreshToken());\n }\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSaveMonitoringUserRolesAndPermissionsStarted() {\n yield takeEvery(types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED, saveRolesAndPermissions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* assignSchedule(action) {\n const userAssignSchedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/AssignSchedule`, {\n method: 'POST',\n body: JSON.stringify(userAssignSchedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAssigningScheduleUsers(userAssignSchedule));\n alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: 'common.schedule'\n }),\n name: userAssignSchedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignScheduleUsersStarted() {\n yield takeEvery(types.USERS_ASSIGN_SCHEDULE_STARTED, assignSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UNASSIGN SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* unassignSchedule(action) {\n const userAssignSchedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/UnassignSchedule`, {\n method: 'POST',\n body: JSON.stringify(userAssignSchedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeUnassigningScheduleUsers(userAssignSchedule));\n alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'common.schedule'\n })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchUnassignScheduleUsersStarted() {\n yield takeEvery(types.USERS_UNASSIGN_SCHEDULE_STARTED, unassignSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchMonitoringUserById(action) {\n const monitoringUserId = action.payload;\n getUserByIdService(\n {\n monitoringUserId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingMonitoringUser(resultData, [resultData.userName]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMonitoringUser(error));\n }\n }\n );\n}\n\nexport function* watchFetchMonitoringUserById() {\n yield takeEvery(types.MONITORING_USER_FETCH_STARTED, fetchMonitoringUserById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplan = new schema.Entity('workplans', {}, { idAttribute: 'workplanId' });\nexport const workplans = new schema.Array(workplan);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/workplans';\nimport * as types from '../../types/workplans';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplans';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as workplanSelectors from '../../reducers/workplans';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport {\n getWorkplansListService,\n deleteWorkplanService,\n saveWorkplanService\n} from '../../services/workplans';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getWorkplansListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplans },\n result //order\n } = normalize(resultData, schemas.workplans); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingWorkplans(workplans, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplans(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansList() {\n yield takeEvery(types.WORKPLANS_FETCH_STARTED, fetchWorkplansList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchWorkplansList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getWorkplansListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplans },\n result //order\n } = normalize(resultData, schemas.workplans); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingWorkplans(workplans, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingWorkplans(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchWorkplansList() {\n yield takeEvery(types.WORKPLANS_PARTIAL_FETCH_STARTED, partialFetchWorkplansList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LOCATIONS LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplanLocationsList(action) {\n const workplanId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getLocations`, {\n method: 'POST',\n body: JSON.stringify({ workplanId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const locations = jsonResult.data.map((result) => camelcaseKeys(result));\n yield put(actions.completeFetchingWorkplanLocations(workplanId, locations));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanLocations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanLocations(error));\n }\n}\n\nexport function* watchFetchWorkplanLocationsList() {\n yield takeEvery(types.WORKPLAN_SELECTED, fetchWorkplanLocationsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkplan(action) {\n const workplan = action.payload;\n\n saveWorkplanService(\n { ...workplan, workplanId: null },\n {\n successAction: async (response) => {\n const addedWorkplan = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingWorkplan(workplan.workplanId, addedWorkplan));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failAddingWorkplan(workplan.workplanId, error));\n }\n },\n true\n );\n}\n\nexport function* watchAddWorkplansStarted() {\n yield takeEvery(types.WORKPLAN_ADD_STARTED, addWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkplan(action) {\n const workplan = action.payload;\n const { oldWorkplan } = yield select(selectors.getWorkplan, workplan.workplanId);\n\n saveWorkplanService(\n workplan,\n {\n successAction: async (response) => {\n const editedWorkplan = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingWorkplan(editedWorkplan));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failEditingWorkplan(oldWorkplan, error));\n }\n },\n false\n );\n}\n\nexport function* watchEditWorkplansStarted() {\n yield takeEvery(types.WORKPLAN_EDIT_STARTED, editWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplan(action) {\n const { workplanId } = action.payload;\n const workplanDeleted = yield select(workplanSelectors.getWorkplan, workplanId);\n\n deleteWorkplanService(\n { workplanId, workplanName: workplanDeleted?.workplanName },\n {\n successAction: async (response) => {\n store.dispatch(actions.completeRemovingWorkplan(workplanId));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingWorkplan(workplanId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanStarted() {\n yield takeEvery(types.WORKPLAN_REMOVE_STARTED, removeWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy Workplan */\n/* -------------------------------------------------------------------------- */\nfunction* copyWorkplan(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/copyWorkplan`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeCopyWorkplan(\n workplan.workplanId,\n jsonResult.data.newWorkplanId,\n workplan.newWorkplanName,\n workplan.organizationId,\n workplan.divisionId,\n workplan.subdivisionId\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.copySuccessful'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.copyError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.copyError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyWorkplan(error));\n }\n}\n\nexport function* watchCopyWorkplanStarted() {\n yield takeEvery(types.WORKPLAN_COPY_STARTED, copyWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Origin Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignOriginGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.originGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignOriginGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignOriginGeofenceWorkplan(\n workplan.workplanIds,\n workplan.originGeofenceId,\n geofence.geofenceName,\n workplan.originExitWindow,\n workplan.originValidationWindow\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignOriginGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignOriginGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignOriginGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED, assignOriginGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Work Area Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignWorkGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.workGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignWorkGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignWorkGeofenceWorkplan(\n workplan.workplanIds,\n workplan.workGeofenceId,\n geofence.geofenceName,\n workplan.workGeofenceArriveWindow,\n workplan.workGeofenceMaxTime\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignWorkGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignWorkGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignWorkGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED, assignWorkGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Destination Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignDestinationGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.destinationGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignDestinationGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignDestinationGeofenceWorkplan(\n workplan.workplanIds,\n workplan.destinationGeofenceId,\n geofence.geofenceName\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignDestinationGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignDestinationGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignDestinationGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED, assignDestinationGeofence);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplan Assignment */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const assignmentBySchedule = new schema.Entity(\n 'assignmentsBySchedule',\n {},\n { idAttribute: 'assignmentId' }\n);\nexport const assignmentsBySchedule = new schema.Array(assignmentBySchedule);\n\nexport const assignmentByDateTime = new schema.Entity(\n 'assignmentsByDateTime',\n {},\n { idAttribute: 'assignmentId' }\n);\nexport const assignmentsByDateTime = new schema.Array(assignmentByDateTime);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../../actions/workplansAssignments';\nimport * as types from '../../types/workplansAssignments';\nimport * as selectors from '../../reducers/workplansAssignments';\nimport * as schemas from '../../schemas/workplanAssignments';\nimport camelcaseKeys from 'camelcase-keys';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getWorkplansAssignmentsListService,\n saveWorkplanAssignmentByScheduleService,\n saveWorkplanAssignmentByDateTimeService,\n deleteWorkplanAssignmentService\n} from '../../services/workplansAssignments';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssignmentsList(action) {\n const { operatorId, organizationId } = action.payload;\n getWorkplansAssignmentsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultDataWS = response.data.withScheduleList.map((result) => camelcaseKeys(result));\n const resultDataWDT = response.data.withDateTimeList.map((result) => camelcaseKeys(result));\n const {\n entities: { assignmentsBySchedule },\n result: withScheduleOrder //order\n } = normalize(resultDataWS, schemas.assignmentsBySchedule); //normalize data to byId and order\n const {\n entities: { assignmentsByDateTime },\n result: withDateTimeOrder //order\n } = normalize(resultDataWDT, schemas.assignmentsByDateTime); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingAssignmentsWithSchedule(assignmentsBySchedule, withScheduleOrder)\n );\n store.dispatch(\n actions.completeFetchingAssignmentsWithDateTime(assignmentsByDateTime, withDateTimeOrder)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssignments(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansAssignmentsList() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_FETCH_STARTED, fetchAssignmentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT ASSIGNMENT BY SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignmentBySchedule(action) {\n const assignment = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanAssignmentSchedule`,\n {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...assignment\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAssignment = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAssignmentWithSchedule(editedAssignment));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'workplans.workplanAssignment'\n }),\n name: editedAssignment.workplanName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignmentByScheduleEditFailure'\n }),\n errorNumber: jsonResult.number\n };\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'bySchedule')\n );\n yield put(actions.failEditingAssignmentWithSchedule(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'workplans.assignmentByDateTimeEditFailure' }),\n errorNumber: -1\n };\n\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'bySchedule')\n );\n yield put(actions.failEditingAssignmentWithSchedule(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditWorkplanAssignmentByScheduleStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED, editAssignmentBySchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT ASSIGNMENT BY DATETIME */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignmentByDateTime(action) {\n const assignment = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanAssignmentDateTime`,\n {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...assignment\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAssignment = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAssignmentWithDateTime(editedAssignment));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'workplans.workplanAssignment'\n }),\n name: editedAssignment.workplanName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignmentByDateTimeEditFailure'\n }),\n errorNumber: jsonResult.number\n };\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'byDateTime')\n );\n yield put(actions.failEditingAssignmentWithDateTime(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'workplans.assignmentByDateTimeEditFailure' }),\n errorNumber: -1\n };\n\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'byDateTime')\n );\n yield put(actions.failEditingAssignmentWithDateTime(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditWorkplanAssignmentByDateTimeStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED, editAssignmentByDateTime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplanAssignment(action) {\n const { assignmentId, assignmentType } = action.payload;\n const assignmentDeleted = yield select(\n selectors.getWorkplansAssignment,\n assignmentId,\n assignmentType\n );\n\n deleteWorkplanAssignmentService(\n {\n assignmentId,\n assignmentName: `${assignmentDeleted?.workplanName}-${assignmentDeleted?.unitName}`\n },\n {\n successAction: async (response) => {\n assignmentType === 'bySchedule'\n ? store.dispatch(actions.completeRemovingAssignmentWithSchedule(assignmentId))\n : assignmentType === 'byDateTime'\n ? store.dispatch(actions.completeRemovingAssignmentWithDateTime(assignmentId))\n : '';\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingAssignment(assignmentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanAssignmentStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED, removeWorkplanAssignment);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplan Comments */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const comment = new schema.Entity('comments', {}, { idAttribute: 'jobCommentId' });\nexport const comments = new schema.Array(comment);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/workplan';\n\nexport const getWorkplanCommentsListService = async (\n request: any,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getComments`, request);\n};\n\nexport const saveCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'workplans.comment',\n action: request.workplanCommentId ? 'Edit' : 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveComment`, request);\n};\n\nexport const deleteCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'workplans.comment',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteComment`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/workplansComments';\nimport * as types from '../../types/workplansComments';\nimport * as selectors from '../../reducers/workplansComments';\nimport * as schemas from '../../schemas/workplansComments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteCommentService,\n getWorkplanCommentsListService,\n saveCommentService\n} from '../../services/workplansComments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCommentsList(action) {\n const { visitId, locationId } = action.payload;\n\n getWorkplanCommentsListService(\n { visitId, locationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { comments },\n result //order\n } = normalize(resultData, schemas.comments); //normalize data to byId and order\n store.dispatch(actions.completeFetchingComments(comments, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingComments(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansCommentsList() {\n yield takeEvery(types.WORKPLAN_COMMENTS_FETCH_STARTED, fetchCommentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addComment(action) {\n const comment = action.payload;\n saveCommentService(\n { ...comment, jobCommentId: null },\n {\n successAction: (response) => {\n const addedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingComment(comment.jobCommentId, addedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingComment(comment.jobCommentId, error));\n }\n }\n );\n}\n\nexport function* watchAddWorkplansCommentStarted() {\n yield takeEvery(types.WORKPLAN_COMMENT_ADD_STARTED, addComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeComment(action) {\n const { jobCommentId } = action.payload;\n const deletedComment = yield select((state) =>\n selectors.getWorkplansComment(state, jobCommentId)\n );\n deleteCommentService(\n { ...deletedComment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingComment(jobCommentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingComment(jobCommentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplansCommentStarted() {\n yield takeEvery(types.WORKPLAN_COMMENT_REMOVE_STARTED, removeComment);\n}\n","import * as types from '../../types/workplansExecutionLocations';\n\nexport const startAddingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED,\n payload: workplanExecutionLocation\n});\nexport const completeAddingWorkplanExecutionLocation = (oldId, workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED,\n payload: { oldId, workplanExecutionLocation }\n});\nexport const failAddingWorkplanExecutionLocation = (oldId, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED,\n payload: workplanExecutionLocation\n});\nexport const completeEditingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED,\n payload: workplanExecutionLocation\n});\nexport const failEditingWorkplanExecutionLocation = (oldWorkplanExecutionLocation, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED,\n payload: {\n oldWorkplanExecutionLocation,\n error\n }\n});\n\nexport const startRemovingWorkplanExecutionLocation = (\n visitId,\n locationId,\n sequenceNumber,\n applyToWorkplan\n) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED,\n payload: {\n visitId,\n locationId,\n sequenceNumber,\n applyToWorkplan\n }\n});\nexport const completeRemovingWorkplanExecutionLocation = (workplanExecutionLocationId) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED,\n payload: {\n workplanExecutionLocationId\n }\n});\nexport const failRemovingWorkplanExecutionLocation = (workplanExecutionLocationId, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED,\n payload: {\n workplanExecutionLocationId,\n error\n }\n});\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport * as actions from '../../actions/workplansExecutionLocations';\nimport * as types from '../../types/workplansExecutionLocations';\nimport * as selectors from '../../reducers/workplansExecutionLocations';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n saveWorkplanExecutionLocationService,\n deleteWorkplanExecutionLocationService\n} from '../../services/workplans';\nimport { store } from 'redux/storeConfig/store';\n\nconst getWorkplanExecutionLocationId = (workplanExecutionLocation) =>\n `${workplanExecutionLocation.visitId}-${workplanExecutionLocation.locationId}`;\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n\n saveWorkplanExecutionLocationService(workplanExecutionLocation, {\n successAction: async (response) => {\n const addedWorkplanExecutionLocation = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeAddingWorkplanExecutionLocation(\n workplanExecutionLocation.workplanExecutionLocationId,\n {\n workplanExecutionLocationId: getWorkplanExecutionLocationId(\n addedWorkplanExecutionLocation\n ),\n ...addedWorkplanExecutionLocation\n }\n )\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failAddingWorkplanExecutionLocation(workplanExecutionLocation.workplanId, error)\n );\n }\n });\n}\n\nexport function* watchAddWorkplanExecutionLocationsStarted() {\n yield takeEvery(types.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED, addWorkplanExecutionLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n const { oldWorkplanExecutionLocation } = yield select(\n selectors.getLocation,\n workplanExecutionLocation.workplanExecutionLocationId\n );\n\n saveWorkplanExecutionLocationService(workplanExecutionLocation, {\n successAction: async (response) => {\n const editedWorkplanExecutionLocation = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditingWorkplanExecutionLocation({\n workplanExecutionLocationId: getWorkplanExecutionLocationId(\n editedWorkplanExecutionLocation\n ),\n ...editedWorkplanExecutionLocation\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failEditingWorkplanExecutionLocation(oldWorkplanExecutionLocation, error)\n );\n }\n });\n}\n\nexport function* watchEditWorkplanExecutionLocationsStarted() {\n yield takeEvery(types.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED, editWorkplanExecutionLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n const workplanExecutionLocationDeleted = yield select(\n selectors.getLocation,\n getWorkplanExecutionLocationId(workplanExecutionLocation)\n );\n\n deleteWorkplanExecutionLocationService(\n { ...workplanExecutionLocation, locationName: workplanExecutionLocationDeleted?.locationName },\n {\n successAction: async (response) => {\n store.dispatch(\n actions.completeRemovingWorkplanExecutionLocation(\n getWorkplanExecutionLocationId(workplanExecutionLocation)\n )\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failRemovingWorkplanExecutionLocation(\n getWorkplanExecutionLocationId(workplanExecutionLocation),\n error\n )\n );\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanExecutionLocationStarted() {\n yield takeEvery(\n types.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED,\n removeWorkplanExecutionLocation\n );\n}\n","import * as types from '../../types/workplansExecutions';\n\nexport const startFetchingWorkplansExecutions = (filters = {}) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansExecutions = (\n entities,\n order,\n indicators,\n executionStatus,\n geographicStatus\n) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n executionStatus,\n geographicStatus\n }\n});\nexport const failFetchingWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingWorkplanExecution = (visitId) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_STARTED,\n payload: {\n visitId\n }\n});\nexport const completeFetchingWorkplanExecution = (\n workplanExecution,\n workplanExecutionLocationsEntities,\n workplanExecutionLocationsOrder\n) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_COMPLETED,\n payload: {\n workplanExecution,\n workplanExecutionLocationsEntities,\n workplanExecutionLocationsOrder\n }\n});\nexport const failFetchingWorkplanExecution = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCancelWorkplansExecutions = (visitId, unitId, assignmentId?: number) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_STARTED,\n payload: { visitId, unitId, assignmentId }\n});\nexport const completeCancelWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failCancelWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFinalizeWorkplansExecutions = (visitId, unitId, assignmentId?: number) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_STARTED,\n payload: { visitId, unitId, assignmentId }\n});\nexport const completeFinalizeWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failFinalizeWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startManualTransitWorkplansExecutions = (visitId, unitId, reason) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED,\n payload: { visitId, unitId, reason }\n});\nexport const completeManualTransitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failManualTransitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeUnitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED,\n payload: { visitId, unitId }\n});\nexport const completeChangeUnitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failChangeUnitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignUnitWorkplansExecutions = (assignation) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitWorkplansExecutions = (assignation) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplanExecution = new schema.Entity(\n 'workplansExecutions',\n {},\n { idAttribute: 'visitId' }\n);\nexport const workplansExecutions = new schema.Array(workplanExecution);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplanExecutionLocation = new schema.Entity(\n 'workplanExecutionLocations',\n {},\n { idAttribute: (value) => `${value.visitId}-${value.locationId}` }\n);\nexport const workplanExecutionLocations = new schema.Array(workplanExecutionLocation);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansExecutions';\nimport * as types from '../../types/workplansExecutions';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplansExecutions';\nimport * as schemasWorkplanExecutionLocation from '../../schemas/workplansExecutionLocations';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST EXECUTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansExecutions(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getWorkplansExecutions`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const executionStatus = camelcaseKeys(jsonResult.data.executionStatus);\n\n const geographicStatus = camelcaseKeys(jsonResult.data.geographicStatus);\n\n const resultData = jsonResult.data.workplansList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansExecutions },\n result //order\n } = normalize(resultData, schemas.workplansExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingWorkplansExecutions(\n workplansExecutions,\n result,\n indicators,\n executionStatus,\n geographicStatus\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchMonitorMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchMonitorMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansExecutions(error));\n }\n}\n\nexport function* watchFetchWorkplansExecutions() {\n yield takeEvery(types.WORKPLANS_EXECUTIONS_FETCH_STARTED, fetchWorkplansExecutions);\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH EXECUTION */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplanExecution(action) {\n try {\n const workplanExecution = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...workplanExecution })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const workplanExecution = camelcaseKeys(jsonResult.data.workplanExecution);\n\n const resultData = jsonResult.data.locationsList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplanExecutionLocations },\n result //order\n } = normalize(resultData, schemasWorkplanExecutionLocation.workplanExecutionLocations); //normalize data to byId and order\n\n yield put(\n actions.completeFetchingWorkplanExecution(\n workplanExecution,\n workplanExecutionLocations,\n result\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.fetchWorkplanExecutionError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanExecution(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.fetchWorkplanExecutionError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanExecution(error));\n }\n}\n\nexport function* watchFetchWorkplanExecution() {\n yield takeEvery(types.WORKPLAN_EXECUTION_FETCH_STARTED, fetchWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Cancel Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* cancelWorkplanExecution(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/cancelWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeCancelWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.selectedWorkplanWasCanceled'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanCancelationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanCancelationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelWorkplansExecutions(error));\n }\n}\n\nexport function* watchCancelWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_CANCEL_STARTED, cancelWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Finalize Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* finalizeWorkplanExecution(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/finalizeWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeFinalizeWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.selectedWorkplanWasFinished'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFinalizationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFinalizationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeWorkplansExecutions(error));\n }\n}\n\nexport function* watchFinalizeWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_FINALIZE_STARTED, finalizeWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Manual Transit Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* manualTransitWorkplanExecution(action) {\n const newStatus = 3;\n const { visitId, unitId, reason } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanExecutionManualTransit`,\n {\n method: 'POST',\n body: JSON.stringify({ visitId, unitId, reason }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeManualTransitWorkplansExecutions(visitId, unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessage'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitWorkplansExecutions(error));\n }\n}\n\nexport function* watchManualTransitWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED, manualTransitWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Change Workplan Execution Unit */\n/* -------------------------------------------------------------------------- */\nfunction* changeWorkplanExecutionUnit(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/changeUnit`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeChangeUnitWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.unitWasSuccessfullyChanged'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitChangeIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangeUnitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitChangeIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangeUnitWorkplansExecutions(error));\n }\n}\n\nexport function* watchChangeWorkplanExecutionUnit() {\n yield takeEvery(types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED, changeWorkplanExecutionUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Workplan Execution Unit */\n/* -------------------------------------------------------------------------- */\nconst getDatabaseErrorFromString = (text: string) => {\n const match: any = /(database\\.error\\.\\w+\\.\\w+)/.exec(text);\n let result: string | undefined = undefined;\n try {\n result = match[1];\n } catch (error) {\n result = undefined;\n }\n return result;\n};\n\nfunction* assignWorkplanExecutionUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(assignation)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitWorkplansExecutions(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const jsonErrorMessage = jsonResult.message;\n const typeJsonErrorMessage = typeof jsonResult.message;\n const errorMessage: string =\n response.status === 500\n ? getDatabaseErrorFromString(jsonResult.message) ??\n 'workplans.unitAssignmentIsNotPossibleRightNow'\n : 'workplans.unitAssignmentIsNotPossibleRightNow';\n // Validates status code is 500 server error\n const error: any = {\n errorMessage: appIntl().formatMessage({\n id: errorMessage\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitWorkplansExecutions(error));\n }\n}\n\nexport function* watchAsignWorkplanExecutionUnit() {\n yield takeEvery(types.WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED, assignWorkplanExecutionUnit);\n}\n","import * as types from '../../types/workplansReport';\n\nexport const startFetchingWorkplansReport = (filters = {}) => ({\n type: types.WORKPLANS_REPORT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansReport = (\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n) => ({\n type: types.WORKPLANS_REPORT_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n }\n});\nexport const failFetchingWorkplansReport = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_REPORT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansReport';\nimport * as types from '../../types/workplansReport';\nimport * as selectors from '../../reducers/workplans';\nimport * as workplansExecutionsSchemas from '../../schemas/workplansExecutions';\nimport * as unitsSchemas from '../../../Units/schemas';\nimport * as locationsSchemas from '../../../../../redux/schemas/locations';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST REPORT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansReport(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getReport`, {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...filters\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const units = jsonResult.data.units.map((result) => camelcaseKeys(result));\n const {\n entities: { units: unitsEntities },\n result: unitsOrder //order\n } = normalize(units, unitsSchemas.units); //normalize data to byId and order\n\n const locations = jsonResult.data.locations.map((result) => camelcaseKeys(result));\n const {\n entities: { locations: locationsEntities },\n result: locationsOrder //order\n } = normalize(locations, locationsSchemas.locations); //normalize data to byId and order\n\n const resultData = jsonResult.data.workplansList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansExecutions },\n result //order\n } = normalize(resultData, workplansExecutionsSchemas.workplansExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingWorkplansReport(\n workplansExecutions,\n result,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchReportMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansReport(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchReportMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansReport(error));\n }\n}\n\nexport function* watchFetchWorkplansReport() {\n yield takeEvery(types.WORKPLANS_REPORT_FETCH_STARTED, fetchWorkplansReport);\n}\n","import * as types from '../../types/workplansVisits';\n\nexport const startFetchingWorkplansVisits = (filters = {}) => ({\n type: types.WORKPLANS_VISITS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansVisits = (entities, order) => ({\n type: types.WORKPLANS_VISITS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingWorkplansVisits = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_VISITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingWorkplansAllVisits = (filters = {}) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansAllVisits = (entities, order) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingWorkplansAllVisits = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplansVisit = new schema.Entity(\n 'workplansVisits',\n {},\n { idAttribute: (value) => `${value.visitId}-${value.locationId}` }\n);\nexport const workplansVisits = new schema.Array(workplansVisit);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplansVisit = new schema.Entity(\n 'workplansVisits',\n {},\n { idAttribute: 'historicalVisitId' }\n);\nexport const workplansVisits = new schema.Array(workplansVisit);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansVisits';\nimport * as types from '../../types/workplansVisits';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplansVisits';\nimport * as historicalSchemas from '../../schemas/workplansHistoricalVisits';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getWorkplanAllVisitsListService,\n getWorkplanVisitsListService\n} from '../../services/workplansVisits';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST VISITS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansVisits(action) {\n const filters = action.payload;\n\n getWorkplanVisitsListService(\n { ...filters },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansVisits },\n result //order\n } = normalize(resultData, schemas.workplansVisits); //normalize data to byId and order\n store.dispatch(actions.completeFetchingWorkplansVisits(workplansVisits, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplansVisits(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansVisits() {\n yield takeEvery(types.WORKPLANS_VISITS_FETCH_STARTED, fetchWorkplansVisits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST ALL VISITS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansAllVisits(action) {\n const { visitId } = action.payload;\n getWorkplanAllVisitsListService(\n { visitId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansVisits },\n result //order\n } = normalize(resultData, historicalSchemas.workplansVisits); //normalize data to byId and order\n store.dispatch(actions.completeFetchingWorkplansAllVisits(workplansVisits, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplansAllVisits(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansAllVisits() {\n yield takeEvery(types.WORKPLANS_ALL_VISITS_FETCH_STARTED, fetchWorkplansAllVisits);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const configuration = new schema.Entity(\n \"configurations\",\n {},\n { idAttribute: \"deviceConfigurationId\" }\n);\nexport const configurations = new schema.Array(configuration);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport * as actions from '../../actions/configurations';\nimport * as types from '../../types/configurations';\nimport * as selectors from '../../reducers/configurations';\nimport * as schemas from '../../schemas/configurations';\nimport * as authSelectors from '../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchConfigurationsList(action) {\n const { brandId, modelId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (brandId && modelId) {\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/model/configurations/${brandId}/${modelId}`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { configurations },\n result //order\n } = normalize(resultData, schemas.configurations); //normalize data to byId and order\n yield put(actions.completeFetchingConfigurations(configurations, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingConfigurations(error));\n }\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingConfigurations(error));\n }\n}\n\nexport function* watchFetchConfigurationsList() {\n yield takeEvery(types.CONFIGURATIONS_FETCH_STARTED, fetchConfigurationsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const model = new schema.Entity(\n \"models\",\n {},\n { idAttribute: \"deviceModelId\" }\n);\nexport const models = new schema.Array(model);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport * as actions from '../../actions/models';\nimport * as types from '../../types/models';\nimport * as schemas from '../../schemas/models';\nimport * as authSelectors from '../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModelsList(action) {\n const { brandId } = action.payload;\n if (brandId) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/model/${brandId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { models },\n result //order\n } = normalize(resultData, schemas.models); //normalize data to byId and order\n yield put(actions.completeFetchingModels(models, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingModels(error));\n }\n }\n}\n\nexport function* watchFetchModelsList() {\n yield takeEvery(types.MODELS_FETCH_STARTED, fetchModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const brand = new schema.Entity(\n \"brands\",\n {},\n { idAttribute: \"brandId\" }\n);\nexport const brands = new schema.Array(brand);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport * as actions from '../../../actions/static-catalogs/brands';\nimport * as authSelectors from '../../../reducers/auth';\nimport * as schemas from '../../../schemas/brands';\nimport * as types from '../../../types/static-catalogs/brands';\nimport API_BASE_URL from '../../settings/apibaseurl';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchBrandsList(action) {\n const { brandId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/brand`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { brands },\n result //order\n } = normalize(resultData, schemas.brands); //normalize data to byId and order\n yield put(actions.completeFetchingBrands(brands, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingBrands(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingBrands(error));\n }\n}\n\nexport function* watchFetchBrandsList() {\n yield takeEvery(types.BRANDS_FETCH_STARTED, fetchBrandsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Currencies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const currency = new schema.Entity(\n \"currencies\",\n {},\n { idAttribute: \"currencyId\" }\n);\nexport const currencies = new schema.Array(currency);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/currencies';\nimport * as types from '../../../types/static-catalogs/currencies';\nimport * as schemas from '../../../schemas/currencies';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCurrenciesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/profile/currency`, {\n method: 'GET',\n // body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { currencies },\n result //order\n } = normalize(resultData, schemas.currencies); //normalize data to byId and order\n yield put(actions.completeFetchingCurrencies(currencies, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCurrencies(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCurrencies(error));\n }\n}\n\nexport function* watchFetchCurrenciesList() {\n yield takeEvery(types.CURRENCIES_FETCH_STARTED, fetchCurrenciesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Time Zones */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const timeZone = new schema.Entity(\n \"timeZones\",\n {},\n { idAttribute: \"zoneId\" }\n);\nexport const timeZones = new schema.Array(timeZone);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/time-zones';\nimport * as types from '../../../types/static-catalogs/time-zones';\nimport * as selectors from '../../../reducers/static-catalogs/time-zones';\nimport * as schemas from '../../../schemas/time-zones';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchTimeZonesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/profile/timeZone`, {\n method: 'GET',\n // body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { timeZones },\n result //order\n } = normalize(resultData, schemas.timeZones); //normalize data to byId and order\n yield put(actions.completeFetchingTimeZones(timeZones, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingTimeZones(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingTimeZones(error));\n }\n}\n\nexport function* watchFetchTimeZonesList() {\n yield takeEvery(types.TIME_ZONES_FETCH_STARTED, fetchTimeZonesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const provider = new schema.Entity('providers', {}, { idAttribute: 'cellProviderId' });\nexport const providers = new schema.Array(provider);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/cellular-providers';\nimport * as types from '../../../types/static-catalogs/cellular-providers';\nimport * as selectors from '../../../reducers/static-catalogs/cellular-providers';\nimport * as schemas from '../../../schemas/cellular-providers';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchProvidersList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/provider/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { providers },\n result //order\n } = normalize(resultData, schemas.providers); //normalize data to byId and order\n yield put(actions.completeFetchingProviders(providers, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n}\n\nexport function* watchFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_FETCH_STARTED, fetchProvidersList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Countries */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const country = new schema.Entity('countries', {}, { idAttribute: 'countryId' });\nexport const countries = new schema.Array(country);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/countries';\nimport * as types from '../../../types/static-catalogs/countries';\nimport * as selectors from '../../../reducers/static-catalogs/countries';\nimport * as schemas from '../../../schemas/countries';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCountriesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/country/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { countries },\n result //order\n } = normalize(resultData, schemas.countries); //normalize data to byId and order\n yield put(actions.completeFetchingCountries(countries, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCountries(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCountries(error));\n }\n}\n\nexport function* watchFetchCountriesList() {\n yield takeEvery(types.COUNTRIES_FETCH_STARTED, fetchCountriesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicle Makers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicleMaker = new schema.Entity('vehicleMakers', {}, { idAttribute: 'makerId' });\nexport const vehicleMakers = new schema.Array(vehicleMaker);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/vehicle-makers';\nimport * as types from '../../../types/static-catalogs/vehicle-makers';\nimport * as selectors from '../../../reducers/static-catalogs/vehicle-makers';\nimport * as schemas from '../../../schemas/vehicle-makers';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehicleMakersList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicleMaker/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicleMakers },\n result //order\n } = normalize(resultData, schemas.vehicleMakers); //normalize data to byId and order\n yield put(actions.completeFetchingVehicleMakers(vehicleMakers, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleMakers(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleMakers(error));\n }\n}\n\nexport function* watchFetchVehicleMakersList() {\n yield takeEvery(types.VEHICLE_MAKERS_FETCH_STARTED, fetchVehicleMakersList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicle Models */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicleModel = new schema.Entity('vehicleModels', {}, { idAttribute: 'modelId' });\nexport const vehicleModels = new schema.Array(vehicleModel);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/vehicle-models';\nimport * as types from '../../../types/static-catalogs/vehicle-models';\nimport * as selectors from '../../../reducers/static-catalogs/vehicle-models';\nimport * as schemas from '../../../schemas/vehicle-models';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehicleModelsList(action) {\n const maker = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (maker || maker === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicleModel/get`, {\n method: 'POST',\n body: JSON.stringify({ maker }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicleModels },\n result //order\n } = normalize(resultData, schemas.vehicleModels); //normalize data to byId and order\n yield put(actions.completeFetchingVehicleModels(vehicleModels, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleModels(error));\n }\n}\n\nexport function* watchFetchVehicleModelsList() {\n yield takeEvery(types.VEHICLE_MODELS_FETCH_STARTED, fetchVehicleModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Insurance Companies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const insuranceCompany = new schema.Entity(\n 'insuranceCompanies',\n {},\n { idAttribute: 'insuranceCompanyId' }\n);\nexport const insuranceCompanies = new schema.Array(insuranceCompany);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/insurance-companies';\nimport * as types from '../../../types/static-catalogs/insurance-companies';\nimport * as selectors from '../../../reducers/static-catalogs/insurance-companies';\nimport * as schemas from '../../../schemas/insurance-companies';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchInsuranceCompaniesList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/insuranceCompany/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { insuranceCompanies },\n result //order\n } = normalize(resultData, schemas.insuranceCompanies); //normalize data to byId and order\n yield put(actions.completeFetchingInsuranceCompanies(insuranceCompanies, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceCompanies(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceCompanies(error));\n }\n}\n\nexport function* watchFetchInsuranceCompaniesList() {\n yield takeEvery(types.INSURANCE_COMPANIES_FETCH_STARTED, fetchInsuranceCompaniesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Insurance Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const insuranceAgent = new schema.Entity(\n 'insuranceAgents',\n {},\n { idAttribute: 'insuranceAgentId' }\n);\nexport const insuranceAgents = new schema.Array(insuranceAgent);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/insurance-agents';\nimport * as types from '../../../types/static-catalogs/insurance-agents';\nimport * as selectors from '../../../reducers/static-catalogs/insurance-agents';\nimport * as schemas from '../../../schemas/insurance-agents';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchInsuranceAgentsList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/insuranceAgent/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { insuranceAgents },\n result //order\n } = normalize(resultData, schemas.insuranceAgents); //normalize data to byId and order\n yield put(actions.completeFetchingInsuranceAgents(insuranceAgents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceAgents(error));\n }\n}\n\nexport function* watchFetchInsuranceAgentsList() {\n yield takeEvery(types.INSURANCE_AGENTS_FETCH_STARTED, fetchInsuranceAgentsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Brands */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorBrand = new schema.Entity('sensorBrands', {}, { idAttribute: 'brandId' });\nexport const sensorBrands = new schema.Array(sensorBrand);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-brands';\nimport * as types from '../../../types/static-catalogs/sensor-brands';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-brands';\nimport * as schemas from '../../../schemas/sensor-brands';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorBrandsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorBrand/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorBrands },\n result //order\n } = normalize(resultData, schemas.sensorBrands); //normalize data to byId and order\n yield put(actions.completeFetchingSensorBrands(sensorBrands, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorBrands(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorBrands(error));\n }\n}\n\nexport function* watchFetchSensorBrandsList() {\n yield takeEvery(types.SENSOR_BRANDS_FETCH_STARTED, fetchSensorBrandsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Models */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorModel = new schema.Entity('sensorModels', {}, { idAttribute: 'sensorModelId' });\nexport const sensorModels = new schema.Array(sensorModel);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-models';\nimport * as types from '../../../types/static-catalogs/sensor-models';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-models';\nimport * as schemas from '../../../schemas/sensor-models';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorModelsList(action) {\n const brandId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorModel/get`, {\n method: 'POST',\n body: JSON.stringify({ brandId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorModels },\n result //order\n } = normalize(resultData, schemas.sensorModels); //normalize data to byId and order\n yield put(actions.completeFetchingSensorModels(sensorModels, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorModels(error));\n }\n}\n\nexport function* watchFetchSensorModelsList() {\n yield takeEvery(types.SENSOR_MODELS_FETCH_STARTED, fetchSensorModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Measures */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorMeasure = new schema.Entity('sensorMeasures', {}, { idAttribute: 'measureId' });\nexport const sensorMeasures = new schema.Array(sensorMeasure);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-measures';\nimport * as types from '../../../types/static-catalogs/sensor-measures';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-measures';\nimport * as schemas from '../../../schemas/sensor-measures';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorMeasuresList(action) {\n const { sensorId, sensorModelId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorMeasure/get`, {\n method: 'POST',\n body: JSON.stringify({ sensorId, sensorModelId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorMeasures },\n result //order\n } = normalize(resultData, schemas.sensorMeasures); //normalize data to byId and order\n yield put(actions.completeFetchingSensorMeasures(sensorMeasures, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorMeasures(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorMeasures(error));\n }\n}\n\nexport function* watchFetchSensorMeasuresList() {\n yield takeEvery(types.SENSOR_MEASURES_FETCH_STARTED, fetchSensorMeasuresList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema PaymentMethods */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const paymentMethod = new schema.Entity(\n 'paymentMethods',\n {},\n { idAttribute: 'paymentMethodId' }\n);\nexport const paymentMethods = new schema.Array(paymentMethod);\n","import { HttpWebtrack } from 'utility/http';\nimport { PaymentMethods } from '../types';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/vehicleFuel';\n\nexport const getPaymentMethods = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n return httpWebtrack.get(`${baseUrl}/paymentMethods`);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/payment-methods';\nimport * as types from '../../../types/static-catalogs/payment-methods';\nimport * as schemas from '../../../schemas/payment-methods';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\nimport { getPaymentMethods } from 'views/screens/VehicleFuel/services/paymentMethodsService';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchPaymentMethodsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const jsonResult = yield call(getPaymentMethods);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { paymentMethods },\n result //order\n } = normalize(resultData, schemas.paymentMethods); //normalize data to byId and order\n yield put(actions.completeFetchingPaymentMethods(paymentMethods, result));\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingPaymentMethods(error));\n }\n}\n\nexport function* watchFetchPaymentMethodsList() {\n yield takeEvery(types.PAYMENT_METHODS_FETCH_STARTED, fetchPaymentMethodsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Currencies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const locationClass = new schema.Entity(\n 'locationClasses',\n {},\n { idAttribute: 'locationClassId' }\n);\nexport const locationClasses = new schema.Array(locationClass);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/location-classes';\nimport * as types from '../../../types/static-catalogs/location-classes';\nimport * as schemas from '../../../schemas/location-classes';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchLocationClassesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/location/getLocationClasses`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locationClasses },\n result //order\n } = normalize(resultData, schemas.locationClasses); //normalize data to byId and order\n yield put(actions.completeFetchingLocationClasses(locationClasses, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingLocationClasses(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingLocationClasses(error));\n }\n}\n\nexport function* watchFetchLocationClassesList() {\n yield takeEvery(types.LOCATION_CLASSES_FETCH_STARTED, fetchLocationClassesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema SIMS */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sim = new schema.Entity('sims', {}, { idAttribute: 'simCardId' });\nexport const sims = new schema.Array(sim);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { getSimsListService } from '../services';\nimport { getSimByIdService } from '../services';\nimport * as simSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSimsList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload.filters;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getSimsListService(\n {\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sims },\n result //order\n } = normalize(resultData, schemas.sims); //normalize data to byId and order\n store.dispatch(actions.completeFetchingSims(sims, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingSims(error));\n }\n }\n );\n}\n\nexport function* watchFetchSimsList() {\n yield takeEvery(types.SIMS_FETCH_STARTED, fetchSimsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSimsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getSimsListService(\n {\n userFetchDate: date,\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sims },\n result //order\n } = normalize(resultData, schemas.sims); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingSims(sims, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingSims(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchSimsList() {\n yield takeEvery(types.SIMS_PARTIAL_FETCH_STARTED, partialFetchSimsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSim(action) {\n const sim = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/save`, {\n method: 'POST',\n body: JSON.stringify({ ...sim, simId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSim = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSim(sim.simId, addedSim));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: sim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSim(sim.simId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSim(sim.simId, error));\n }\n}\n\nexport function* watchAddSimsStarted() {\n yield takeEvery(types.SIM_ADD_STARTED, addSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSim(action) {\n const sim = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/save`, {\n method: 'POST',\n body: JSON.stringify(sim),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSim = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSim(editedSim));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: editedSim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSim } = yield select((state) => selectors.getSim(state.sims, sim.simId));\n yield put(actions.failEditingSim(oldSim, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldSim } = yield select((state) => selectors.getSim(state.sims, sim.simId));\n yield put(actions.failEditingSim(oldSim, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSimsStarted() {\n yield takeEvery(types.SIM_EDIT_STARTED, editSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSim(action) {\n const { simId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedSim = yield select((state) => simSelectors.getSim(state, simId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/delete`, {\n method: 'POST',\n body: JSON.stringify({ simId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingSim(simId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: deletedSim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSim(simId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSim(simId, error));\n }\n}\n\nexport function* watchRemoveSimStarted() {\n yield takeEvery(types.SIM_REMOVE_STARTED, removeSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH SIM BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchSimById(action) {\n const simId = action.payload;\n getSimByIdService(\n {\n simId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingSim(resultData, [resultData.simCardId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingSim(error));\n }\n }\n );\n}\n\nexport function* watchFetchSimById() {\n yield takeEvery(types.SIM_FETCH_STARTED, fetchSimById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicles */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicle = new schema.Entity('vehicles', {}, { idAttribute: 'vehicleId' });\nexport const vehicles = new schema.Array(vehicle);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport { getVehiclesListService } from '../services';\nimport * as types from '../types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehiclesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getVehiclesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicles },\n result //order\n } = normalize(resultData, schemas.vehicles); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingVehicles(vehicles, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingVehicles(error));\n }\n }\n );\n}\n\nexport function* watchFetchVehiclesList() {\n yield takeEvery(types.VEHICLES_FETCH_STARTED, fetchVehiclesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchVehiclesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getVehiclesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicles },\n result //order\n } = normalize(resultData, schemas.vehicles); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingVehicles(vehicles, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingVehicles(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchVehiclesList() {\n yield takeEvery(types.VEHICLES_PARTIAL_FETCH_STARTED, partialFetchVehiclesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addVehicle(action) {\n const vehicle = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/save`, {\n method: 'POST',\n body: JSON.stringify({ ...vehicle, vehicleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedVehicle = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingVehicle(vehicle.vehicleId, addedVehicle));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: vehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingVehicle(vehicle.vehicleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingVehicle(vehicle.vehicleId, error));\n }\n}\n\nexport function* watchAddVehiclesStarted() {\n yield takeEvery(types.VEHICLE_ADD_STARTED, addVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editVehicle(action) {\n const vehicle = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/save`, {\n method: 'POST',\n body: JSON.stringify({ ...vehicle }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedVehicle = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingVehicle(editedVehicle));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: editedVehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldVehicle } = yield select((state) =>\n selectors.getVehicle(state.vehicles, vehicle.vehicleId)\n );\n yield put(actions.failEditingVehicle(oldVehicle, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldVehicle } = yield select((state) =>\n selectors.getVehicle(state.vehicles, vehicle.vehicleId)\n );\n yield put(actions.failEditingVehicle(oldVehicle, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditVehiclesStarted() {\n yield takeEvery(types.VEHICLE_EDIT_STARTED, editVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeVehicle(action) {\n const { vehicleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedVehicle = yield select((state) => selectors.getVehicle(state, vehicleId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/delete`, {\n method: 'POST',\n body: JSON.stringify({ vehicleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingVehicle(vehicleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: deletedVehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingVehicle(vehicleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingVehicle(vehicleId, error));\n }\n}\n\nexport function* watchRemoveVehicleStarted() {\n yield takeEvery(types.VEHICLE_REMOVE_STARTED, removeVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* LICENSE PLATE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { vehicleId, licensePlate } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/validateLicensePlate`, {\n method: 'POST',\n body: JSON.stringify({ licensePlate, vehicleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.LicensePlateStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchLicenseCheckStarted() {\n yield takeEvery(types.VEHICLE_LICENSE_PLATE_CHECK_STARTED, checkRegistrationCode);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Assets */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const asset = new schema.Entity('assets', {}, { idAttribute: 'assetId' });\nexport const assets = new schema.Array(asset);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { getAssetsListService } from '../services';\nimport * as assetSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssetsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getAssetsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { assets },\n result //order\n } = normalize(resultData, schemas.assets); //normalize data to byId and order\n store.dispatch(actions.completeFetchingAssets(assets, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssets(error));\n }\n }\n );\n}\n\nexport function* watchFetchAssetsList() {\n yield takeEvery(types.ASSETS_FETCH_STARTED, fetchAssetsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchAssetsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getAssetsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { assets },\n result //order\n } = normalize(resultData, schemas.assets); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingAssets(assets, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingAssets(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchAssetsList() {\n yield takeEvery(types.ASSETS_PARTIAL_FETCH_STARTED, partialFetchAssetsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addAsset(action) {\n const asset = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/save`, {\n method: 'POST',\n body: JSON.stringify({ ...asset, assetId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedAsset = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingAsset(asset.assetId, addedAsset));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: asset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAsset(asset.assetId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAsset(asset.assetId, error));\n }\n}\n\nexport function* watchAddAssetsStarted() {\n yield takeEvery(types.ASSET_ADD_STARTED, addAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAsset(action) {\n const asset = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/save`, {\n method: 'POST',\n body: JSON.stringify(asset),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAsset = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAsset(editedAsset));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: editedAsset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldAsset } = yield select((state) =>\n selectors.getAsset(state.assets, asset.assetId)\n );\n yield put(actions.failEditingAsset(oldAsset, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldAsset } = yield select((state) => selectors.getAsset(state.assets, asset.assetId));\n yield put(actions.failEditingAsset(oldAsset, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditAssetsStarted() {\n yield takeEvery(types.ASSET_EDIT_STARTED, editAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAsset(action) {\n const { assetId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedAsset = yield select((state) => assetSelectors.getAsset(state, assetId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/asset/delete`, {\n method: 'POST',\n body: JSON.stringify({ assetId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingAsset(assetId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: deletedAsset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAsset(assetId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAsset(assetId, error));\n }\n}\n\nexport function* watchRemoveAssetStarted() {\n yield takeEvery(types.ASSET_REMOVE_STARTED, removeAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IDENTIFIER CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkIdentifier(action) {\n const { assetId, identifier } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/validateIdentifier`, {\n method: 'POST',\n body: JSON.stringify({ assetId, identifier }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.AssetIdentifierStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchIdentifierCheckStarted() {\n yield takeEvery(types.ASSET_IDENTIFIER_CHECK_STARTED, checkIdentifier);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SECURITY SEAL CODE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkSecuritySealCode(action) {\n const { assetId, securitySealCode } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/validateSecuritySealCode`, {\n method: 'POST',\n body: JSON.stringify({ assetId: assetId ?? null, securitySealCode }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.IsValid === 1;\n yield put(actions.completeCheckingSecuritySealCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchSecuritySealCodeCheckStarted() {\n yield takeEvery(types.ASSET_SECURITY_SEAL_CODE_CHECK_STARTED, checkSecuritySealCode);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensors */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\nexport const sensorSchema = new schema.Entity('sensors', {}, { idAttribute: 'sensorId' });\nexport const sensors = new schema.Array(sensorSchema);\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport {\n deleteSensorService,\n fuelCalibrationFinalizeService,\n fuelCalibrationStartService,\n getSensorsListService,\n saveSensorService\n} from '../services/sensors';\nimport * as types from '../types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorsList(action) {\n getSensorsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensors },\n result //order\n } = normalize(resultData, schemas.sensors); //normalize data to byId and order\n store.dispatch(actions.completeFetchingSensors(sensors, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingSensors(error));\n }\n }\n );\n}\n\nexport function* watchFetchSensorsList() {\n yield takeEvery(types.SENSORS_FETCH_STARTED, fetchSensorsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSensorsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getSensorsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensors },\n result //order\n } = normalize(resultData, schemas.sensors); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingSensors(sensors, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingSensors(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchSensorsList() {\n yield takeEvery(types.SENSORS_PARTIAL_FETCH_STARTED, partialFetchSensorsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSensor(action) {\n const sensor = action.payload;\n saveSensorService(\n { ...sensor, sensorId: null },\n {\n successAction: (response) => {\n const addedSensor = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingSensor(sensor.sensorId, addedSensor));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingSensor(sensor.sensorId, error));\n }\n }\n );\n}\n\nexport function* watchAddSensorsStarted() {\n yield takeEvery(types.SENSOR_ADD_STARTED, addSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSensor(action) {\n const sensor = action.payload;\n const oldSensor = yield select((state) => selectors.getSensor(state, sensor.sensorId));\n saveSensorService(\n { ...sensor },\n {\n successAction: (response) => {\n const editedSensor = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingSensor(editedSensor));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingSensor(oldSensor, error));\n }\n }\n );\n}\n\nexport function* watchEditSensorsStarted() {\n yield takeEvery(types.SENSOR_EDIT_STARTED, editSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSensor(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n deleteSensorService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingSensor(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingSensor(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveSensorStarted() {\n yield takeEvery(types.SENSOR_REMOVE_STARTED, removeSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IDENTIFIER CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { sensorId, identifier } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensor/validateIdentifier`, {\n method: 'POST',\n body: JSON.stringify({ identifier, sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.UniqueIdentifierStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchSensorIdentifierCheckStarted() {\n yield takeEvery(types.IDENTIFIER_CHECK_STARTED, checkRegistrationCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* START FUEL CALIBRATION */\n/* -------------------------------------------------------------------------- */\nfunction* sensorCalibrationStarted(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n fuelCalibrationStartService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.sensorCalibrationStartCompleted(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.sensorCalibrationStartFail(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchSensorCalibrationStartStarted() {\n yield takeEvery(types.START_SENSOR_CALIBRATION_STARTED, sensorCalibrationStarted);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FINALIZE FUEL CALIBRATION */\n/* -------------------------------------------------------------------------- */\nfunction* sensorCalibrationFinalized(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n fuelCalibrationFinalizeService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.sensorCalibrationFinalizeCompleted(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.sensorCalibrationFinalizeFail(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchSensorCalibrationFinalizeStarted() {\n yield takeEvery(types.FINALIZE_SENSOR_CALIBRATION_STARTED, sensorCalibrationFinalized);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n","/* -------------------------------------------------------------------------- */\n/* Schema Imported Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const importedLocation = new schema.Entity('importedLocations', {}, { idAttribute: 'id' });\nexport const importedLocations = new schema.Array(importedLocation);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as schemasImportedLocations from '../schemas/importLocations';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getLocationsListService,\n saveLocationService,\n deleteLocationService,\n importLocationsService,\n getLocationByIdService\n} from '../services/locations';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchLocationsList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n bounds: filterBounds\n } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getLocationsListService(\n {\n operatorId: operatorId,\n organizationId: organizationId,\n minLat: filterBounds?.minLat,\n maxLat: filterBounds?.maxLat,\n minLng: filterBounds?.minLng,\n maxLng: filterBounds?.maxLng,\n locationIds: filterBounds?.locationIds\n ? JSON.stringify(filterBounds?.locationIds)\n : filterBounds?.locationIds\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locations },\n result //order\n } = normalize(resultData, schemas.locations); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingLocations(\n locations,\n result,\n operatorId,\n organizationId,\n filterBounds?.showInMapLocations ? filterBounds?.showInMapLocations : false,\n filterBounds === undefined ? true : false\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingLocations(error));\n }\n }\n );\n}\n\nexport function* watchFetchLocationsList() {\n yield takeEvery(types.LOCATIONS_FETCH_STARTED, fetchLocationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchLocationsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getLocationsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locations },\n result //order\n } = normalize(resultData, schemas.locations); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingLocations(locations, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingLocations(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchLocationsList() {\n yield takeEvery(types.LOCATIONS_PARTIAL_FETCH_STARTED, partialFetchLocationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addLocation(action) {\n const location = action.payload;\n saveLocationService(\n { ...location, locationId: null },\n {\n successAction: (response) => {\n const addedLocation = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingLocation(location.locationId, addedLocation));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingLocation(location.locationId, error));\n }\n }\n );\n}\n\nexport function* watchAddLocationsStarted() {\n yield takeEvery(types.LOCATION_ADD_STARTED, addLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editLocation(action) {\n const location = action.payload;\n const { oldLocation } = yield select((state) =>\n selectors.getLocation(state, location.locationId)\n );\n saveLocationService(\n { ...location },\n {\n successAction: (response) => {\n const editedLocation = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingLocation(editedLocation));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingLocation(oldLocation, error));\n }\n }\n );\n}\n\nexport function* watchEditLocationsStarted() {\n yield takeEvery(types.LOCATION_EDIT_STARTED, editLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeLocation(action) {\n const { locationId } = action.payload;\n const location = yield select((state) => selectors.getLocation(state, locationId));\n deleteLocationService(\n { ...location },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingLocation(locationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingLocation(locationId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveLocationStarted() {\n yield takeEvery(types.LOCATION_REMOVE_STARTED, removeLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT */\n/* -------------------------------------------------------------------------- */\nfunction* importLocations(action) {\n const locations = action.payload;\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n importLocationsService(\n { ...locations },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n // Fetch locations\n store.dispatch(actions.startFetchingLocations({ operatorId, organizationId }));\n const {\n entities: { importedLocations },\n result //order\n } = normalize(resultData, schemasImportedLocations.importedLocations); //normalize data to byId and order\n // Complete import locations\n store.dispatch(actions.completeImportingLocations(importedLocations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingLocations(error));\n }\n }\n );\n}\n\nexport function* watchImportLocationsStarted() {\n yield takeEvery(types.LOCATIONS_IMPORT_STARTED, importLocations);\n}\n\n/* -------------------------------------------------------------------------- */\n/* GET LOCATION BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchLocationById(action) {\n const locationId = action.payload;\n getLocationByIdService(\n {\n locationId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingLocation(resultData, [resultData.locationId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingLocation(error));\n }\n }\n );\n}\n\nexport function* watchFetchLocationById() {\n yield takeEvery(types.LOCATION_FETCH_STARTED, fetchLocationById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const driver = new schema.Entity('drivers', {}, { idAttribute: 'driverId' });\nexport const drivers = new schema.Array(driver);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as unitSelectors from 'views/screens/Units/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getDriversListService,\n saveDriverService,\n deleteDriverService,\n assignDriversMassivelyService\n} from '../services/drivers';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchDriversList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getDriversListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { drivers },\n result //order\n } = normalize(resultData, schemas.drivers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingDrivers(drivers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingDrivers(error));\n }\n }\n );\n}\n\nexport function* watchFetchDriversList() {\n yield takeEvery(types.DRIVERS_FETCH_STARTED, fetchDriversList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchDriversList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getDriversListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { drivers },\n result //order\n } = normalize(resultData, schemas.drivers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingDrivers(drivers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingDrivers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchDriversList() {\n yield takeEvery(types.DRIVERS_PARTIAL_FETCH_STARTED, partialFetchDriversList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addDriver(action) {\n const driver = action.payload;\n const person = action.person;\n saveDriverService(\n { ...driver, driverId: null },\n {\n successAction: (response) => {\n const addedDriver = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeAddingDriver(driver.driverId, addedDriver));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingDriver(driver.driverId, error));\n }\n },\n person\n );\n}\n\nexport function* watchAddDriversStarted() {\n yield takeEvery(types.DRIVER_ADD_STARTED, addDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editDriver(action) {\n const driver = action.payload;\n const person = action.person;\n const oldDriver = yield select((state) => selectors.getDriver(state, driver.driverId));\n saveDriverService(\n { ...driver },\n {\n successAction: (response) => {\n const editedDriver = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeEditingDriver(editedDriver));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingDriver(oldDriver, error));\n }\n },\n person\n );\n}\n\nexport function* watchEditDriversStarted() {\n yield takeEvery(types.DRIVER_EDIT_STARTED, editDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN UNASSIGN SENSOR */\n/* -------------------------------------------------------------------------- */\nfunction* assignSensor(action) {\n const sensor: any = action.payload.sensor;\n const driverId = action.payload.driverId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/driver/updateSensors`, {\n method: 'POST',\n body: JSON.stringify({ driverId: driverId, sensorId: sensor.sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeDriverAssignSensor(driverId, sensor));\n alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: 'sensors.sensor'\n }),\n name: sensor.sensorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nfunction* unassignSensor(action) {\n const sensor: any = action.payload.sensor;\n const driverId = action.payload.driverId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/driver/deleteSensor`, {\n method: 'POST',\n body: JSON.stringify({ sensorId: sensor.sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeDriverUnassignSensor(driverId, sensor));\n alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'sensors.sensor'\n }),\n name: sensor.sensorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignSensor() {\n yield takeEvery(types.DRIVER_ASSIGN_SENSOR_STARTED, assignSensor);\n}\n\nexport function* watchUnassignSensor() {\n yield takeEvery(types.DRIVER_UNASSIGN_SENSOR_STARTED, unassignSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeDriver(action) {\n const { driverId } = action.payload;\n const person = action.person;\n const driver = yield select((state) => selectors.getDriver(state, driverId));\n deleteDriverService(\n { ...driver },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingDriver(driverId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingDriver(driverId, error));\n }\n },\n person\n );\n}\n\nexport function* watchRemoveDriverStarted() {\n yield takeEvery(types.DRIVER_REMOVE_STARTED, removeDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT DATA */\n/* -------------------------------------------------------------------------- */\n\nfunction* importDriverAndUnitData(action: any) {\n const dataToImport: Array = action.payload;\n if (dataToImport?.length === 0) return;\n\n function* importDriverAndUnit({ driverId, driverPrivateCode, unitId, unitPrivateCode }) {\n const { driver, unit } = yield select((state) => ({\n driver: selectors.getDriverByIdOrPrivateCode(state, driverId, driverPrivateCode),\n unit: unitSelectors.getUnitByIdOrPrivateCode(state, unitId, unitPrivateCode)\n }));\n return { driver, unit };\n }\n const importedData =\n typeof dataToImport?.map === 'function' ? dataToImport?.map(importDriverAndUnit) : [];\n const newData: Array = [];\n for (let driverAndUnit of importedData) {\n try {\n newData.push(yield driverAndUnit);\n } catch (error) {\n console.warn(error);\n }\n }\n store.dispatch(actions.completeImportDriver(newData));\n}\n\nexport function* watchStartImportDriverAndUnit() {\n yield takeEvery(types.START_IMPORT_DRIVERS_UNITS_IMPORT, importDriverAndUnitData);\n}\n\n/* -------------------------------------------------------------------------- */\n/* MASSIVE ASSIGNMENT */\n/* -------------------------------------------------------------------------- */\nfunction* assignDriversToUnits(action: any) {\n const { driversAndUnitsIds, membership } = action.payload;\n // changed data [{driverId, unitId}, {driverId, unitId}] -> 'driverId~unitId^driverId~unitId'\n const data: string = driversAndUnitsIds\n ?.map((d: any) => [d?.driverId, d?.unitId].join('~'))\n .join('^');\n // Validate data is not empty\n if (data?.length < 1) return;\n\n assignDriversMassivelyService(\n { driversAndUnitsIds: data },\n {\n successAction: (response: any) => {\n const resultData =\n typeof response?.data?.map === 'function'\n ? response?.data?.map((result) => camelcaseKeys(result))\n : undefined;\n store.dispatch(actions.startFetchingDrivers(membership));\n store.dispatch(actions.completeMassiveDriversAssignment(response?.data));\n },\n errorAction: (response: any) => {\n store.dispatch(actions.errorMassiveDriversAssignment(response?.data));\n }\n }\n );\n}\n\nexport function* watchAssignDriversToUnits() {\n yield takeEvery(types.START_MASSIVE_DRIVERS_ASSIGNMENT, assignDriversToUnits);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema JobsBacklog */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const job = new schema.Entity('jobs', {}, { idAttribute: 'jobId' });\nexport const jobs = new schema.Array(job);\n","/* -------------------------------------------------------------------------- */\n/* Schema Imported Jobs */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const importedJob = new schema.Entity('importedJobs', {}, { idAttribute: 'id' });\nexport const importedJobs = new schema.Array(importedJob);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/backlog';\nimport * as selectors from '../../reducers/backlog';\nimport * as schemas from '../../schemas';\nimport * as schemasImportedJobs from '../../schemas/importJobs';\nimport {\n // deleteJobBacklogService,\n getJobsBacklogListService,\n saveJobBacklogService,\n deleteJobsBacklogService,\n changeJobsDueDateService,\n changeJobsMinMaxTimeService,\n changeJobsStartDateService,\n changeJobsStatusService,\n changeJobsPriorityService,\n assignJobsFilesService,\n assignJobsUsersService,\n assignJobsFormsService,\n rescheduleJobsService,\n importJobsService\n} from '../../services/jobs';\nimport * as types from '../../types/backlog';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsBacklogList(action) {\n getJobsBacklogListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completeFetchingJobsBacklog(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsBacklog(error));\n }\n }\n );\n}\n\nexport function* watchFetchJobsBacklogList() {\n yield takeEvery(types.JOBS_BACKLOG_FETCH_STARTED, fetchJobsBacklogList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchJobsBacklogList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getJobsBacklogListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingJobsBacklog(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingJobsBacklog(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchJobsBacklogList() {\n yield takeEvery(types.JOBS_BACKLOG_PARTIAL_FETCH_STARTED, partialFetchJobsBacklogList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addJobBacklog(action) {\n const jobBacklog = action.payload;\n saveJobBacklogService(\n { ...jobBacklog, jobId: null },\n {\n successAction: (response) => {\n const addedJobBacklog = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingJobBacklog(jobBacklog.jobId, addedJobBacklog));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingJobBacklog(jobBacklog.jobId, error));\n }\n }\n );\n}\n\nexport function* watchAddJobsBacklogStarted() {\n yield takeEvery(types.JOB_BACKLOG_ADD_STARTED, addJobBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editJobBacklog(action) {\n const jobBacklog = action.payload;\n const oldJobBacklog = yield select((state) => selectors.getJobBacklog(state, jobBacklog.jobId));\n saveJobBacklogService(\n { ...jobBacklog },\n {\n successAction: (response) => {\n const editedJobBacklog = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingJobBacklog(editedJobBacklog));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingJobBacklog(oldJobBacklog, error));\n }\n }\n );\n}\n\nexport function* watchEditJobsBacklogStarted() {\n yield takeEvery(types.JOB_BACKLOG_EDIT_STARTED, editJobBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeJobsBacklog(action) {\n const { jobs } = action.payload;\n // const jobBacklog = yield select((state) => selectors.getJobBacklog(state, jobId));\n deleteJobsBacklogService(\n { jobs },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingJobsBacklog(jobs));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingJobsBacklog(jobs, error));\n }\n }\n );\n}\n\nexport function* watchRemoveJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_REMOVE_STARTED, removeJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* changeStatusJobsBacklog(action) {\n const { jobs, jobStatus, comment } = action.payload;\n changeJobsStatusService(\n { jobs, jobStatus, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStatusJobs(jobs, jobStatus, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStatusJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStatusJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_STATUS_STARTED, changeStatusJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RESCHEDULE JOBS */\n/* -------------------------------------------------------------------------- */\nfunction* rescheduleJobs(action) {\n const { jobs, startDate, dueDate, comment } = action.payload;\n rescheduleJobsService(\n { jobs, startDate, dueDate, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRescheduleJobs(jobs, startDate, dueDate, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRescheduleJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchRescheduleJobsStarted() {\n yield takeEvery(types.JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED, rescheduleJobs);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PRIORITY */\n/* -------------------------------------------------------------------------- */\nfunction* changePriorityJobsBacklog(action) {\n const { jobs, jobPriority } = action.payload;\n changeJobsPriorityService(\n { jobs, jobPriority },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangePriorityJobs(jobs, jobPriority));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangePriorityJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangePriorityJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_PRIORITY_STARTED, changePriorityJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE START DATE */\n/* -------------------------------------------------------------------------- */\nfunction* changeStartDateJobsBacklog(action) {\n const { jobs, startDate } = action.payload;\n changeJobsStartDateService(\n { jobs, startDate },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStartDateJobs(jobs, startDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStartDateJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStartDateJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_START_DATE_STARTED, changeStartDateJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE DUE DATE */\n/* -------------------------------------------------------------------------- */\nfunction* changeDueDateJobsBacklog(action) {\n const { jobs, dueDate } = action.payload;\n changeJobsDueDateService(\n { jobs, dueDate },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeDueDateJobs(jobs, dueDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeDueDateJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeDueDateJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED, changeDueDateJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE MAX TIME */\n/* -------------------------------------------------------------------------- */\nfunction* changeMinMaxTimeJobsBacklog(action) {\n const { jobs, maxTime } = action.payload;\n changeJobsMinMaxTimeService(\n { jobs, maxTime },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeMinMaxTimeJobs(jobs, maxTime));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeMinMaxTimeJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeMinMaxTimeJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED, changeMinMaxTimeJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN USERS */\n/* -------------------------------------------------------------------------- */\nfunction* assignUsersJobsBacklog(action) {\n const { jobs, userNames, users } = action.payload;\n assignJobsUsersService(\n { jobs, userNames },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAssignUsersJobs(jobs, userNames, users));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignUsersJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignUsersJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_USERS_STARTED, assignUsersJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN FORMS */\n/* -------------------------------------------------------------------------- */\nfunction* assignFormsJobsBacklog(action) {\n const { jobs, formIds, forms } = action.payload;\n assignJobsFormsService(\n { jobs, formIds },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAssignFormsJobs(jobs, formIds, forms));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignFormsJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignFormsJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_FORMS_STARTED, assignFormsJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN FILES */\n/* -------------------------------------------------------------------------- */\nfunction* assignFilesJobsBacklog(action) {\n const { jobs, fileIds } = action.payload;\n assignJobsFilesService(\n { jobs, fileIds },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs: entities },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(\n actions.completeAssignFilesJobs(\n entities ??\n jobs.split(',').reduce((acc, curr) => ((acc[curr] = { files: '' }), acc), {}),\n result.length > 0 ? result : jobs.split(',')\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignFilesJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignFilesJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_FILES_STARTED, assignFilesJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT */\n/* -------------------------------------------------------------------------- */\nfunction* importJobs(action) {\n const jobs = action.payload;\n importJobsService(\n { ...jobs },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { importedJobs },\n result //order\n } = normalize(resultData, schemasImportedJobs.importedJobs); //normalize data to byId and order\n store.dispatch(actions.completeImportingJobs(importedJobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingJobs(error));\n }\n }\n );\n}\n\nexport function* watchImportJobsStarted() {\n yield takeEvery(types.JOBS_BACKLOG_IMPORT_STARTED, importJobs);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/board';\nimport * as selectors from '../../reducers/board';\nimport * as schemas from '../../schemas';\nimport { getJobsBoardListService, changeJobsStatusBoardService } from '../../services/jobs';\nimport * as types from '../../types/board';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsBoardList(action) {\n const filters = action.payload;\n getJobsBoardListService(filters, {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completeFetchingJobsBoard(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsBoard(error));\n }\n });\n}\n\nexport function* watchFetchJobsBoardList() {\n yield takeEvery(types.JOBS_BOARD_FETCH_STARTED, fetchJobsBoardList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* changeStatusJobsBoard(action) {\n const { jobs, jobStatus, comment } = action.payload;\n changeJobsStatusBoardService(\n { jobs, jobStatus, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStatusJobsBoard(jobs, jobStatus, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStatusJobsBoard(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStatusJobsBoardStarted() {\n yield takeEvery(types.JOBS_BOARD_CHANGE_STATUS_STARTED, changeStatusJobsBoard);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema JobsBacklog */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const user = new schema.Entity('users', {}, { idAttribute: 'userId' });\nexport const users = new schema.Array(user);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/report';\nimport * as selectors from '../../reducers/report';\nimport * as schemas from '../../schemas';\nimport * as schemasJobByUser from '../../schemas/jobsByUser';\nimport { getJobsReportListService } from '../../services/jobs';\nimport * as types from '../../types/report';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsReportList(action) {\n const filters = action.payload;\n getJobsReportListService(filters, {\n successAction: (response) => {\n const indicators = camelcaseKeys(response.data.indicators);\n const jobsList = response.data.jobsList.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result: orderJobs //order\n } = normalize(jobsList, schemas.jobs); //normalize data to byId and order\n const jobsByUserList = response.data.jobsByUserList.map((result) => camelcaseKeys(result));\n const {\n entities: { users: jobsByUser },\n result: orderJobsByUser //order\n } = normalize(jobsByUserList, schemasJobByUser.users); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingJobsReport(indicators, jobs, orderJobs, jobsByUser, orderJobsByUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsReport(error));\n }\n });\n}\n\nexport function* watchFetchJobsReportList() {\n yield takeEvery(types.JOBS_REPORT_FETCH_STARTED, fetchJobsReportList);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as types from '../types';\nimport * as actions from '../actions';\nimport { getJobService } from '../services/jobs';\n\nexport * from './backlog';\nexport * from './board';\nexport * from './report';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH JOB */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJob(action) {\n const { jobId } = action.payload;\n getJobService(\n { jobId },\n {\n successAction: (response) => {\n const job = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingJob(job));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJob(error));\n }\n }\n );\n}\n\nexport function* watchFetchJob() {\n yield takeEvery(types.JOB_FETCH_STARTED, fetchJob);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery, put, call } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport {\n getGroupsListService,\n getAllEntitiesInGroupService,\n saveGroupService,\n saveGroupWithEntitiesService,\n deleteGroupService,\n leaveGroupService,\n getGroupByIdService\n} from '../services/groups';\nimport * as types from '../types';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGroupsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGroupsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { groups },\n result //order\n } = normalize(resultData, schemas.groups); //normalize data to byId and order\n store.dispatch(actions.completeFetchingGroups(groups, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGroups(error));\n }\n }\n );\n}\n\nexport function* watchFetchGroupsList() {\n yield takeEvery(types.GROUPS_FETCH_STARTED, fetchGroupsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchGroupsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGroupsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { groups },\n result //order\n } = normalize(resultData, schemas.groups); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingGroups(groups, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingGroups(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchGroupsList() {\n yield takeEvery(types.GROUPS_PARTIAL_FETCH_STARTED, partialFetchGroupsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH ALL ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAllEntitiesInGroup(action) {\n const groupId = action.payload;\n getAllEntitiesInGroupService(\n { groupId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { users }\n } = normalize(resultData[0], schemas.users); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(resultData[1], schemas.locations); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(resultData[2], schemas.workplans); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(resultData[3], schemas.units); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(resultData[4], schemas.geofences); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(resultData[5], schemas.drivers); //normalize data to byId for drivers\n const entities = {\n users: users,\n locations: locations,\n workplans: workplans,\n units: units,\n geofences: geofences,\n drivers: drivers\n };\n store.dispatch(actions.completeFetchingAllEntitiesGroups(entities, groupId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAllEntitiesGroups(error));\n }\n }\n );\n}\n\nexport function* watchFetchAllEntitiesInGroup() {\n yield takeEvery(types.GROUPS_ALL_ENTITIES_FETCH_STARTED, fetchAllEntitiesInGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addGroup(action) {\n const { group, users, userInSession, additionalOnSave } = action.payload;\n saveGroupService(\n { groupName: group.groupName, owners: users.map((user) => user.userId).toString() },\n {\n successAction: (response) => {\n const addedGroup = camelcaseKeys(response?.data);\n store.dispatch(actions.completeAddingGroup(group.groupId, addedGroup));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n store.dispatch(actions.deselectAllGroups());\n store.dispatch(actions.selectGroup(addedGroup.groupId));\n if (typeof additionalOnSave === 'function') additionalOnSave();\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchAddGroupStarted() {\n yield takeEvery(types.GROUP_ADD_STARTED, addGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD WITH ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* addGroupWithEntities(action) {\n const { group, userInSession, entityType, entities, params } = action.payload;\n\n saveGroupWithEntitiesService(\n {\n groupName: group.groupName,\n owners: [userInSession.userId].toString(),\n ...params,\n entities:\n entityType === 'users'\n ? entities.map((entity) => entity.userName).toString()\n : entityType === 'locations'\n ? entities.map((entity) => entity.locationId).toString()\n : entityType === 'workplans'\n ? entities.map((entity) => entity.workplanId).toString()\n : entityType === 'units'\n ? entities.map((entity) => entity.unitId).toString()\n : entityType === 'geofences'\n ? entities.map((entity) => entity.geofenceId).toString()\n : entityType === 'drivers'\n ? entities.map((entity) => entity.driverId).toString()\n : '',\n entityType\n },\n {\n successAction: (response) => {\n const addedGroup = camelcaseKeys(response?.data);\n store.dispatch(actions.completeAddingGroupWithEntities(group.groupId, addedGroup));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGroupWithEntities(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchAddGroupWithEntitiesStarted() {\n yield takeEvery(types.GROUP_ADD_WITH_ENTITIES_STARTED, addGroupWithEntities);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editGroup(action) {\n const group = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/group/edit`, {\n method: 'POST',\n body: JSON.stringify(group),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedGroup = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingGroup(editedGroup));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldGroup } = yield select((state) =>\n selectors.getGroup(state.groups, group.groupId)\n );\n yield put(actions.failEditingGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldGroup } = yield select((state) => selectors.getGroup(state.groups, group.groupId));\n yield put(actions.failEditingGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditGroupsStarted() {\n yield takeEvery(types.GROUP_EDIT_STARTED, editGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeGroup(action) {\n const { groupId } = action.payload;\n const group = yield select((state) => selectors.getGroup(state, groupId));\n deleteGroupService(\n { ...group },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingGroup(group.groupId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveGroupStarted() {\n yield takeEvery(types.GROUP_REMOVE_STARTED, removeGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* LEAVE */\n/* -------------------------------------------------------------------------- */\nfunction* leaveGroup(action) {\n const { groupId, isAsesor, asesorUsername } = action.payload;\n const group = yield select((state) => selectors.getGroup(state, groupId));\n leaveGroupService(\n { ...group },\n {\n successAction: (response) => {\n store.dispatch(actions.completeLeavingGroup(group.groupId, isAsesor, asesorUsername));\n },\n errorAction: (error) => {\n store.dispatch(actions.failLeavingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchLeaveGroupStarted() {\n yield takeEvery(types.GROUP_LEAVE_STARTED, leaveGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT NOTIFICATIONS CONFIGURATION */\n/* -------------------------------------------------------------------------- */\nfunction* editNotificationsConfiguration(action) {\n const group = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/group/editNotificationsConfiguration`, {\n method: 'POST',\n body: JSON.stringify(group),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n //const editedGroup = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingNotificationsConfigurationGroup(group));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldGroup } = yield select((state) =>\n selectors.getGroup(state.groups, group.groupId)\n );\n yield put(actions.failEditingNotificationsConfigurationGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldUnit } = yield select((state) => selectors.getGroup(state.groups, group.groupId));\n yield put(actions.failEditingNotificationsConfigurationGroup(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditConfigurationNotificationsStarted() {\n yield takeEvery(\n types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED,\n editNotificationsConfiguration\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE ENTITIES FROM GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* removeEntitiesFromGroup(action) {\n const group: any = action.payload.group;\n const entityType = action.payload.entityType;\n const entities = action.payload.entities;\n\n const partialEntityUrl =\n entityType === 'users'\n ? 'removeUsersFromGroup'\n : entityType === 'locations'\n ? 'removeLocationsFromGroup'\n : entityType === 'workplans'\n ? 'removeWorkPlansFromGroup'\n : entityType === 'units'\n ? 'removeUnitsFromGroup'\n : entityType === 'geofences'\n ? 'removeGeofencesFromGroup'\n : entityType === 'drivers'\n ? 'removeDriversFromGroup'\n : '';\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/${partialEntityUrl}`, {\n method: 'POST',\n body: JSON.stringify({ groupId: group.groupId, entities: entities }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingEntitiesFromGroup(group.groupId, entityType, entities));\n alerts.showSuccessRemovedFromGroupMessage({\n object: appIntl().formatMessage({\n id:\n entityType === 'users'\n ? entities.length > 1\n ? 'users.users'\n : 'users.user'\n : entityType === 'locations'\n ? entities.length > 1\n ? 'locations.locations'\n : 'locations.location'\n : entityType === 'workplans'\n ? entities.length > 1\n ? 'workplans.workplans'\n : 'workplans.workplan'\n : entityType === 'units'\n ? entities.length > 1\n ? 'units.units'\n : 'units.unit'\n : entityType === 'geofences'\n ? entities.length > 1\n ? 'geofences.geofences'\n : 'geofences.geofence'\n : entityType === 'drivers'\n ? entities.length > 1\n ? 'drivers.drivers'\n : 'drivers.driver'\n : 'groups.entities'\n }),\n name: group.groupName,\n multiple: entities.length > 1,\n altText:\n entityType === 'locations' || entityType === 'units' || entityType === 'geofences'\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchRemoveEntitiesFromGroup() {\n yield takeEvery(types.GROUP_REMOVE_ENTITIES_STARTED, removeEntitiesFromGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD ENTITIES TO GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* addEntitiesToGroup(action) {\n const group: any = action.payload.group;\n const entityType = action.payload.entityType;\n const entities = action.payload.entities;\n const params = action.payload.params;\n\n const partialEntityUrl =\n entityType === 'users'\n ? 'addUsersToGroup'\n : entityType === 'locations'\n ? 'addLocationsToGroup'\n : entityType === 'workplans'\n ? 'addWorkPlansToGroup'\n : entityType === 'units'\n ? 'addUnitsToGroup'\n : entityType === 'geofences'\n ? 'addGeofencesToGroup'\n : entityType === 'drivers'\n ? 'addDriversToGroup'\n : '';\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/${partialEntityUrl}`, {\n method: 'POST',\n body: JSON.stringify({\n groupId: group.groupId,\n entities:\n entityType === 'users'\n ? entities.map((entity) => entity.userName)\n : entityType === 'locations'\n ? entities.map((entity) => entity.locationId)\n : entityType === 'workplans'\n ? entities.map((entity) => entity.workPlanId)\n : entityType === 'units'\n ? entities.map((entity) => entity.unitId)\n : entityType === 'geofences'\n ? entities.map((entity) => entity.geofenceId)\n : entityType === 'drivers'\n ? entities.map((entity) => entity.driverId)\n : [],\n ...params\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAddingEntitiesToGroup(group, entityType, entities, params));\n alerts.showSuccessAddedToGroupMessage({\n object: appIntl().formatMessage({\n id:\n entityType === 'users'\n ? entities.length > 1\n ? 'users.users'\n : 'users.user'\n : entityType === 'locations'\n ? entities.length > 1\n ? 'locations.locations'\n : 'locations.location'\n : entityType === 'workplans'\n ? entities.length > 1\n ? 'workplans.workplans'\n : 'workplans.workplan'\n : entityType === 'units'\n ? entities.length > 1\n ? 'units.units'\n : 'units.unit'\n : entityType === 'geofences'\n ? entities.length > 1\n ? 'geofences.geofences'\n : 'geofences.geofence'\n : entityType === 'drivers'\n ? entities.length > 1\n ? 'drivers.drivers'\n : 'drivers.driver'\n : 'groups.entities'\n }),\n name: group.groupName,\n multiple: entities.length > 1,\n altText:\n entityType === 'locations' || entityType === 'units' || entityType === 'geofences'\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAddEntitiesToGroup() {\n yield takeEvery(types.GROUP_ADD_ENTITIES_STARTED, addEntitiesToGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT USER PROFILE IN GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* editUserPorfileInGroup(action) {\n const { groupId, userName, userNameInSession, profileId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/editUsersProfileInGroup`, {\n method: 'POST',\n body: JSON.stringify({ groupId, profileId, users: [userName] }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeEditingUserProfileInGroup(groupId, userName, userNameInSession, profileId)\n );\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'users.user'\n }),\n name: userName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditUserProfileInGroup() {\n yield takeEvery(types.GROUP_USER_PROFILE_EDIT_STARTED, editUserPorfileInGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH GROUP BY ID */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGroupById(action) {\n const groupId = action.payload;\n getGroupByIdService(\n { groupId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { groups },\n result //order\n } = normalize(resultData, schemas.groups);\n store.dispatch(actions.completeFetchingGroup(groups, result, result[0]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGroup(error));\n }\n }\n );\n}\n\nexport function* watchFetchGroupById() {\n yield takeEvery(types.GROUP_FETCH_STARTED, fetchGroupById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Quotations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const quotation = new schema.Entity('quotations', {}, { idAttribute: 'quotationId' });\nexport const quotations = new schema.Array(quotation);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchQuotationsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId:\n filterOrganizationId === null || filterOrganizationId === undefined\n ? filterOrganizationId\n : organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { quotations },\n result //order\n } = normalize(resultData, schemas.quotations); //normalize data to byId and order\n yield put(\n actions.completeFetchingQuotations(quotations ?? [], result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingQuotations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingQuotations(error));\n }\n}\n\nexport function* watchFetchQuotationsList() {\n yield takeEvery(types.QUOTATIONS_FETCH_STARTED, fetchQuotationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchQuotationsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { quotations },\n result //order\n } = normalize(resultData, schemas.quotations); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingQuotations(quotations, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingQuotations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingQuotations(error));\n }\n}\n\nexport function* watchPartialFetchQuotationsList() {\n yield takeEvery(types.QUOTATIONS_PARTIAL_FETCH_STARTED, partialFetchQuotationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addQuotation(action) {\n const { quotation } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/save`, {\n method: 'POST',\n body: JSON.stringify({ ...quotation, quotationId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingQuotation(quotation.quotationId, addedQuotation));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingQuotation(quotation.quotationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingQuotation(quotation.quotationId, error));\n }\n}\n\nexport function* watchAddQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_ADD_STARTED, addQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* COPY */\n/* -------------------------------------------------------------------------- */\nfunction* copyQuotation(action) {\n const { quotation } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/copy`, {\n method: 'POST',\n body: JSON.stringify({ ...quotation, fromQuotationId: quotation.quotationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const copiedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeCopyingQuotation(copiedQuotation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'quotations.copyingQuotationSuccess' })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.copyingQuotationFailure' }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyingQuotation(quotation.quotationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.copyingQuotationFailure' }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyingQuotation(quotation.quotationId, error));\n }\n}\n\nexport function* watchCopyQuotationsStarted() {\n yield takeEvery(types.QUOTATION_COPY_STARTED, copyQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editQuotation(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/save`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingQuotation(editedQuotation));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: editedQuotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldQuotation } = yield select((state) =>\n selectors.getQuotation(state.quotations, quotation.quotationId)\n );\n yield put(actions.failEditingQuotation(oldQuotation, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldQuotation = yield select((state) =>\n selectors.getQuotation(state, quotation.quotationId)\n );\n // console.log('old', yield select((state) => selectors.getDivision(state, division.divisionId)));\n yield put(actions.failEditingQuotation(oldQuotation, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_EDIT_STARTED, editQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* APPROVE DENY MANAGEMENT */\n/* -------------------------------------------------------------------------- */\nfunction* approveDenyQuotationManagement(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/approveManagement`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeApprovingDenyingQuotationManagement(quotation));\n alerts.showSuccessApprovedDeniedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true,\n approve: quotation.approve\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.approve === 1\n ? 'quotations.approvingQuotationManagementFailure'\n : 'quotations.denyingQuotationManagementFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failApprovingDenyingQuotationManagement(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.approve === 1\n ? 'quotations.approvingQuotationManagementFailure'\n : 'quotations.denyingQuotationManagementFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failApprovingDenyingQuotationManagement(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchApproveDenyQuotationManagementStarted() {\n yield takeEvery(types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED, approveDenyQuotationManagement);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ACCEPT DENY CUSTOMER */\n/* -------------------------------------------------------------------------- */\nfunction* acceptDenyQuotationCustomer(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/acceptCustomer`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAcceptingDenyingQuotationCustomer(quotation));\n alerts.showSuccessAcceptedDeniedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true,\n accept: quotation.accept\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.accept === 1\n ? 'quotations.acceptingQuotationCustomerFailure'\n : 'quotations.denyingQuotationCustomerFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failAcceptingDenyingQuotationCustomer(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.accept === 1\n ? 'quotations.acceptingQuotationCustomerFailure'\n : 'quotations.denyingQuotationCustomerFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failAcceptingDenyingQuotationCustomer(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAcceptDenyQuotationCustomerStarted() {\n yield takeEvery(types.QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED, acceptDenyQuotationCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* scheduleQuotation(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/scheduleQuotation`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSchedulingQuotation(quotation));\n alerts.showSuccessScheduledMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.schedulingQuotationFailure' }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failSchedulingQuotation(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.schedulingQuotationFailure' }),\n errorNumber: -1\n };\n\n yield put(actions.failSchedulingQuotation(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchScheduleQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_SCHEDULE_STARTED, scheduleQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHECK SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* checkQuotationScheduling(action) {\n const { quotationId, quotationLink } = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/checkScheduling`, {\n method: 'POST',\n body: JSON.stringify({ quotationId, quotationLink }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const quotationScheduled = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeCheckingQuotationScheduling({\n quotationId,\n quotationIdDB: quotationScheduled?.quotationId,\n isScheduled: quotationScheduled?.isScheduled,\n quotationStatus: quotationScheduled?.quotationStatus,\n isTimesup: quotationScheduled?.isTimesup\n })\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'quotations.checkingQuotationSchedulingFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failCheckingQuotationScheduling(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'quotations.checkingQuotationSchedulingFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failCheckingQuotationScheduling(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchCheckQuotationSchedulingStarted() {\n yield takeEvery(types.QUOTATIONS_CHECK_SCHEDULING_STARTED, checkQuotationScheduling);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SET TIMESUP */\n/* -------------------------------------------------------------------------- */\nfunction* setTimesupQuotation(action) {\n const { quotation, showAlerts } = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/setTimesup`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSettingTimesupQuotation(quotation));\n if (showAlerts)\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'common.changesSuccess' })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'common.changesFailure' }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failSettingTimesupQuotation(error));\n if (showAlerts) alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'common.changesFailure' }),\n errorNumber: -1\n };\n\n yield put(actions.failSettingTimesupQuotation(error));\n if (showAlerts) alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSetTimesupQuotationStarted() {\n yield takeEvery(types.QUOTATIONS_SET_TIMESUP_STARTED, setTimesupQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeQuotation(action) {\n const { quotationId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedQuotation = yield select((state) => selectors.getQuotation(state, quotationId));\n const response = yield call(fetch, `${API_BASE_URL}/quotation/delete`, {\n method: 'POST',\n body: JSON.stringify({ quotationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingQuotation(quotationId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: deletedQuotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingQuotation(quotationId, error));\n }\n }\n } catch (err) {\n // console.log('err', err);\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingQuotation(quotationId, error));\n }\n}\n\nexport function* watchRemoveQuotationStarted() {\n yield takeEvery(types.QUOTATIONS_REMOVE_STARTED, removeQuotation);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Organization Contracts */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const organizationContract = new schema.Entity(\n 'organizationContracts',\n {},\n { idAttribute: 'contractId' }\n);\nexport const organizationContracts = new schema.Array(organizationContract);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOrganizationContractsList(action) {\n const { operatorId, organizationId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { organizationContracts },\n result //order\n } = normalize(resultData, schemas.organizationContracts); //normalize data to byId and order\n yield put(\n actions.completeFetchingOrganizationContracts(\n organizationContracts ?? [],\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOrganizationContracts(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOrganizationContracts(error));\n }\n}\n\nexport function* watchFetchOrganizationContractsList() {\n yield takeEvery(types.ORGANIZATION_CONTRACTS_FETCH_STARTED, fetchOrganizationContractsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOrganizationContractsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { organizationContracts },\n result //order\n } = normalize(resultData, schemas.organizationContracts); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingOrganizationContracts(\n organizationContracts,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOrganizationContracts(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOrganizationContracts(error));\n }\n}\n\nexport function* watchPartialFetchOrganizationContractsList() {\n yield takeEvery(\n types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED,\n partialFetchOrganizationContractsList\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganizationContract(action) {\n const organizationContract = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/save`, {\n method: 'POST',\n body: JSON.stringify({ ...organizationContract, contractId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOrganizationContract = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingOrganizationContract(\n organizationContract.contractId,\n addedOrganizationContract\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: organizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationContract(organizationContract.contractId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationContract(organizationContract.contractId, error));\n }\n}\n\nexport function* watchAddOrganizationContractsStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_ADD_STARTED, addOrganizationContract);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganizationContract(action) {\n const organizationContract = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/save`, {\n method: 'POST',\n body: JSON.stringify(organizationContract),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOrganizationContract = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingOrganizationContract(editedOrganizationContract));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: editedOrganizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOrganizationContract } = yield select((state) =>\n selectors.getOrganizationContract(\n state.organizationContracts,\n organizationContract.contractId\n )\n );\n yield put(actions.failEditingOrganizationContract(oldOrganizationContract, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n const oldOrganizationContract = yield select((state) =>\n selectors.getOrganizationContract(state, organizationContract.contractId)\n );\n yield put(actions.failEditingOrganizationContract(oldOrganizationContract, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOrganizationContractsStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_EDIT_STARTED, editOrganizationContract);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganizationContract(action) {\n const { contractId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedOrganizationContract = yield select((state) =>\n selectors.getOrganizationContract(state, contractId)\n );\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/delete`, {\n method: 'POST',\n body: JSON.stringify({ contractId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOrganizationContract(contractId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: deletedOrganizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationContract(contractId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationContract(contractId, error));\n }\n}\n\nexport function* watchRemoveOrganizationContractStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_REMOVE_STARTED, removeOrganizationContract);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Contract Templates */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const contractTemplate = new schema.Entity(\n 'contractTemplates',\n {},\n { idAttribute: 'templateId' }\n);\nexport const contractTemplates = new schema.Array(contractTemplate);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchContractTemplatesList(action) {\n const { operatorId, organizationId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contractTemplates },\n result //order\n } = normalize(resultData, schemas.contractTemplates); //normalize data to byId and order\n yield put(\n actions.completeFetchingContractTemplates(\n contractTemplates ?? [],\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContractTemplates(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContractTemplates(error));\n }\n}\n\nexport function* watchFetchContractTemplatesList() {\n yield takeEvery(types.CONTRACT_TEMPLATES_FETCH_STARTED, fetchContractTemplatesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchContractTemplatesList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contractTemplates },\n result //order\n } = normalize(resultData, schemas.contractTemplates); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingContractTemplates(\n contractTemplates,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingContractTemplates(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingContractTemplates(error));\n }\n}\n\nexport function* watchPartialFetchContractTemplatesList() {\n yield takeEvery(\n types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED,\n partialFetchContractTemplatesList\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addContractTemplate(action) {\n const contractTemplate = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n // console.log('division', division);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/save`, {\n method: 'POST',\n body: JSON.stringify({ ...contractTemplate, templateId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedContractTemplate = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingContractTemplate(contractTemplate.templateId, addedContractTemplate)\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.contractTemplate'\n }),\n name: contractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContractTemplate(contractTemplate.templateId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContractTemplate(contractTemplate.templateId, error));\n }\n}\n\nexport function* watchAddContractTemplatesStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_ADD_STARTED, addContractTemplate);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editContractTemplate(action) {\n const contractTemplate = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/save`, {\n method: 'POST',\n body: JSON.stringify(contractTemplate),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedContractTemplate = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingContractTemplate(editedContractTemplate));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.contractTemplate'\n }),\n name: editedContractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldContractTemplate } = yield select((state) =>\n selectors.getContractTemplate(state.contractTemplates, contractTemplate.templateId)\n );\n yield put(actions.failEditingContractTemplate(oldContractTemplate, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldContractTemplate = yield select((state) =>\n selectors.getContractTemplate(state, contractTemplate.templateId)\n );\n // console.log('old', yield select((state) => selectors.getDivision(state, division.divisionId)));\n yield put(actions.failEditingContractTemplate(oldContractTemplate, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditContractTemplatesStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_EDIT_STARTED, editContractTemplate);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeContractTemplate(action) {\n const { templateId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedContractTemplate = yield select((state) =>\n selectors.getContractTemplate(state, templateId)\n );\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/delete`, {\n method: 'POST',\n body: JSON.stringify({ templateId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingContractTemplate(templateId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.template'\n }),\n name: deletedContractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContractTemplate(templateId, error));\n }\n }\n } catch (err) {\n // console.log('err', err);\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContractTemplate(templateId, error));\n }\n}\n\nexport function* watchRemoveContractTemplateStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_REMOVE_STARTED, removeContractTemplate);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Customers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const customer = new schema.Entity('customers', {}, { idAttribute: 'customerId' });\nexport const customers = new schema.Array(customer);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { getCustomersListService, saveCustomerService, deleteCustomerService } from '../services';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCustomersList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getCustomersListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { customers },\n result //order\n } = normalize(resultData, schemas.customers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingCustomers(customers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingCustomers(error));\n }\n }\n );\n}\n\nexport function* watchFetchCustomersList() {\n yield takeEvery(types.CUSTOMERS_FETCH_STARTED, fetchCustomersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchCustomersList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getCustomersListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { customers },\n result //order\n } = normalize(resultData, schemas.customers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingCustomers(customers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingCustomers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchCustomersList() {\n yield takeEvery(types.CUSTOMERS_PARTIAL_FETCH_STARTED, partialFetchCustomersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addCustomer(action) {\n const customer = action.payload;\n saveCustomerService(\n { ...customer, customerId: null },\n {\n successAction: (response) => {\n const addedCustomer = camelcaseKeys(response.data.customer);\n const addedOffice = camelcaseKeys(response.data.office);\n store.dispatch(\n actions.completeAddingCustomer(customer.customerId, addedCustomer, addedOffice)\n );\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingCustomer(customer.customerId, error));\n }\n }\n );\n}\n\nexport function* watchAddCustomersStarted() {\n yield takeEvery(types.CUSTOMER_ADD_STARTED, addCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editCustomer(action) {\n const customer = action.payload;\n const { oldCustomer } = yield select((state) =>\n selectors.getCustomer(state, customer.customerId)\n );\n saveCustomerService(\n { ...customer },\n {\n successAction: (response) => {\n const editedCustomer = camelcaseKeys(response.data.customer);\n const editedOffice = camelcaseKeys(response.data.office);\n store.dispatch(actions.completeEditingCustomer(editedCustomer, editedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingCustomer(oldCustomer, error));\n }\n }\n );\n}\n\nexport function* watchEditCustomersStarted() {\n yield takeEvery(types.CUSTOMER_EDIT_STARTED, editCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeCustomer(action) {\n const { customerId } = action.payload;\n const customer = yield select((state) => selectors.getCustomer(state, customerId));\n deleteCustomerService(\n { ...customer },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingCustomer(customerId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingCustomer(customerId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveCustomerStarted() {\n yield takeEvery(types.CUSTOMER_REMOVE_STARTED, removeCustomer);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Customers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const office = new schema.Entity('offices', {}, { idAttribute: 'officeId' });\nexport const offices = new schema.Array(office);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/office';\n\nexport const getOfficesListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'offices.office',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveOfficeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'offices.office',\n action: request.officeId ? 'Edit' : 'Create',\n name: request.officeName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteOfficeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.officeName}`,\n object: 'offices.office',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { getOfficesListService, saveOfficeService, deleteOfficeService } from '../services';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOfficesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getOfficesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { offices },\n result //order\n } = normalize(resultData, schemas.offices); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingOffices(offices, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingOffices(error));\n }\n }\n );\n}\n\nexport function* watchFetchOfficesList() {\n yield takeEvery(types.OFFICES_FETCH_STARTED, fetchOfficesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOfficesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getOfficesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { offices },\n result //order\n } = normalize(resultData, schemas.offices); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingOffices(offices, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingOffices(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchOfficesList() {\n yield takeEvery(types.OFFICES_PARTIAL_FETCH_STARTED, partialFetchOfficesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOffice(action) {\n const office = action.payload;\n saveOfficeService(\n { ...office, officeId: null },\n {\n successAction: (response) => {\n const addedOffice = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingOffice(office.officeId, addedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingOffice(office.officeId, error));\n }\n }\n );\n}\n\nexport function* watchAddOfficesStarted() {\n yield takeEvery(types.OFFICE_ADD_STARTED, addOffice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOffice(action) {\n const office = action.payload;\n const { oldOffice } = yield select((state) => selectors.getOffice(state, office.officeId));\n saveOfficeService(\n { ...office },\n {\n successAction: (response) => {\n const editedOffice = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingOffice(editedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingOffice(oldOffice, error));\n }\n }\n );\n}\n\nexport function* watchEditOfficesStarted() {\n yield takeEvery(types.OFFICE_EDIT_STARTED, editOffice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOffice(action) {\n const { officeId } = action.payload;\n const office = yield select((state) => selectors.getOffice(state, officeId));\n deleteOfficeService(\n { ...office },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingOffice(officeId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingOffice(officeId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveOfficeStarted() {\n yield takeEvery(types.OFFICE_REMOVE_STARTED, removeOffice);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Forms */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\nimport { utils } from 'sortablejs';\nimport * as util from 'utility/Utils';\n\nconst formSchema = new schema.Entity('forms', {}, { idAttribute: 'organizationFormId' });\nexport const forms = new schema.Array(formSchema);\n\nconst sectionSchema = new schema.Entity('sections', {}, { idAttribute: 'sectionId' });\nexport const sections = new schema.Array(sectionSchema);\n\nconst questionSchema = new schema.Entity('questions', {}, { idAttribute: 'questionId' });\nexport const questions = new schema.Array(questionSchema);\n\nconst responseSchema = new schema.Entity(\n 'responses',\n { questionResponse: [questionSchema] },\n {\n idAttribute: 'responseId',\n mergeStrategy: (entityA, entityB) =>\n !util.isIterable(entityA) ? [entityA, entityB] : [...entityA, entityB]\n }\n);\nexport const responses = new schema.Array(responseSchema);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/form';\n\ninterface FormFilters {\n userFetchDate?: Date;\n}\n\nexport const getFormsListService = (request: FormFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getFormsSectionsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getSections`, request);\n};\n\nexport const getFormsQuestionsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getQuestions`, request);\n};\n\nexport const saveFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: request.organizationFormId ? 'Edit' : 'Create',\n name: request.formName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const saveExternalFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: request.organizationFormId ? 'Edit' : 'Create',\n name: request.formName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveExternal`, request);\n};\n\nexport const saveResponseFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'forms.fillFormMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'forms.fillFormErrorMessage'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveResponse`, request);\n};\n\nexport const resendResponseFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'forms.resendFormResponseMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'forms.resendFormResponseErrorMessage'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/resendResponse`, request);\n};\n\nexport const deleteFormService = (request: any, configActions: ConfigActions, person: any) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.formName}`,\n object: person && person === true ? 'people.person' : 'forms.form',\n action: 'Delete',\n genderType: person && person === true ? 'SingularFemale' : 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as utility from '../../../../utility/Utils';\nimport * as interfaces from 'utility/types';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { DateTime } from 'luxon';\nimport uniq from 'lodash/uniq';\nimport camelCase from 'lodash/camelCase';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getFormsListService,\n getFormsQuestionsListService,\n getFormsSectionsListService,\n resendResponseFormService,\n saveExternalFormService,\n saveFormService,\n saveResponseFormService\n} from '../services/forms';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchFormsList(action) {\n getFormsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { forms },\n result //order\n } = normalize(resultData, schemas.forms); //normalize data to byId and order\n store.dispatch(actions.completeFetchingForms(forms, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingForms(error));\n }\n }\n );\n}\n\nexport function* watchFetchFormsList() {\n yield takeEvery(types.FORMS_FETCH_STARTED, fetchFormsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchFormsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getFormsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { forms },\n result //order\n } = normalize(resultData, schemas.forms); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingForms(forms, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingForms(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchFormsList() {\n yield takeEvery(types.FORMS_PARTIAL_FETCH_STARTED, partialFetchFormsList);\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH SECTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSections(action) {\n const formId = action.payload;\n\n getFormsSectionsListService(\n { formId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sections },\n result //order\n } = normalize(resultData, schemas.sections); //normalize data to byId and order\n store.dispatch(actions.completeFetchingFormSections(sections, result, formId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingFormSections(error));\n }\n }\n );\n}\n\nexport function* watchFetchSections() {\n yield takeEvery(types.FORM_SECTIONS_FETCH_STARTED, fetchSections);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH QUESTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchQuestions(action) {\n const formId = action.payload;\n\n getFormsQuestionsListService(\n { formId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { questions },\n result //order\n } = normalize(resultData, schemas.questions); //normalize data to byId and order\n store.dispatch(actions.completeFetchingFormQuestions(questions, result, formId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingFormQuestions(error));\n }\n }\n );\n}\n\nexport function* watchFetchQuestions() {\n yield takeEvery(types.FORM_QUESTIONS_FETCH_STARTED, fetchQuestions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addForm(action) {\n const form = action.payload;\n saveFormService(\n { ...form, organizationFormId: null },\n {\n successAction: (response) => {\n const addedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingForm(form.organizationFormId, addedForm));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingForm(form.organizationFormId, error));\n }\n }\n );\n}\n\nexport function* watchAddFormsStarted() {\n yield takeEvery(types.FORM_ADD_STARTED, addForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editForm(action) {\n const form = action.payload;\n const { oldForm } = yield select((state) => selectors.getForm(state, form.organizationFormId));\n saveFormService(\n { ...form },\n {\n successAction: (response) => {\n const editedForm = camelcaseKeys(response?.data);\n store.dispatch(actions.completeEditingForm({ ...editedForm, questions: [] }));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingForm(oldForm, error));\n }\n }\n );\n}\n\nexport function* watchEditFormsStarted() {\n yield takeEvery(types.FORM_EDIT_STARTED, editForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD EXTERNAL */\n/* -------------------------------------------------------------------------- */\nfunction* addFormExternal(action) {\n const form = action.payload;\n saveExternalFormService(\n { ...form, organizationFormId: null },\n {\n successAction: (response) => {\n const addedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingForm(form.organizationFormId, addedForm));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingForm(form.organizationFormId, error));\n }\n }\n );\n}\n\nexport function* watchAddExternalFormsStarted() {\n yield takeEvery(types.FORM_EXTERNAL_ADD_STARTED, addFormExternal);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT EXTERNAL */\n/* -------------------------------------------------------------------------- */\nfunction* editFormExternal(action) {\n const form = action.payload;\n const { oldForm } = yield select((state) => selectors.getForm(state, form.organizationFormId));\n saveExternalFormService(\n { ...form },\n {\n successAction: (response) => {\n const editedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingForm({ ...editedForm, questions: [] }));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingForm(oldForm, error));\n }\n }\n );\n}\n\nexport function* watchEditExternalFormsStarted() {\n yield takeEvery(types.FORM_EXTERNAL_EDIT_STARTED, editFormExternal);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeForm(action) {\n const { formId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedForm = yield select((state) => selectors.getForm(state, formId));\n const response = yield call(fetch, `${API_BASE_URL}/form/delete`, {\n method: 'POST',\n body: JSON.stringify({ formId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingForm(formId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'forms.form'\n }),\n name: deletedForm.organizationFormName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingForm(formId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingForm(formId, error));\n }\n}\n\nexport function* watchRemoveFormStarted() {\n yield takeEvery(types.FORM_REMOVE_STARTED, removeForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Save responses */\n/* -------------------------------------------------------------------------- */\nfunction* saveResponse(action) {\n const formResponse = action.payload;\n saveResponseFormService(\n { ...formResponse },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAddingResponse());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingResponse());\n }\n }\n );\n}\n\nexport function* watchResponseAddedStarted() {\n yield takeEvery(types.FORM_RESPONSE_SAVE_STARTED, saveResponse);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Get responses */\n/* -------------------------------------------------------------------------- */\nfunction* getResponses(action) {\n const payload = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/form/getResponses`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...payload })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const {\n success,\n data: { definition, answers }\n } = jsonResult;\n const camelDefinition = camelcaseKeys(definition);\n const {\n entities: { responses },\n result\n }: { entities: any; result: any[] } = normalize(camelDefinition, schemas.responses);\n const finalObject = {};\n uniq(result).forEach((answer) => {\n const {\n entities: { questions },\n result\n }: { entities: any; result: any[] } = normalize(responses[answer], schemas.questions);\n finalObject[answer] = {\n questions: questions,\n result: result\n };\n });\n yield put(\n actions.completeFetchingResponse(finalObject, uniq(result), payload.organizationFormId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingResponse(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // yield put(actions.failFetchingForm(error));\n }\n}\n\nexport function* watchResponseFetchStarted() {\n yield takeEvery(types.FORM_RESPONSE_FETCH_STARTED, getResponses);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Resend responses */\n/* -------------------------------------------------------------------------- */\nfunction* resendResponse(action) {\n const { organizationFormId, responseIds } = action.payload;\n resendResponseFormService(\n { organizationFormId, responseIds },\n {\n successAction: (response) => {\n store.dispatch(actions.completeResendingResponse(organizationFormId, responseIds));\n },\n errorAction: (error) => {\n store.dispatch(actions.failResendingResponse(organizationFormId, responseIds));\n }\n }\n );\n}\n\nexport function* watchResponseResendStarted() {\n yield takeEvery(types.FORM_RESPONSE_RESEND_STARTED, resendResponse);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Categories */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const category = new schema.Entity('categories', {}, { idAttribute: 'categoryId' });\nexport const categories = new schema.Array(category);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveCategoryDTO, DeleteCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveCategory = (request: SaveCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.categoryName}`,\n object: 'vehicleMaintenance.category',\n action: `${request.categoryId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/categories`, request);\n};\n\nexport const deleteCategory = (request: DeleteCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.categoryName}`,\n object: 'vehicleMaintenance.category',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteCategory/${request.categoryId}`);\n};\n\nexport const getCategoryList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/categories`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/categories';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/categories';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteCategory,\n getCategoryList,\n saveCategory\n} from 'views/screens/vehicleMaintenance/services/categoriesService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { DeleteCategoryDTO, SaveCategoryDTO } from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCategoriesList(action) {\n try {\n const jsonResult = yield call(getCategoryList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { categories },\n result //order\n } = normalize(resultData, schemas.categories); //normalize data to byId and order\n yield put(actions.completeFetchingCategories(categories, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCategories(error));\n }\n}\n\nexport function* watchFetchCategoriesList() {\n yield takeEvery(types.CATEGORIES_FETCH_STARTED, fetchCategoriesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchCategoriesList(action) {}\n\nexport function* watchPartialFetchCategoriesList() {\n yield takeEvery(types.CATEGORIES_PARTIAL_FETCH_STARTED, partialFetchCategoriesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingCategory(addedData.categoryId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingCategory(request.tempId, e));\n }\n}\n\nexport function* watchAddCategoriesStarted() {\n yield takeEvery(types.CATEGORY_ADD_STARTED, addCategory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingCategory({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingCategory(request.categoryId, e));\n }\n}\n\nexport function* watchEditCategoriesStarted() {\n yield takeEvery(types.CATEGORY_EDIT_STARTED, editCategory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteCategory, request);\n yield put(actions.completeRemovingCategory(request.categoryId));\n } catch (e) {\n yield put(actions.failRemovingCategory(request.categoryId, e));\n }\n}\n\nexport function* watchRemoveCategoryStarted() {\n yield takeEvery(types.CATEGORY_REMOVE_STARTED, removeCategory);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Subdivisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const maintenanceLine = new schema.Entity(\n 'maintenanceLines',\n {},\n { idAttribute: 'maintenanceLineId' }\n);\nexport const maintenanceLines = new schema.Array(maintenanceLine);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/maintenanceLine';\n\nexport const getMaintenanceLinesListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'maintenanceLines.maintenanceLine',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'maintenanceLines.maintenanceLine',\n action: request.maintenanceLineId ? 'Edit' : 'Create',\n name: request.maintenanceLineName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.maintenanceLineName}`,\n object: 'maintenanceLines.maintenanceLine',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const copyMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n name: `${request.maintenanceLineName}`,\n object: 'maintenanceLines.maintenanceLine',\n action: 'Custom',\n genderType: 'SingularFemale',\n customMessage: intl.formatMessage({\n id: 'maintenanceLines.copySuccessful'\n }),\n customMessageError: intl.formatMessage({\n id: 'maintenanceLines.copyError'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/copy`, request);\n};\n\nexport const importMaintenanceLinesService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importMaintenanceLines`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getMaintenanceLinesListService,\n saveMaintenanceLineService,\n deleteMaintenanceLineService,\n copyMaintenanceLineService,\n importMaintenanceLinesService\n} from '../services';\nimport { store } from 'redux/storeConfig/store';\nimport { MaintenancePlans } from '../types';\n\nconst mapStringToObject = (range: string) => {\n const [odometer, title, description, maintenanceRangeId, maintenanceLineId] = range.split('~');\n return {\n odometer: parseInt(odometer),\n title,\n description,\n maintenanceRangeId: Number(maintenanceLineId),\n maintenanceLineId: Number(maintenanceRangeId)\n };\n};\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchMaintenanceLinesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n // @ts-ignore\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getMaintenanceLinesListService(\n { operatorId, organizationId },\n {\n successAction: (response: { data: MaintenancePlans[] }) => {\n const resultData = response.data.map((result) => {\n const r = camelcaseKeys(result);\n return {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n });\n const {\n entities: { maintenanceLines },\n result //order\n } = normalize(resultData, schemas.maintenanceLines); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingMaintenanceLines(\n maintenanceLines,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMaintenanceLines(error));\n }\n }\n );\n}\n\nexport function* watchFetchMaintenanceLinesList() {\n yield takeEvery(types.MAINTENANCE_LINES_FETCH_STARTED, fetchMaintenanceLinesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchMaintenanceLinesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n // @ts-ignore\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getMaintenanceLinesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response: { data: MaintenancePlans[] }) => {\n const resultData = response.data.map((result) => {\n const r = camelcaseKeys(result);\n return {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n });\n const {\n entities: { maintenanceLines },\n result //order\n } = normalize(resultData, schemas.maintenanceLines); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingMaintenanceLines(\n maintenanceLines,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingMaintenanceLines(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchMaintenanceLinesList() {\n yield takeEvery(types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED, partialFetchMaintenanceLinesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n saveMaintenanceLineService(\n { ...maintenanceLine, maintenanceLineId: null },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const addedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(\n actions.completeAddingMaintenanceLine(\n maintenanceLine.maintenanceLineId,\n addedMaintenanceLine\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingMaintenanceLine(maintenanceLine.maintenanceLineId, error));\n }\n }\n );\n}\n\nexport function* watchAddMaintenanceLinesStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_ADD_STARTED, addMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n const oldMaintenanceLine = yield select((state) =>\n selectors.getMaintenanceLine(state, maintenanceLine.maintenanceLineId)\n );\n saveMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const editedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(actions.completeEditingMaintenanceLine(editedMaintenanceLine));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingMaintenanceLine(oldMaintenanceLine, error));\n }\n }\n );\n}\n\nexport function* watchEditMaintenanceLinesStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_EDIT_STARTED, editMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeMaintenanceLine(action) {\n const { maintenanceLineId } = action.payload;\n const maintenanceLine = yield select((state) =>\n selectors.getMaintenanceLine(state, maintenanceLineId)\n );\n deleteMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingMaintenanceLine(maintenanceLineId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingMaintenanceLine(maintenanceLineId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveMaintenanceLineStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_REMOVE_STARTED, removeMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* COPY */\n/* -------------------------------------------------------------------------- */\nfunction* copyMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n copyMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const copiedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(actions.completeCopyMaintenanceLine(copiedMaintenanceLine));\n },\n errorAction: (error) => {\n store.dispatch(actions.failCopyMaintenanceLine(error));\n }\n }\n );\n}\n\nexport function* watchCopyMaintenanceLineStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_COPY_STARTED, copyMaintenanceLine);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Notices */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const notice = new schema.Entity(\n 'notices',\n {},\n { idAttribute: (value) => `${value.unitId}-${value.noticeId}` }\n);\nexport const notices = new schema.Array(notice);\n","import { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { HttpWebtrack } from 'utility/http';\nimport { NoticeByDateRequest, NoticeByHourmeterRequest, NoticeByOdometerRequest } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { ConfigActions } from 'utility/http/http-events';\n\nexport const baseUrl = '/vehicleMaintenance';\n\nexport const saveNoticeByOdometer = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByOdometer`, request);\n};\n\nexport const saveNoticeByHourmeter = (\n request: Partial,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByHourMeter`, request);\n};\n\nexport const saveNoticeByDate = (request: NoticeByDateRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByDate`, request);\n};\n\nexport const deleteNotice = (request: { noticeId: number; unitId: number }) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteNotice/${request.noticeId}/${request.unitId}`);\n};\n\nexport const getNoticeByOdometerList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByOdometer`);\n};\n\nexport const getNoticeByDateList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByDate`);\n};\n\nexport const getNoticeByHourmeterList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByHourmeter`);\n};\n\nexport const renewNoticeByOdometer = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByOdometer`, request);\n};\n\nexport const renewNoticeByHourmeter = (request: NoticeByHourmeterRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByHourmeter`, request);\n};\n\nexport const renewNoticeByDate = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByDate`, request);\n};\n","import { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByOdometerList,\n renewNoticeByOdometer,\n saveNoticeByOdometer\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { NoticeByOdometerRequest } from 'views/screens/vehicleMaintenance/types';\nimport { getPreventiveNoticesByOdometerFormattedData } from 'views/screens/vehicleMaintenance/utils/getPreventiveNoticesByOdometerIndicators';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const intl = appIntl();\n const jsonResult = yield call(getNoticeByOdometerList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n\n // SE CALCULA EL PROGRESO Y EL LABEL PARA CADA UNO DE LOS AVISOS PREVENTIVOS\n let entitiesCop = getPreventiveNoticesByOdometerFormattedData(resultData, intl);\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_ODOMETER_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(`${addedData.unitId}-${addedData.noticeId}`, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(renewNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_REMOVE_STARTED, removeNotice);\n}\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByDate';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByDateList,\n saveNoticeByDate\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { NoticeByDateRequest } from 'views/screens/vehicleMaintenance/types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const jsonResult = yield call(getNoticeByDateList);\n const entitiesCop = jsonResult.map((result) => camelcaseKeys(result));\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_DATE_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_DATE_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(`${addedData.unitId}-${addedData.noticeId}`, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n /*\n const jsonResult = yield call(renewNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n */\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_REMOVE_STARTED, removeNotice);\n}\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByHourmeter';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByHourmeterList,\n saveNoticeByHourmeter,\n renewNoticeByHourmeter\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n NoticeByDateRequest,\n NoticeByHourmeterRequest\n} from 'views/screens/vehicleMaintenance/types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const jsonResult = yield call(getNoticeByHourmeterList);\n const entitiesCop = jsonResult.map((result) => camelcaseKeys(result));\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_HOURMETER_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n // @ts-ignore\n const jsonResult = yield call(saveNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(\n `${addedData.unitId}-${addedData.noticeId}`,\n request?.tempId ?? '',\n {\n ...request,\n ...addedData\n }\n )\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n // @ts-ignore\n const jsonResult = yield call(saveNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(renewNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_REMOVE_STARTED, removeNotice);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const provider = new schema.Entity('providers', {}, { idAttribute: 'providerId' });\nexport const providers = new schema.Array(provider);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveProviderCategoryDTO, DeleteProviderCategoryDTO } from '../types';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveProviderCategory = (request: SaveProviderCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.providerName}`,\n object: 'vehicleMaintenance.provider',\n action: `${request.providerId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/providers`, request);\n};\n\nexport const deleteProviderCategory = (request: DeleteProviderCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.providerName}`,\n object: 'vehicleMaintenance.provider',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteProvider/${request.providerId}`);\n};\n\nexport const getProviderList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/providers`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/providers';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/providers';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/providers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteProviderCategory,\n getProviderList,\n saveProviderCategory\n} from 'views/screens/vehicleMaintenance/services/providersService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n DeleteProviderCategoryDTO,\n SaveProviderCategoryDTO\n} from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchProvidersList(action) {\n try {\n const jsonResult = yield call(getProviderList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { providers },\n result //order\n } = normalize(resultData, schemas.providers); //normalize data to byId and order\n yield put(actions.completeFetchingProviders(providers, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n}\n\nexport function* watchFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_FETCH_STARTED2, fetchProvidersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchProvidersList(action) {}\n\nexport function* watchPartialFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_PARTIAL_FETCH_STARTED2, partialFetchProvidersList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveProviderCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingProvider(addedData.providerId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingProvider(request.tempId, e));\n }\n}\n\nexport function* watchAddProvidersStarted() {\n yield takeEvery(types.PROVIDER_ADD_STARTED, addProvider);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveProviderCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingProvider({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingProvider(request.providerId, e));\n }\n}\n\nexport function* watchEditProvidersStarted() {\n yield takeEvery(types.PROVIDER_EDIT_STARTED, editProvider);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteProviderCategory, request);\n yield put(actions.completeRemovingProvider(request.providerId));\n } catch (e) {\n yield put(actions.failRemovingProvider(request.providerId, e));\n }\n}\n\nexport function* watchRemoveProviderStarted() {\n yield takeEvery(types.PROVIDER_REMOVE_STARTED, removeProvider);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workmanships */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workmanship = new schema.Entity('workmanships', {}, { idAttribute: 'workmanshipId' });\nexport const workmanships = new schema.Array(workmanship);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveWorkmanshipCategoryDTO, DeleteWorkmanshipCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveWorkmanshipCategory = (request: SaveWorkmanshipCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.description}`,\n object: 'vehicleMaintenance.workmanship',\n action: `${request.workmanshipId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/workmanship`, request);\n};\n\nexport const deleteWorkmanshipCategory = (request: DeleteWorkmanshipCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.description}`,\n object: 'vehicleMaintenance.workmanship',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteWorkmanship/${request.workmanshipId}`);\n};\n\nexport const getWorkmanshipsList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/workmanship`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/workmanship';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/workmanship';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/workmanship';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteWorkmanshipCategory,\n getWorkmanshipsList,\n saveWorkmanshipCategory\n} from 'views/screens/vehicleMaintenance/services/workmanshipService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { SaveWorkmanshipCategoryDTO } from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkmanshipsList(action) {\n try {\n const jsonResult = yield call(getWorkmanshipsList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { workmanships },\n result //order\n } = normalize(resultData, schemas.workmanships); //normalize data to byId and order\n yield put(actions.completeFetchingWorkmanships(workmanships, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkmanships(error));\n }\n}\n\nexport function* watchFetchWorkmanshipsList() {\n yield takeEvery(types.WORKMANSHIPS_FETCH_STARTED, fetchWorkmanshipsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchWorkmanshipsList(action) {}\n\nexport function* watchPartialFetchWorkmanshipsList() {\n yield takeEvery(types.WORKMANSHIPS_PARTIAL_FETCH_STARTED, partialFetchWorkmanshipsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkmanship(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveWorkmanshipCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingWorkmanship(addedData.workmanshipId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingWorkmanship(request.tempId, e));\n }\n}\n\nexport function* watchAddWorkmanshipsStarted() {\n yield takeEvery(types.WORKMANSHIP_ADD_STARTED, addWorkmanship);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkmanship(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveWorkmanshipCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingWorkmanship({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingWorkmanship(request.workmanshipId, e));\n }\n}\n\nexport function* watchEditWorkmanshipsStarted() {\n yield takeEvery(types.WORKMANSHIP_EDIT_STARTED, editWorkmanship);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkmanship(action: PayloadAction<{ workmanshipId: number; description: string }>) {\n const request = action.payload;\n try {\n yield call(deleteWorkmanshipCategory, request);\n yield put(actions.completeRemovingWorkmanship(request.workmanshipId));\n } catch (e) {\n yield put(actions.failRemovingWorkmanship(request.workmanshipId, e));\n }\n}\n\nexport function* watchRemoveWorkmanshipStarted() {\n yield takeEvery(types.WORKMANSHIP_REMOVE_STARTED, removeWorkmanship);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sparePart = new schema.Entity('spareParts', {}, { idAttribute: 'sparePartId' });\nexport const spareParts = new schema.Array(sparePart);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveSparePartCategoryDTO, DeleteSparePartCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveSparePartCategory = (request: SaveSparePartCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.sparePartName}`,\n object: 'vehicleMaintenance.sparepart',\n action: `${request.sparePartId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/spareParts`, request);\n};\n\nexport const deleteSparePartCategory = (request: DeleteSparePartCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.sparePartName}`,\n object: 'vehicleMaintenance.sparepart',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteSparePart/${request.sparePartId}`);\n};\n\nexport const getSparePartList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/spareParts`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/spareParts';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/spareParts';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/spareParts';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteSparePartCategory,\n getSparePartList,\n saveSparePartCategory\n} from 'views/screens/vehicleMaintenance/services/sparePartsService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n DeleteSparePartCategoryDTO,\n SaveSparePartCategoryDTO\n} from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSparePartsList(action) {\n try {\n const jsonResult = yield call(getSparePartList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { spareParts },\n result //order\n } = normalize(resultData, schemas.spareParts); //normalize data to byId and order\n yield put(actions.completeFetchingSpareParts(spareParts, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSpareParts(error));\n }\n}\n\nexport function* watchFetchSparePartsList() {\n yield takeEvery(types.SPAREPARTS_FETCH_STARTED, fetchSparePartsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSparePartsList(action) {}\n\nexport function* watchPartialFetchSparePartsList() {\n yield takeEvery(types.SPAREPARTS_PARTIAL_FETCH_STARTED, partialFetchSparePartsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveSparePartCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingSparePart(addedData.sparePartId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingSparePart(request.tempId, e));\n }\n}\n\nexport function* watchAddSparePartsStarted() {\n yield takeEvery(types.SPAREPART_ADD_STARTED, addSparePart);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveSparePartCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingSparePart({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingSparePart(request.sparePartId, e));\n }\n}\n\nexport function* watchEditSparePartsStarted() {\n yield takeEvery(types.SPAREPART_EDIT_STARTED, editSparePart);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteSparePartCategory, request);\n yield put(actions.completeRemovingSparePart(request.sparePartId));\n } catch (e) {\n yield put(actions.failRemovingSparePart(request.sparePartId, e));\n }\n}\n\nexport function* watchRemoveSparePartStarted() {\n yield takeEvery(types.SPAREPART_REMOVE_STARTED, removeSparePart);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const protocol = new schema.Entity('protocols', {}, { idAttribute: 'protocolId' });\nexport const protocols = new schema.Array(protocol);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/protocol';\n\ninterface ProtocolAddRequest {\n protocolId: number;\n protocolName: string;\n protocolDescription: string;\n eventTypes: string;\n protocolPriority: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n}\n\ninterface ProtocolDeleteRequest {\n protocolId: number;\n protocolName: string;\n}\n\nexport const getProtocolsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveProtocolService = (request: ProtocolAddRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: request.protocolId ? 'Edit' : 'Create',\n name: request.protocolName,\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteProtocolService = (\n request: ProtocolDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: 'Delete',\n name: `${request.protocolName}`,\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport {\n deleteProtocolService,\n getProtocolsListService,\n saveProtocolService\n} from '../services/protocols';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchProtocolsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n getProtocolsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { protocols },\n result\n } = normalize(resultData, schemas.protocols);\n store.dispatch(\n actions.completeFetchingProtocols(protocols, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingProtocols(error));\n }\n }\n );\n}\n\nexport function* watchFetchProtocolsList() {\n yield takeEvery(types.PROTOCOLS_FETCH_STARTED, fetchProtocolsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\n\nfunction* partialFetchProtocolsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getProtocolsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { protocols },\n result\n } = normalize(resultData, schemas.protocols);\n store.dispatch(\n actions.completePartialFetchingProtocols(protocols, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingProtocols(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchProtocolsList() {\n yield takeEvery(types.PROTOCOLS_PARTIAL_FETCH_STARTED, partialFetchProtocolsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\n\nfunction* addProtocol(action) {\n const protocol = action.payload;\n saveProtocolService(\n {\n ...protocol,\n protocolId: null\n },\n {\n successAction: (response) => {\n const addedProtocol = camelcaseKeys(response?.data[0]);\n console.log('addedProtocol', addedProtocol);\n store.dispatch(actions.completeAddingProtocol(protocol.protocolId, addedProtocol));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingProtocol(protocol.protocolId, error));\n }\n }\n );\n}\n\nexport function* watchAddProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_ADD_STARTED, addProtocol);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\n\nfunction* editProtocol(action) {\n const protocol = action.payload;\n const oldProtocol = yield select((state) => selectors.getProtocol(state, protocol.protocolId));\n saveProtocolService(\n {\n ...protocol\n },\n {\n successAction: (response) => {\n const editedProtocol = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeEditingProtocol(editedProtocol));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingProtocol(oldProtocol, error));\n }\n }\n );\n}\n\nexport function* watchEditProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_EDIT_STARTED, editProtocol);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeProtocol(action) {\n const { protocolId } = action.payload;\n const protocol = yield select((state) => selectors.getProtocol(state, protocolId));\n deleteProtocolService(\n { ...protocol },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingProtocol(protocolId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingProtocol(protocolId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_REMOVE_STARTED, removeProtocol);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const Destination = new schema.Entity('destinations', {}, { idAttribute: 'etaModelId' });\nexport const Destinations = new schema.Array(Destination);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/etaModel';\n\n\ninterface DestinationFilters {\n operatorId?: number;\n organizationId?: number;\n\n}\n\n\nexport const getDestinationListService = (request: DestinationFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDestinationDropDown`, request);\n};\n","import { select, takeEvery } from 'redux-saga/effects';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as actions from '../actions';\nimport * as schemas from '../schemas';\nimport { getDestinationListService } from '../services';\nimport * as types from '../types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchETAMonitoringDestinationList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n userId: filterUserId\n } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getDestinationListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n console.log('resultData getDestinationListService', resultData);\n const {\n entities: { destinations },\n result //order\n } = normalize(resultData, schemas.Destinations); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingDestination(destinations, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingDestination(error));\n }\n }\n );\n}\n\nexport function* watchFetchETAModelList() {\n yield takeEvery(\n types.ETAMONITORING_DESTINATIONS_FETCH_STARTED,\n fetchETAMonitoringDestinationList\n );\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema User Notifications */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\nexport const userNotification = new schema.Entity(\n 'userNotifications',\n {},\n { idAttribute: 'notificationId' }\n);\nexport const userNotifications = new schema.Array(userNotification);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\n\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as types from '../types';\nimport { camelize } from 'utility/Utils';\nimport {\n getSystemNotificationsListService,\n getUserNotificationsListService,\n markUserNotificationsAsReadService\n} from '../services';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH USER NOTIFICATIONS LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUserNotificationsList(action) {\n const { operatorId, organizationId } = action.payload;\n\n // const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n // filterOperatorId,\n // filterOrganizationId\n // });\n console.log('operatorId', operatorId);\n console.log('organizationId', organizationId);\n if (operatorId && organizationId) {\n getUserNotificationsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { userNotifications },\n result\n } = normalize(resultData, schemas.userNotifications);\n store.dispatch(actions.completeFetchingUserNotifications(userNotifications, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUserNotifications(error));\n }\n }\n );\n }\n}\n\nexport function* watchFetchUserNotificationsList() {\n yield takeEvery(types.USER_NOTIFICATIONS_FETCH_STARTED, fetchUserNotificationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchUserNotificationsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getSystemNotificationsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { userNotifications },\n result\n } = normalize(resultData, schemas.userNotifications);\n store.dispatch(\n actions.completePartialFetchingUserNotifications(\n userNotifications,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingUserNotifications(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchUserNotificationsList() {\n yield takeEvery(\n types.USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED,\n partialFetchUserNotificationsList\n );\n}\n\nfunction* markAsReadUserNotifications(action) {\n const notificationIds = action.payload;\n\n markUserNotificationsAsReadService(\n { notificationIds: notificationIds.join(',') },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const resultIds = resultData.map((result) => result.notificationId);\n console.log('resultIds', resultIds);\n console.log('resultData', resultData);\n store.dispatch(\n actions.completeReadingUserNotification(\n resultData,\n resultData.map((result) => result.notificationId)\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failReadingUserNotification(notificationIds));\n }\n }\n );\n}\n\nexport function* watchMarkAsReadUserNotification() {\n yield takeEvery(types.USER_NOTIFICATION_READ_STARTED, markAsReadUserNotifications);\n}\n","import { all, fork } from 'redux-saga/effects';\nimport {\n watchAddAgentsStarted,\n watchAgentFetchStarted,\n watchEditAgentsStarted,\n watchFetchAgentsList,\n watchPartialFetchAgentsList,\n watchRemoveAgentStarted\n} from '../../views/screens/Agents/sagas';\nimport {\n watchAddDivisionsStarted,\n watchEditDivisionsStarted,\n watchFetchDivisionsList,\n watchPartialFetchDivisionsList,\n watchRemoveDivisionStarted\n} from '../../views/screens/Divisions/sagas';\nimport { watchFetchEntitiesList, watchUpdateEntities } from '../../views/screens/Entities/sagas';\nimport {\n watchAddGeofencesStarted,\n watchAssignGeofenceUnit,\n watchEditGeofenceAssignation,\n watchEditGeofencesStarted,\n watchFetchGeofenceById,\n watchFetchGeofencesList,\n watchPartialFetchGeofencesList,\n watchRemoveAllAssignmentsByGeofences,\n watchRemoveAllAssignmentsByUnits,\n watchRemoveGeofenceAssignation,\n watchRemoveGeofenceStarted\n} from '../../views/screens/Geofences/sagas';\nimport {\n watchAddModulesStarted,\n watchEditModulesStarted,\n watchFetchModulesList,\n watchModuleFetchStarted,\n watchPartialFetchModulesList,\n watchRemoveModuleStarted\n} from '../../views/screens/Modules/sagas';\nimport {\n watchAddOperatorsStarted,\n watchEditOperatorStandardPricesStarted,\n watchEditOperatorsStarted,\n watchFetchOperatorsList,\n watchPartialFetchOperatorsList,\n watchRemoveOperatorStarted\n} from '../../views/screens/Operators/sagas';\nimport {\n watchAddOrganizationDowntimeReasonsStarted,\n watchAddOrganizationsStarted,\n watchCodeAssignStarted,\n watchEditOrganizationDowntimeReasonsStarted,\n watchEditOrganizationsStarted,\n watchFetchOrganizationsList,\n watchPartialFetchOrganizationsList,\n watchRegistrationCodeStarted,\n watchRemoveOrganizationDowntimeReasonsStarted,\n watchRemoveOrganizationStarted,\n watchSaveConsolidableEventsStarted\n} from '../../views/screens/Organizations/sagas';\nimport {\n watchAddServiceClassesStarted,\n watchEditServiceClassesStarted,\n watchFetchServiceClassesList,\n watchRemoveServiceClassStarted,\n watchServiceClassFetchStarted\n} from '../../views/screens/ServiceClasses/sagas';\nimport {\n watchAddSubdivisionsStarted,\n watchEditSubdivisionsStarted,\n watchFetchSubdivisionsList,\n watchPartialFetchSubdivisionsList,\n watchRemoveSubdivisionStarted\n} from '../../views/screens/Subdivisions/sagas';\nimport {\n watchAcknowledgeUnitEvent,\n watchActiveUnits,\n watchAddUnitsStarted,\n watchAssignDriverUnitsStarted,\n watchCreateSharedLinkUnitStarted,\n watchEditUnitsStarted,\n watchEndUnitDowntimeStarted,\n watchExecuteDeviceAction,\n watchFetchUnitById,\n watchFetchUnitHistoricalPositionsStarted,\n watchFetchUnitInformationStarted,\n watchFetchUnitTrajectoryStarted,\n watchFetchUnitsList,\n watchFetchUnitsLiveStatusList,\n watchPartialFetchUnitsList,\n watchRemoveUnitStarted,\n watchStartUnitDowntimeStarted,\n watchUpdateSim\n} from '../../views/screens/Units/sagas';\nimport {\n watchAddSchedulesStarted,\n watchAddShiftStarted,\n watchEditSchedulesShiftStarted,\n watchEditSchedulesStarted,\n watchFetchSchedulesList,\n watchPartialFetchSchedulesList,\n watchRemoveScheduleStarted\n} from './../../views/screens/Schedules/sagas';\nimport {\n watchChangeProductStarted,\n watchFetchUserBookmarksStarted,\n watchForceRefreshToken,\n watchLoginStarted,\n watchRefreshTokenStarted,\n watchUpdateMapFilterTabPinnedStarted,\n watchUpdateMapProfileSettingsStarted,\n watchUpdateProfileGeneralInformationStarted,\n watchUpdateProfileHomeScreenStarted,\n watchUpdateProfileMapOptionsStarted,\n watchUpdateProfilePasswordStarted,\n watchUpdateUserBookmarkssStarted,\n watchUserInformationRequest\n} from './auth';\n\nimport {\n watchAddRoutesStarted,\n watchCopyRouteStarted,\n watchEditRoutesStarted,\n watchFetchRoutesList,\n watchPartialFetchRoutesList,\n watchRemoveRouteStarted,\n watchRemoveRoutesStarted\n} from '../../views/screens/Routes/sagas/routes';\n\nimport {\n watchAddContactsStarted,\n watchEditContactsStarted,\n watchFetchContactsList,\n watchRemoveContactsStarted\n} from 'views/screens/Contacts/sagas';\nimport { watchFetchRouteCheckpointsList } from '../../views/screens/Routes/sagas/routeCheckpoints';\nimport {\n watchEditAssignmentsStarted,\n watchFetchAssignmentsList,\n watchImportRouteAssignments,\n watchRemoveAssignmentStarted\n} from '../../views/screens/Routes/sagas/routesAssignments';\nimport {\n watchAddCommentsStarted,\n watchEditCommentsStarted,\n watchFetchCommentsList,\n watchRemoveCommentStarted\n} from '../../views/screens/Routes/sagas/routesComments';\nimport {\n watchAsignRouteExecutionUnit,\n watchChangeToAlternateRouteStarted,\n watchEditRouteExecutionStarted,\n watchFetchRoutesExecutions\n} from '../../views/screens/Routes/sagas/routesExecutions';\nimport { watchFetchRoutesReport } from '../../views/screens/Routes/sagas/routesReport';\nimport {\n watchAddMonitoringUsersStarted,\n watchAssignScheduleUsersStarted,\n watchEditMonitoringUsersStarted,\n watchFetchMonitoringUserById,\n watchFetchMonitoringUsersList,\n watchPartialFetchMonitoringUsersList,\n watchRemoveMonitoringUserStarted,\n watchSaveMonitoringUserRolesAndPermissionsStarted,\n watchUnassignScheduleUsersStarted,\n watchUpdateMonitoringUserPasswordStarted\n} from '../../views/screens/Users/sagas';\nimport {\n watchAddWorkplansStarted,\n watchAssignDestinationGeofenceStarted,\n watchAssignOriginGeofenceStarted,\n watchAssignWorkGeofenceStarted,\n watchCopyWorkplanStarted,\n watchEditWorkplansStarted,\n watchFetchWorkplanLocationsList,\n watchFetchWorkplansList,\n watchPartialFetchWorkplansList,\n watchRemoveWorkplanStarted\n} from '../../views/screens/Workplans/sagas/workplans';\nimport {\n watchEditWorkplanAssignmentByDateTimeStarted,\n watchEditWorkplanAssignmentByScheduleStarted,\n watchFetchWorkplansAssignmentsList,\n watchRemoveWorkplanAssignmentStarted\n} from '../../views/screens/Workplans/sagas/workplansAssignments';\nimport {\n watchAddWorkplansCommentStarted,\n watchFetchWorkplansCommentsList,\n watchRemoveWorkplansCommentStarted\n} from '../../views/screens/Workplans/sagas/workplansComments';\nimport {\n watchAddWorkplanExecutionLocationsStarted,\n watchEditWorkplanExecutionLocationsStarted,\n watchRemoveWorkplanExecutionLocationStarted\n} from '../../views/screens/Workplans/sagas/workplansExecutionLocations';\nimport {\n watchAsignWorkplanExecutionUnit,\n watchCancelWorkplanExecution,\n watchChangeWorkplanExecutionUnit,\n watchFetchWorkplanExecution,\n watchFetchWorkplansExecutions,\n watchFinalizeWorkplanExecution,\n watchManualTransitWorkplanExecution\n} from '../../views/screens/Workplans/sagas/workplansExecutions';\nimport { watchFetchWorkplansReport } from '../../views/screens/Workplans/sagas/workplansReport';\nimport {\n watchFetchWorkplansAllVisits,\n watchFetchWorkplansVisits\n} from '../../views/screens/Workplans/sagas/workplansVisits';\nimport { watchFetchConfigurationsList } from './configurations';\nimport { watchFetchModelsList } from './models';\nimport { watchFetchBrandsList } from './static-catalogs/brands';\n\nimport {\n watchFetchCountriesList,\n watchFetchCurrenciesList,\n watchFetchInsuranceAgentsList,\n watchFetchInsuranceCompaniesList,\n watchFetchLocationClassesList,\n watchFetchPaymentMethodsList,\n watchFetchProvidersList,\n watchFetchSensorBrandsList,\n watchFetchSensorMeasuresList,\n watchFetchSensorModelsList,\n watchFetchTimeZonesList,\n watchFetchVehicleMakersList,\n watchFetchVehicleModelsList\n} from './static-catalogs';\n\nimport {\n watchAddSimsStarted,\n watchEditSimsStarted,\n watchFetchSimById,\n watchFetchSimsList,\n watchPartialFetchSimsList,\n watchRemoveSimStarted\n} from '../../views/screens/SIMs/sagas';\n\nimport {\n watchAddVehiclesStarted,\n watchEditVehiclesStarted,\n watchFetchVehiclesList,\n watchLicenseCheckStarted,\n watchPartialFetchVehiclesList,\n watchRemoveVehicleStarted\n} from '../../views/screens/Vehicles/sagas';\n\nimport {\n watchAddAssetsStarted,\n watchEditAssetsStarted,\n watchFetchAssetsList,\n watchIdentifierCheckStarted,\n watchPartialFetchAssetsList,\n watchRemoveAssetStarted,\n watchSecuritySealCodeCheckStarted\n} from '../../views/screens/Assets/sagas';\n\nimport {\n watchAddSensorsStarted,\n watchEditSensorsStarted,\n watchFetchSensorsList,\n watchPartialFetchSensorsList,\n watchRemoveSensorStarted,\n watchSensorCalibrationFinalizeStarted,\n watchSensorCalibrationStartStarted,\n watchSensorIdentifierCheckStarted\n} from '../../views/screens/Sensors/sagas';\n\nimport {\n watchAddLocationsStarted,\n watchEditLocationsStarted,\n watchFetchLocationById,\n watchFetchLocationsList,\n watchImportLocationsStarted,\n watchPartialFetchLocationsList,\n watchRemoveLocationStarted\n} from '../../views/screens/Locations/sagas';\n\nimport {\n watchAddDriversStarted,\n watchAssignDriversToUnits,\n watchAssignSensor,\n watchEditDriversStarted,\n watchFetchDriversList,\n watchPartialFetchDriversList,\n watchRemoveDriverStarted,\n watchStartImportDriverAndUnit,\n watchUnassignSensor\n} from '../../views/screens/Drivers/sagas';\n\nimport {\n watchAddJobsBacklogStarted,\n watchAssignFilesJobsBacklogStarted,\n watchAssignFormsJobsBacklogStarted,\n watchAssignUsersJobsBacklogStarted,\n watchChangeDueDateJobsBacklogStarted,\n watchChangeMinMaxTimeJobsBacklogStarted,\n watchChangePriorityJobsBacklogStarted,\n watchChangeStartDateJobsBacklogStarted,\n watchChangeStatusJobsBacklogStarted,\n watchChangeStatusJobsBoardStarted,\n watchEditJobsBacklogStarted,\n watchFetchJob,\n watchFetchJobsBacklogList,\n watchFetchJobsBoardList,\n watchFetchJobsReportList,\n watchImportJobsStarted,\n watchPartialFetchJobsBacklogList,\n watchRemoveJobsBacklogStarted,\n watchRescheduleJobsStarted\n} from '../../views/screens/Jobs/sagas';\n\nimport {\n watchAddEntitiesToGroup,\n watchAddGroupStarted,\n watchAddGroupWithEntitiesStarted,\n watchEditConfigurationNotificationsStarted,\n watchEditGroupsStarted,\n watchEditUserProfileInGroup,\n watchFetchAllEntitiesInGroup,\n watchFetchGroupById,\n watchFetchGroupsList,\n watchLeaveGroupStarted,\n watchPartialFetchGroupsList,\n watchRemoveEntitiesFromGroup,\n watchRemoveGroupStarted\n} from '../../views/screens/Groups/sagas';\n\nimport {\n watchAcceptDenyQuotationCustomerStarted,\n watchAddQuotationsStarted,\n watchApproveDenyQuotationManagementStarted,\n watchCheckQuotationSchedulingStarted,\n watchCopyQuotationsStarted,\n watchEditQuotationsStarted,\n watchFetchQuotationsList,\n watchPartialFetchQuotationsList,\n watchRemoveQuotationStarted,\n watchScheduleQuotationsStarted,\n watchSetTimesupQuotationStarted\n} from '../../views/screens/Quotations/sagas';\n\nimport {\n watchAddOrganizationContractsStarted,\n watchEditOrganizationContractsStarted,\n watchFetchOrganizationContractsList,\n watchPartialFetchOrganizationContractsList,\n watchRemoveOrganizationContractStarted\n} from '../../views/screens/Contracts/sagas';\n\nimport {\n watchAddContractTemplatesStarted,\n watchEditContractTemplatesStarted,\n watchFetchContractTemplatesList,\n watchPartialFetchContractTemplatesList,\n watchRemoveContractTemplateStarted\n} from '../../views/screens/ContractTemplates/sagas';\n\nimport {\n watchAddCustomersStarted,\n watchEditCustomersStarted,\n watchFetchCustomersList,\n watchPartialFetchCustomersList,\n watchRemoveCustomerStarted\n} from '../../views/screens/Customers/sagas';\n\nimport {\n watchAddOfficesStarted,\n watchEditOfficesStarted,\n watchFetchOfficesList,\n watchPartialFetchOfficesList,\n watchRemoveOfficeStarted\n} from '../../views/screens/Offices/sagas';\n\nimport {\n watchAddExternalFormsStarted,\n watchAddFormsStarted,\n watchEditExternalFormsStarted,\n watchEditFormsStarted,\n watchFetchFormsList,\n watchFetchQuestions,\n watchFetchSections,\n watchPartialFetchFormsList,\n watchRemoveFormStarted,\n watchResponseAddedStarted,\n watchResponseFetchStarted,\n watchResponseResendStarted\n} from '../../views/screens/Forms/sagas';\n\nimport {\n watchAddCategoriesStarted,\n watchEditCategoriesStarted,\n watchFetchCategoriesList,\n watchPartialFetchCategoriesList,\n watchRemoveCategoryStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/categories';\n\nimport {\n watchAddMaintenanceLinesStarted,\n watchCopyMaintenanceLineStarted,\n watchEditMaintenanceLinesStarted,\n watchFetchMaintenanceLinesList,\n watchPartialFetchMaintenanceLinesList,\n watchRemoveMaintenanceLineStarted\n} from '../../views/screens/MaintenanceLines/sagas';\n\nimport {\n watchAddNoticesStarted,\n watchEditNoticesStarted,\n watchFetchNoticesList,\n watchPartialFetchNoticesList,\n watchRemoveNoticeStarted,\n watchRenewNoticesStarted\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByOdometer';\n\nimport {\n watchAddNoticesStarted as watchAddNoticesStarted2,\n watchEditNoticesStarted as watchEditNoticesStarted2,\n watchFetchNoticesList as watchFetchNoticesList2,\n watchPartialFetchNoticesList as watchPartialFetchNoticesList2,\n watchRemoveNoticeStarted as watchRemoveNoticeStarted2,\n watchRenewNoticesStarted as watchRenewNoticesStarted2\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByDate';\n\nimport {\n watchAddNoticesStarted as watchAddNoticesStarted3,\n watchEditNoticesStarted as watchEditNoticesStarted3,\n watchFetchNoticesList as watchFetchNoticesList3,\n watchPartialFetchNoticesList as watchPartialFetchNoticesList3,\n watchRemoveNoticeStarted as watchRemoveNoticeStarted3,\n watchRenewNoticesStarted as watchRenewNoticesStarted3\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByHourmeter';\n\nimport {\n watchAddProvidersStarted,\n watchEditProvidersStarted,\n watchFetchProvidersList as watchFetchProvidersList2,\n watchPartialFetchProvidersList,\n watchRemoveProviderStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/providers';\n\nimport {\n watchAddWorkmanshipsStarted,\n watchEditWorkmanshipsStarted,\n watchFetchWorkmanshipsList,\n watchPartialFetchWorkmanshipsList,\n watchRemoveWorkmanshipStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/workmanship';\n\nimport {\n watchAddSparePartsStarted,\n watchEditSparePartsStarted,\n watchFetchSparePartsList,\n watchPartialFetchSparePartsList,\n watchRemoveSparePartStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/spareParts';\n\nimport {\n watchAddProtocolStarted,\n watchEditProtocolStarted,\n watchFetchProtocolsList,\n watchPartialFetchProtocolsList,\n watchRemoveProtocolStarted\n} from '../../views/screens/Protocols/sagas';\n\nimport { watchFetchETAModelList } from '../../views/screens/ETAModelRoutes/sagas';\n\nimport {\n watchFetchUserNotificationsList,\n watchMarkAsReadUserNotification,\n watchPartialFetchUserNotificationsList\n} from '../../views/screens/Notifications/sagas';\n\nfunction* mainSaga() {\n yield all([\n //Login\n fork(watchLoginStarted),\n fork(watchUserInformationRequest),\n fork(watchRefreshTokenStarted),\n\n //UserSettings\n fork(watchFetchUserBookmarksStarted),\n fork(watchUpdateUserBookmarkssStarted),\n\n //Profile\n fork(watchUpdateProfileGeneralInformationStarted),\n fork(watchUpdateProfileMapOptionsStarted),\n fork(watchUpdateProfilePasswordStarted),\n fork(watchForceRefreshToken),\n fork(watchUpdateMapProfileSettingsStarted),\n fork(watchUpdateProfileHomeScreenStarted),\n fork(watchChangeProductStarted),\n fork(watchUpdateMapFilterTabPinnedStarted),\n\n //Entities\n fork(watchFetchEntitiesList),\n fork(watchUpdateEntities),\n\n //Operators\n fork(watchFetchOperatorsList),\n fork(watchPartialFetchOperatorsList),\n fork(watchAddOperatorsStarted),\n fork(watchEditOperatorsStarted),\n fork(watchEditOperatorStandardPricesStarted),\n fork(watchRemoveOperatorStarted),\n\n //Organizations\n fork(watchFetchOrganizationsList),\n fork(watchPartialFetchOrganizationsList),\n fork(watchAddOrganizationsStarted),\n fork(watchEditOrganizationsStarted),\n fork(watchRemoveOrganizationStarted),\n fork(watchRegistrationCodeStarted),\n fork(watchCodeAssignStarted),\n fork(watchSaveConsolidableEventsStarted),\n fork(watchAddOrganizationDowntimeReasonsStarted),\n fork(watchEditOrganizationDowntimeReasonsStarted),\n fork(watchRemoveOrganizationDowntimeReasonsStarted),\n\n //Divisions\n fork(watchFetchDivisionsList),\n fork(watchPartialFetchDivisionsList),\n fork(watchAddDivisionsStarted),\n fork(watchEditDivisionsStarted),\n fork(watchRemoveDivisionStarted),\n\n //Subdivisions\n fork(watchFetchSubdivisionsList),\n fork(watchPartialFetchSubdivisionsList),\n fork(watchAddSubdivisionsStarted),\n fork(watchEditSubdivisionsStarted),\n fork(watchRemoveSubdivisionStarted),\n\n //Units\n fork(watchFetchUnitsList),\n fork(watchPartialFetchUnitsList),\n fork(watchFetchUnitsLiveStatusList),\n fork(watchFetchUnitInformationStarted),\n fork(watchAddUnitsStarted),\n fork(watchEditUnitsStarted),\n fork(watchRemoveUnitStarted),\n fork(watchFetchUnitHistoricalPositionsStarted),\n fork(watchExecuteDeviceAction),\n fork(watchActiveUnits),\n fork(watchAcknowledgeUnitEvent),\n fork(watchAssignDriverUnitsStarted),\n fork(watchCreateSharedLinkUnitStarted),\n fork(watchEndUnitDowntimeStarted),\n fork(watchStartUnitDowntimeStarted),\n // fork(watchUpdateDevice),\n fork(watchUpdateSim),\n fork(watchFetchUnitById),\n fork(watchFetchUnitTrajectoryStarted),\n\n //Geofences\n fork(watchFetchGeofencesList),\n fork(watchPartialFetchGeofencesList),\n fork(watchAddGeofencesStarted),\n fork(watchEditGeofencesStarted),\n fork(watchRemoveGeofenceStarted),\n fork(watchAssignGeofenceUnit),\n fork(watchRemoveGeofenceAssignation),\n fork(watchRemoveAllAssignmentsByGeofences),\n fork(watchRemoveAllAssignmentsByUnits),\n fork(watchEditGeofenceAssignation),\n fork(watchFetchGeofenceById),\n\n //Locations\n fork(watchFetchLocationsList),\n fork(watchPartialFetchLocationsList),\n fork(watchAddLocationsStarted),\n fork(watchEditLocationsStarted),\n fork(watchRemoveLocationStarted),\n fork(watchImportLocationsStarted),\n fork(watchFetchLocationById),\n\n //Drivers\n fork(watchFetchDriversList),\n fork(watchPartialFetchDriversList),\n fork(watchAddDriversStarted),\n fork(watchEditDriversStarted),\n fork(watchRemoveDriverStarted),\n fork(watchAssignSensor),\n fork(watchUnassignSensor),\n fork(watchStartImportDriverAndUnit),\n fork(watchAssignDriversToUnits),\n\n //JobsBacklog\n fork(watchFetchJobsBacklogList),\n fork(watchFetchJob),\n fork(watchAddJobsBacklogStarted),\n fork(watchEditJobsBacklogStarted),\n fork(watchPartialFetchJobsBacklogList),\n fork(watchAssignFilesJobsBacklogStarted),\n fork(watchAssignFormsJobsBacklogStarted),\n fork(watchAssignUsersJobsBacklogStarted),\n fork(watchChangeDueDateJobsBacklogStarted),\n fork(watchChangeMinMaxTimeJobsBacklogStarted),\n fork(watchChangePriorityJobsBacklogStarted),\n fork(watchChangeStartDateJobsBacklogStarted),\n fork(watchChangeStatusJobsBacklogStarted),\n fork(watchRemoveJobsBacklogStarted),\n fork(watchRescheduleJobsStarted),\n fork(watchFetchJobsBoardList),\n fork(watchChangeStatusJobsBoardStarted),\n fork(watchFetchJobsReportList),\n fork(watchImportJobsStarted),\n\n //Groups\n fork(watchFetchGroupsList),\n fork(watchPartialFetchGroupsList),\n fork(watchFetchAllEntitiesInGroup),\n fork(watchEditGroupsStarted),\n fork(watchEditConfigurationNotificationsStarted),\n fork(watchRemoveEntitiesFromGroup),\n fork(watchAddEntitiesToGroup),\n fork(watchEditUserProfileInGroup),\n fork(watchAddGroupStarted),\n fork(watchAddGroupWithEntitiesStarted),\n fork(watchRemoveGroupStarted),\n fork(watchLeaveGroupStarted),\n fork(watchFetchGroupById),\n\n //Quotations\n fork(watchFetchQuotationsList),\n fork(watchPartialFetchQuotationsList),\n fork(watchAddQuotationsStarted),\n fork(watchEditQuotationsStarted),\n fork(watchRemoveQuotationStarted),\n fork(watchCheckQuotationSchedulingStarted),\n fork(watchScheduleQuotationsStarted),\n fork(watchSetTimesupQuotationStarted),\n fork(watchApproveDenyQuotationManagementStarted),\n fork(watchAcceptDenyQuotationCustomerStarted),\n fork(watchCopyQuotationsStarted),\n\n //Organization Contracts\n fork(watchFetchOrganizationContractsList),\n fork(watchPartialFetchOrganizationContractsList),\n fork(watchAddOrganizationContractsStarted),\n fork(watchEditOrganizationContractsStarted),\n fork(watchRemoveOrganizationContractStarted),\n\n //Contract Templates\n fork(watchFetchContractTemplatesList),\n fork(watchPartialFetchContractTemplatesList),\n fork(watchAddContractTemplatesStarted),\n fork(watchEditContractTemplatesStarted),\n fork(watchRemoveContractTemplateStarted),\n\n //Customers\n fork(watchFetchCustomersList),\n fork(watchPartialFetchCustomersList),\n fork(watchAddCustomersStarted),\n fork(watchEditCustomersStarted),\n fork(watchRemoveCustomerStarted),\n\n //Offices\n fork(watchFetchOfficesList),\n fork(watchPartialFetchOfficesList),\n fork(watchAddOfficesStarted),\n fork(watchEditOfficesStarted),\n fork(watchRemoveOfficeStarted),\n\n //Categories\n fork(watchFetchCategoriesList),\n fork(watchPartialFetchCategoriesList),\n fork(watchAddCategoriesStarted),\n fork(watchEditCategoriesStarted),\n fork(watchRemoveCategoryStarted),\n\n //MaintenanceLines\n fork(watchFetchMaintenanceLinesList),\n fork(watchPartialFetchMaintenanceLinesList),\n fork(watchAddMaintenanceLinesStarted),\n fork(watchEditMaintenanceLinesStarted),\n fork(watchRemoveMaintenanceLineStarted),\n fork(watchCopyMaintenanceLineStarted),\n\n //Notices by Odometer\n fork(watchFetchNoticesList),\n fork(watchPartialFetchNoticesList),\n fork(watchAddNoticesStarted),\n fork(watchEditNoticesStarted),\n fork(watchRemoveNoticeStarted),\n fork(watchRenewNoticesStarted),\n\n //Notices by Date\n fork(watchFetchNoticesList2),\n fork(watchPartialFetchNoticesList2),\n fork(watchAddNoticesStarted2),\n fork(watchEditNoticesStarted2),\n fork(watchRemoveNoticeStarted2),\n fork(watchRenewNoticesStarted2),\n\n //Notices by hour meter\n fork(watchFetchNoticesList3),\n fork(watchPartialFetchNoticesList3),\n fork(watchAddNoticesStarted3),\n fork(watchEditNoticesStarted3),\n fork(watchRemoveNoticeStarted3),\n fork(watchRenewNoticesStarted3),\n\n //Provider\n fork(watchFetchProvidersList2),\n fork(watchPartialFetchProvidersList),\n fork(watchAddProvidersStarted),\n fork(watchEditProvidersStarted),\n fork(watchRemoveProviderStarted),\n\n //SpareParts\n fork(watchFetchSparePartsList),\n fork(watchPartialFetchSparePartsList),\n fork(watchAddSparePartsStarted),\n fork(watchEditSparePartsStarted),\n fork(watchRemoveSparePartStarted),\n\n //Workshops\n fork(watchFetchWorkmanshipsList),\n fork(watchPartialFetchWorkmanshipsList),\n fork(watchAddWorkmanshipsStarted),\n fork(watchEditWorkmanshipsStarted),\n fork(watchRemoveWorkmanshipStarted),\n\n //Routes\n fork(watchFetchRoutesList),\n fork(watchAddRoutesStarted),\n fork(watchEditRoutesStarted),\n fork(watchPartialFetchRoutesList),\n fork(watchRemoveRouteStarted),\n fork(watchRemoveRoutesStarted),\n fork(watchCopyRouteStarted),\n\n //Routes Checkponts\n fork(watchFetchRouteCheckpointsList),\n\n //Routes Executions\n fork(watchFetchRoutesExecutions),\n fork(watchAsignRouteExecutionUnit),\n fork(watchEditRouteExecutionStarted),\n fork(watchChangeToAlternateRouteStarted),\n\n //Routes Assignments\n fork(watchFetchAssignmentsList),\n fork(watchEditAssignmentsStarted),\n fork(watchRemoveAssignmentStarted),\n fork(watchImportRouteAssignments),\n\n //Routes Comments\n fork(watchFetchCommentsList),\n fork(watchAddCommentsStarted),\n fork(watchEditCommentsStarted),\n fork(watchRemoveCommentStarted),\n\n //Routes Report\n fork(watchFetchRoutesReport),\n\n //Schedules\n fork(watchFetchSchedulesList),\n fork(watchPartialFetchSchedulesList),\n fork(watchAddSchedulesStarted),\n fork(watchEditSchedulesStarted),\n fork(watchRemoveScheduleStarted),\n fork(watchEditSchedulesShiftStarted),\n fork(watchAddShiftStarted),\n\n //Service classes\n fork(watchFetchServiceClassesList),\n fork(watchAddServiceClassesStarted),\n fork(watchEditServiceClassesStarted),\n fork(watchServiceClassFetchStarted),\n fork(watchRemoveServiceClassStarted),\n\n //Agents\n fork(watchFetchAgentsList),\n fork(watchPartialFetchAgentsList),\n fork(watchAddAgentsStarted),\n fork(watchEditAgentsStarted),\n fork(watchAgentFetchStarted),\n fork(watchRemoveAgentStarted),\n\n //Modules\n fork(watchFetchModulesList),\n fork(watchPartialFetchModulesList),\n fork(watchAddModulesStarted),\n fork(watchEditModulesStarted),\n fork(watchModuleFetchStarted),\n fork(watchRemoveModuleStarted),\n\n //Brands\n fork(watchFetchBrandsList),\n\n //Workplans\n fork(watchFetchWorkplansList),\n fork(watchPartialFetchWorkplansList),\n fork(watchFetchWorkplanLocationsList),\n fork(watchAddWorkplansStarted),\n fork(watchEditWorkplansStarted),\n fork(watchRemoveWorkplanStarted),\n fork(watchCopyWorkplanStarted),\n fork(watchAssignOriginGeofenceStarted),\n fork(watchAssignWorkGeofenceStarted),\n fork(watchAssignDestinationGeofenceStarted),\n\n //Workplans Executions\n fork(watchFetchWorkplansExecutions),\n fork(watchFetchWorkplanExecution),\n fork(watchCancelWorkplanExecution),\n fork(watchFinalizeWorkplanExecution),\n fork(watchManualTransitWorkplanExecution),\n fork(watchChangeWorkplanExecutionUnit),\n fork(watchAsignWorkplanExecutionUnit),\n\n //Workplan Execution Locations\n fork(watchAddWorkplanExecutionLocationsStarted),\n fork(watchEditWorkplanExecutionLocationsStarted),\n fork(watchRemoveWorkplanExecutionLocationStarted),\n\n //Workplan Comments\n fork(watchFetchWorkplansCommentsList),\n fork(watchAddWorkplansCommentStarted),\n fork(watchRemoveWorkplansCommentStarted),\n\n //Workplan Assignments\n fork(watchFetchWorkplansAssignmentsList),\n fork(watchEditWorkplanAssignmentByScheduleStarted),\n fork(watchEditWorkplanAssignmentByDateTimeStarted),\n fork(watchRemoveWorkplanAssignmentStarted),\n\n //Workplans Visits\n fork(watchFetchWorkplansVisits),\n fork(watchFetchWorkplansAllVisits),\n\n //Workplans Report\n fork(watchFetchWorkplansReport),\n\n //Models\n fork(watchFetchModelsList),\n\n //Configurations\n fork(watchFetchConfigurationsList),\n\n //Contacts\n fork(watchFetchContactsList),\n fork(watchAddContactsStarted),\n fork(watchEditContactsStarted),\n fork(watchRemoveContactsStarted),\n\n //Monitoring Users\n fork(watchFetchMonitoringUsersList),\n fork(watchPartialFetchMonitoringUsersList),\n fork(watchAddMonitoringUsersStarted),\n fork(watchEditMonitoringUsersStarted),\n fork(watchRemoveMonitoringUserStarted),\n fork(watchUpdateMonitoringUserPasswordStarted),\n fork(watchSaveMonitoringUserRolesAndPermissionsStarted),\n fork(watchAssignScheduleUsersStarted),\n fork(watchUnassignScheduleUsersStarted),\n fork(watchFetchMonitoringUserById),\n\n //Static Catalogs\n fork(watchFetchCurrenciesList),\n fork(watchFetchPaymentMethodsList),\n fork(watchFetchTimeZonesList),\n fork(watchFetchProvidersList),\n fork(watchFetchLocationClassesList),\n fork(watchFetchSensorMeasuresList),\n\n //Sims\n fork(watchFetchSimsList),\n fork(watchPartialFetchSimsList),\n fork(watchAddSimsStarted),\n fork(watchEditSimsStarted),\n fork(watchRemoveSimStarted),\n fork(watchFetchSimById),\n\n //Countries\n fork(watchFetchCountriesList),\n\n //Vehicles\n fork(watchFetchVehiclesList),\n fork(watchPartialFetchVehiclesList),\n fork(watchAddVehiclesStarted),\n fork(watchEditVehiclesStarted),\n fork(watchLicenseCheckStarted),\n fork(watchFetchVehicleMakersList),\n fork(watchFetchVehicleModelsList),\n fork(watchFetchInsuranceCompaniesList),\n fork(watchFetchInsuranceAgentsList),\n fork(watchRemoveVehicleStarted),\n\n //Assets\n fork(watchFetchAssetsList),\n fork(watchPartialFetchAssetsList),\n fork(watchEditAssetsStarted),\n fork(watchIdentifierCheckStarted),\n fork(watchAddAssetsStarted),\n fork(watchRemoveAssetStarted),\n fork(watchSecuritySealCodeCheckStarted),\n\n //Sensors\n fork(watchFetchSensorsList),\n fork(watchPartialFetchSensorsList),\n fork(watchFetchSensorBrandsList),\n fork(watchFetchSensorModelsList),\n fork(watchSensorIdentifierCheckStarted),\n fork(watchAddSensorsStarted),\n fork(watchEditSensorsStarted),\n fork(watchRemoveSensorStarted),\n fork(watchSensorCalibrationStartStarted),\n fork(watchSensorCalibrationFinalizeStarted),\n\n //Forms\n fork(watchFetchFormsList),\n fork(watchPartialFetchFormsList),\n fork(watchFetchSections),\n fork(watchFetchQuestions),\n fork(watchAddFormsStarted),\n fork(watchEditFormsStarted),\n fork(watchAddExternalFormsStarted),\n fork(watchEditExternalFormsStarted),\n fork(watchRemoveFormStarted),\n fork(watchResponseAddedStarted),\n fork(watchResponseResendStarted),\n fork(watchResponseFetchStarted),\n\n //Protocols\n fork(watchFetchProtocolsList),\n fork(watchPartialFetchProtocolsList),\n fork(watchAddProtocolStarted),\n fork(watchEditProtocolStarted),\n fork(watchRemoveProtocolStarted),\n\n // Notifications\n fork(watchFetchUserNotificationsList),\n fork(watchPartialFetchUserNotificationsList),\n fork(watchMarkAsReadUserNotification),\n\n //ETA Models\n fork(watchFetchETAModelList)\n ]);\n}\n\nexport default mainSaga;\n","/* eslint-disable semi */\r\nimport { applyMiddleware, compose, createStore } from 'redux';\r\nimport { createInjectorsEnhancer } from 'redux-injectors';\r\nimport { persistReducer, persistStore } from 'redux-persist';\r\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\r\nimport localforage from 'localforage';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport reducer from '../reducers';\r\nimport mainSaga from '../sagas';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst persistConfig = {\r\n key: 'root',\r\n storage: localforage,\r\n stateReconciler: autoMergeLevel2,\r\n blacklist: [\r\n 'auth',\r\n 'entities',\r\n 'workplans',\r\n 'routes',\r\n 'locations',\r\n 'drivers',\r\n 'geofences',\r\n 'jobsBacklog',\r\n 'groups',\r\n 'jobsBoard',\r\n 'jobsReport',\r\n 'units'\r\n ],\r\n //auth is a nested blacklist, check auth reducer for blacklist details\r\n //blacklist no guarda\r\n //whitelist sí guarda\r\n // There is an issue in the source code of redux-persist (default setTimeout does not cleaning)\r\n timeout: null\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, reducer);\r\n\r\nlet composeEnhancers = compose;\r\n\r\n// if (process.env.NODE_ENV === \"development\") {\r\ncomposeEnhancers =\r\n (window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ &&\r\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\r\n trace: true,\r\n traceLimit: 15\r\n })) ||\r\n compose;\r\n// }\r\n\r\nconst runSaga = sagaMiddleware.run;\r\nconst injectEnhancer = createInjectorsEnhancer({\r\n createReducer: reducer,\r\n runSaga\r\n});\r\n\r\n// const store = composeEnhancers(applyMiddleware(sagaMiddleware))(createStore)(persistedReducer);\r\nconst store = createStore(\r\n persistedReducer,\r\n composeEnhancers(applyMiddleware(sagaMiddleware), injectEnhancer)\r\n);\r\n\r\nconst persistor = persistStore(store);\r\n\r\nsagaMiddleware.run(mainSaga);\r\n\r\nexport { persistor, store };\r\n","import { UnitLiveStatus } from './UnitLiveStatusTypes';\n\nexport const UNITS_FETCH_STARTED = 'UNITS_FETCH_STARTED';\nexport const UNITS_FETCH_COMPLETED = 'UNITS_FETCH_COMPLETED';\nexport const UNITS_FETCH_FAILED = 'UNITS_FETCH_FAILED';\n\nexport const UNITS_PARTIAL_FETCH_STARTED = 'UNITS_PARTIAL_FETCH_STARTED';\nexport const UNITS_PARTIAL_FETCH_COMPLETED = 'UNITS_PARTIAL_FETCH_COMPLETED';\nexport const UNITS_PARTIAL_FETCH_FAILED = 'UNITS_PARTIAL_FETCH_FAILED';\n\nexport const UNIT_FETCH_STARTED = 'UNIT_FETCH_STARTED';\nexport const UNIT_FETCH_COMPLETED = 'UNIT_FETCH_COMPLETED';\nexport const UNIT_FETCH_FAILED = 'UNIT_FETCH_FAILED';\n\nexport const UNIT_ADD_TO_STATE = 'UNIT_ADD_TO_STATE';\n\nexport const UNITS_LIVE_STATUS_FETCH_STARTED = 'UNITS_LIVE_STATUS_FETCH_STARTED';\nexport const UNITS_LIVE_STATUS_FETCH_COMPLETED = 'UNITS_LIVE_STATUS_FETCH_COMPLETED';\nexport const UNITS_LIVE_STATUS_FETCH_FAILED = 'UNITS_LIVE_STATUS_FETCH_FAILED';\n\nexport const UNIT_INFORMATION_FETCH_STARTED = 'UNIT_INFORMATION_FETCH_STARTED';\nexport const UNIT_INFORMATION_FETCH_COMPLETED = 'UNIT_INFORMATION_FETCH_COMPLETED';\nexport const UNIT_INFORMATION_FETCH_FAILED = 'UNIT_INFORMATION_FETCH_FAILED';\n\nexport const UNIT_POSITIONS_FETCH_STARTED = 'UNIT_POSITIONS_FETCH_STARTED';\nexport const UNIT_POSITIONS_FETCH_COMPLETED = 'UNIT_POSITIONS_FETCH_COMPLETED';\nexport const UNIT_POSITIONS_FETCH_FAILED = 'UNIT_POSITIONS_FETCH_FAILED';\nexport const UNIT_POSITIONS_RESET_IS_FETCHED = 'UNIT_POSITIONS_RESET_IS_FETCHED';\n\nexport const UNIT_TRAJECTORY_FETCH_STARTED = 'UNIT_TRAJECTORY_FETCH_STARTED';\nexport const UNIT_TRAJECTORY_FETCH_COMPLETED = 'UNIT_TRAJECTORY_FETCH_COMPLETED';\nexport const UNIT_TRAJECTORY_FETCH_FAILED = 'UNIT_TRAJECTORY_FETCH_FAILED';\n\nexport const UNIT_EXECUTE_DEVICE_ACTION = 'UNIT_EXECUTE_DEVICE_ACTION';\n\nexport const UNIT_ADD_STARTED = 'UNIT_ADD_STARTED';\nexport const UNIT_ADD_COMPLETED = 'UNIT_ADD_COMPLETED';\nexport const UNIT_ADD_FAILED = 'UNIT_ADD_FAILED';\n\nexport const UNIT_EDIT_STARTED = 'UNIT_EDIT_STARTED';\nexport const UNIT_EDIT_COMPLETED = 'UNIT_EDIT_COMPLETED';\nexport const UNIT_EDIT_FAILED = 'UNIT_EDIT_FAILED';\n\nexport const UNIT_ACKNOWLEDGE_STARTED = 'UNIT_ACKNOWLEDGE_STARTED';\nexport const UNIT_ACKNOWLEDGE_COMPLETED = 'UNIT_ACKNOWLEDGE_COMPLETED';\nexport const UNIT_ACKNOWLEDGE_FAILED = 'UNIT_ACKNOWLEDGE_FAILED';\n\nexport const UNIT_REMOVE_STARTED = 'UNIT_REMOVE_STARTED';\nexport const UNIT_REMOVE_COMPLETED = 'UNIT_REMOVE_COMPLETED';\nexport const UNIT_REMOVE_FAILED = 'UNIT_REMOVE_FAILED';\n\nexport const UNIT_SELECTED = 'UNIT_SELECTED';\nexport const UNITS_ALL_SELECTED = 'UNITS_ALL_SELECTED';\nexport const UNIT_DESELECTED = 'UNIT_DESELECTED';\nexport const UNITS_ALL_DESELECTED = 'UNITS_ALL_DESELECTED';\n\nexport const UNIT_SHOW_IN_MAP = 'UNIT_SHOW_IN_MAP';\nexport const UNITS_ALL_SHOW_IN_MAP = 'UNITS_ALL_SHOW_IN_MAP';\nexport const UNIT_HIDE_IN_MAP = 'UNIT_HIDE_IN_MAP';\nexport const UNITS_ALL_HIDE_IN_MAP = 'UNITS_ALL_HIDE_IN_MAP';\n\nexport const UNIT_FETCH_INTERVAL = 30000;\nexport const UNIT_SHARED_LINK_INTERVAL = 15000;\nexport const UNIT_ACTIVE_TRACKING_FETCH_INTERVAL = 5000;\nexport const UNIT_IDLE_SPEED = 5;\nexport const UNIT_DATA_LIMIT_FOR_CLUSTERING = 1500;\n\nexport const SET_DATE_RANGE = 'SET_DATE_RANGE';\n\nexport const UNITS_ACTIVE_STARTED = 'UNITS_ACTIVE_STARTED';\nexport const UNITS_ACTIVE_COMPLETED = 'UNITS_ACTIVE_COMPLETED';\nexport const UNITS_ACTIVE_FAILED = 'UNITS_ACTIVE_FAILED';\n\nexport const UNITS_ASSIGN_DRIVER_STARTED = 'UNITS_ASSIGN_DRIVER_STARTED';\nexport const UNITS_ASSIGN_DRIVER_COMPLETED = 'UNITS_ASSIGN_DRIVER_COMPLETED';\n\nexport const UNIT_CREATE_SHARE_LINK_STARTED = 'UNIT_CREATE_SHARE_LINK_STARTED';\nexport const UNIT_CREATE_SHARE_LINK_COMPLETED = 'UNIT_CREATE_SHARE_LINK_COMPLETED';\nexport const UNIT_CREATE_SHARE_LINK_FAILED = 'UNIT_CREATE_SHARE_LINK_FAILED';\n\nexport const UNIT_CLEAR_SHARE_LINK = 'UNIT_CLEAR_SHARE_LINK';\n\nexport const UNIT_CHANGE_STATUS_STARTED = 'UNIT_CHANGE_STATUS_STARTED';\nexport const UNIT_CHANGE_STATUS_COMPLETED = 'UNIT_CHANGE_STATUS_COMPLETED';\n\nexport const UNIT_RESTORE_STATUS_STARTED = 'UNIT_RESTORE_STATUS_STARTED';\nexport const UNIT_RESTORE_STATUS_COMPLETED = 'UNIT_RESTORE_STATUS_COMPLETED';\nexport const UNIT_RESTORE_STATUS_FAILED = 'UNIT_RESTORE_STATUS_FAILED';\n\nexport const UNIT_START_DOWNTIME_STARTED = 'UNIT_START_DOWNTIME_STARTED';\nexport const UNIT_START_DOWNTIME_COMPLETED = 'UNIT_START_DOWNTIME_COMPLETED';\nexport const UNIT_START_DOWNTIME_FAILED = 'UNIT_START_DOWNTIME_FAILED';\n\nexport const UNIT_END_DOWNTIME_STARTED = 'UNIT_END_DOWNTIME_STARTED';\nexport const UNIT_END_DOWNTIME_COMPLETED = 'UNIT_END_DOWNTIME_COMPLETED';\nexport const UNIT_END_DOWNTIME_FAILED = 'UNIT_END_DOWNTIME_FAILED';\n\nexport const UNIT_UPDATE_DEVICE_STARTED = 'UNIT_DEVICE_ASSIGNMENT_STARTED';\nexport const UNIT_UPDATE_DEVICE_COMPLETED = 'UNIT_DEVICE_ASSIGNMENT_COMPLETED';\nexport const UNIT_UPDATE_DEVICE_FAILED = 'UNIT_DEVICE_ASSIGNMENT_FAILED';\n\nexport const UNIT_UPDATE_SIM_STARTED = 'UNIT_UPDATE_SIM_STARTED';\nexport const UNIT_UPDATE_SIM_COMPLETED = 'UNIT_UPDATE_SIM_COMPLETED';\nexport const UNIT_UPDATE_SIM_FAILED = 'UNIT_UPDATE_SIM_FAILED';\n\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED';\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED';\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_FAILED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_FAILED';\n// Interfaces\nexport interface UnitMainState {\n id: number;\n intl: string;\n color: string;\n textColor: string;\n tooltip: string;\n shortIntl: string;\n}\nexport interface UnitsMainState {\n [key: string]: UnitMainState;\n}\n\nexport interface ReduxUnit extends Omit, 'isCharging'> {\n isSelected: boolean;\n isShownInMap: boolean;\n unitId: number;\n unitPublicId: string;\n unitStatus: number;\n unitStatusName: string;\n unitTypeId: number;\n unitName: string;\n alias: string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId?: number;\n subdivisionId?: number;\n deviceId: number;\n propertyTypeId: number;\n propertyTypeDescription: string;\n deviceIdentifier: string;\n serialNumber: string;\n brandId: number;\n brandName: string;\n deviceModelId: number;\n deviceModelName: string;\n deviceConfigurationId: number;\n deviceConfigurationName: string;\n driverId: number;\n vehicleId: number;\n vehicleName: string;\n licensePlate: string;\n simCardId: number;\n imsi: string;\n cellularNumber: string | number;\n mobileOperatorId: number;\n mobileOperatorName: string;\n comments: string;\n contractDate: string;\n contractNumber: string;\n lastPaymentDate: string;\n periodicity: number | string;\n instalationDate: string;\n privateCode: string;\n privateCode2: string;\n themeId: number;\n serviceClassId: number;\n serviceClassName: string;\n membershipCode: number | string;\n applicationIdentity: string | number;\n scheduleId?: number;\n scheduleName: string;\n countryId: number;\n mainStateTypeId: number;\n idleSpeed: number;\n assets: string;\n offlineTime: number;\n startedTime: number;\n stoppedTime: number;\n idleTime: number;\n utcZoneId: number;\n downtimeReasonId: number;\n downtimeReasonDescription: string;\n lastCommunicationDate: string;\n isConfirmed: boolean;\n operatorName: string;\n divisionName: string;\n subdivisionName: string;\n mainVoltage: number;\n solarVoltage: number;\n battery: number;\n backupBattery: any;\n isCharging: number | boolean;\n doorState: any;\n coverTamperState: any;\n padlockState: any;\n satellites: number;\n firmwareVersion: null | any;\n gsmSignalLevel: null | any;\n hardwareVersion: null | any;\n plmn: number;\n mcc: number;\n mnc: number;\n cellNumber: number;\n iccid: number;\n trailerId: number;\n appVersion: any;\n padlockAuthorizationType: any;\n historicalPositions: any;\n simCellularNumber: any;\n cellularProviderName: any;\n assetIdentifier: any;\n trajectory: any;\n deviceImei: any;\n devicePropertyTypeId: any;\n vehicleMakerName: any;\n vehicleModelName: any;\n chasis: any;\n motor: any;\n}\n\nexport interface PartialUnit extends Partial {}\n\nexport interface GroupUnit\n extends Pick {\n groupName: string;\n}\n","import Swal, { SweetAlertIcon } from 'sweetalert2';\nimport withReactContent from 'sweetalert2-react-content';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { getMessageTypeAvatarProps } from '../../../views/screens/Notifications/views/listSystemNotifications/utils';\nimport Avatar from '@core/components/avatar';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n/* -------------------------------------------------------------------------- */\n/* Common Success, Confirmation And Error Alerts */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessMessage = ({ success, timer = 4000 }) => {\n Swal.fire({\n timer: timer,\n icon: 'success',\n text: `${success}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showConfirmationMessage = ({\n title = '',\n message,\n confirmText = '',\n action,\n iconColor = '#FF4757',\n actionNot = () => {},\n confirmButtonClass = 'btn btn-outline-danger mr-1',\n showCancelButton = true,\n width = 500\n}) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width,\n showCancelButton,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: confirmButtonClass\n },\n iconColor,\n buttonsStyling: false,\n confirmButtonText: confirmText || appIntl().formatMessage({ id: 'common.confirm' }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n } else {\n actionNot();\n }\n });\n};\ninterface showConfirmationWithCheckboxMessageProps {\n title: string;\n message?: string;\n confirmText: string;\n inputLabel: string;\n action: Function;\n width?: any;\n initialValue?: 0 | 1;\n}\nexport const showConfirmationWithCheckboxMessage = (\n props: showConfirmationWithCheckboxMessageProps\n) => {\n const { title, message, confirmText, inputLabel, action, width, initialValue } = props;\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width || 500,\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: confirmText,\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true,\n input: 'checkbox',\n inputValue: initialValue || 0,\n inputPlaceholder: inputLabel\n }).then((result) => {\n if (result.isConfirmed) {\n action(result.value);\n }\n });\n};\n\nexport const showConfirmationMessageToast = ({\n title = '',\n message,\n confirmText = '',\n iconColor = '',\n action,\n timer = 0,\n width = 500,\n showCancelButton = true\n}) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n position: 'top-end',\n timer: timer === 0 ? undefined : timer,\n timerProgressBar: timer !== 0,\n didOpen(toast) {\n if (timer !== 0) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n }\n },\n toast: true,\n showConfirmButton: true,\n width: width,\n showCancelButton,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-primary mb-1'\n },\n iconColor: iconColor || '#3FC3EE',\n buttonsStyling: false,\n confirmButtonText: confirmText || appIntl().formatMessage({ id: 'common.confirm' }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' })\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\ninterface ShowErrorAlertFailChangesProps {\n error: any;\n timer?: number;\n title?: any;\n icon?: SweetAlertIcon;\n}\n\nexport const showErrorAlertFailChanges = ({\n error,\n timer = undefined,\n title = 'Error',\n icon = 'error'\n}: ShowErrorAlertFailChangesProps) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: icon,\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showErrorAlertReportNoAvailable = () => {\n const message = appIntl().formatMessage({ id: 'common.reportNotAvailable' });\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n text: `${message}`,\n showConfirmButton: false,\n allowOutsideClick: false,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showLoadingReport = ({ timer = 3000 }) => {\n const message = appIntl().formatMessage({ id: 'reports.loadingReport' });\n Swal.fire({\n title: `${message}`,\n timer: timer,\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const showErrorAlertFailChangesToast = ({ error, timer = 4000 }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n timer: timer,\n icon: 'error',\n text: `${message}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#FF4757',\n buttonsStyling: false\n });\n};\n\ntype errorProps = {\n error?: { errorMessage: string } | null | undefined;\n timer?: any;\n title?: string;\n};\n\nexport const showErrorAlertWarning = ({ error, timer = undefined, title = '' }: errorProps) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Success Alerts Created, Edited and Deleted */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessCreatedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.createdSuccessMessageAlt'\n : 'common.createdSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessEditedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.editedSuccessMessageAlt'\n : 'common.editedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessApprovedDeniedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n approve = 1\n}) => {\n const messageId =\n approve === 1\n ? object != null\n ? altText\n ? 'common.approvedSuccessMessageAlt'\n : 'common.approvedSuccessMessage'\n : 'common.changesSuccess'\n : object != null\n ? altText\n ? 'common.deniedSuccessMessageAlt'\n : 'common.deniedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAcceptedDeniedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n accept = 1\n}) => {\n const messageId =\n accept === 1\n ? object != null\n ? altText\n ? 'common.acceptedSuccessMessageAlt'\n : 'common.acceptedSuccessMessage'\n : 'common.changesSuccess'\n : object != null\n ? altText\n ? 'common.deniedSuccessMessageAlt'\n : 'common.deniedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessScheduledMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.scheduledSuccessMessageAlt'\n : 'common.scheduledSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessRolesAndPermissionsSavedMessage = ({\n name = '',\n success = null,\n timer = 4000\n}) => {\n const messageId = 'common.savedRolesAndPermissionsSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAssignedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n plural = false\n}) => {\n const messageId =\n object != null\n ? altText && !plural\n ? 'common.assignedSuccessMessageAlt'\n : altText && plural\n ? 'common.assignedSuccessMessageAlts'\n : !altText && plural\n ? 'common.assignedSuccessMessages'\n : 'common.assignedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessUnassignedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.unassignedSuccessMessageAlt'\n : 'common.unassignedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDeletedMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.deletedSuccessMessageAlt'\n : 'common.deletedSuccessMessage'\n : altText\n ? 'common.deletedSuccessMessageMultipleAlt'\n : 'common.deletedSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessRemovedFromGroupMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.removedFromGroupSuccessMessageAlt'\n : 'common.removedFromGroupSuccessMessage'\n : altText\n ? 'common.removedFromGroupSuccessMessageMultipleAlt'\n : 'common.removedFromGroupSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAddedToGroupMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.addedToGroupSuccessMessageAlt'\n : 'common.addedToGroupSuccessMessage'\n : altText\n ? 'common.addedToGroupSuccessMessageMultipleAlt'\n : 'common.addedToGroupSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDisabledMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.disabledSuccessMessageAlt'\n : 'common.disabledSuccessMessage'\n : altText\n ? 'common.disabledSuccessMessageMultipleAlt'\n : 'common.disabledSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessCancelNotificationMessage = ({ timer = 4000 }) => {\n const message = appIntl().formatMessage({\n id: 'common.cancelNotificationSuccessMessage'\n });\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Error Alerts Created, Edited And Deleted */\n/* -------------------------------------------------------------------------- */\nexport const showFailCreatedMessage = ({ object, name = '', error, timer = undefined }) => {\n const messageId = object != null ? 'common.createdFailMessage' : 'common.changesFail';\n const message =\n error == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailEditedMessage = ({ object, name = '', error, timer = undefined }) => {\n const messageId = object != null ? 'common.editedFailMessage' : 'common.changesFail';\n const message =\n error == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailDeletedMessage = ({\n object,\n name = '',\n error = { message: null },\n multiple = false,\n timer = undefined\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? 'common.deletedFailMessage'\n : 'common.deletedFailMessageMultiple'\n : 'common.changesFail';\n const message =\n error.message == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\ninterface DeleteConfirmationMessageProps {\n action: any;\n objectType: any;\n objectName: any;\n isDisabled?: boolean;\n isUnassign?: boolean;\n deleteWarning?: any;\n width?: any;\n}\n\nexport const showDeleteConfirmationMessage = ({\n action,\n objectType,\n objectName,\n isDisabled = false,\n isUnassign = false,\n width = '32rem',\n deleteWarning\n}: DeleteConfirmationMessageProps) => {\n Swal.fire({\n icon: 'warning',\n width: width,\n title: appIntl().formatMessage(\n {\n id: isDisabled\n ? 'common.disableConfirmationMessage'\n : isUnassign\n ? 'common.unassignConfirmationMessage'\n : 'common.deleteConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text:\n !isDisabled && !isUnassign\n ? deleteWarning\n ? deleteWarning\n : appIntl().formatMessage({ id: 'common.deleteWarning' })\n : '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: isDisabled\n ? 'common.confirmDisable'\n : isUnassign\n ? 'common.confirmUnassign'\n : 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showLeaveConfirmationMessage = ({ action, objectType, objectName }) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.leaveConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text: '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmLeave'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showRemoveFromGroupConfirmationMessage = ({\n action,\n objectType,\n objectName,\n objectCount,\n isMultiple = false\n}) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: isMultiple\n ? 'common.removeFromGroupConfirmationMessageMultiple'\n : 'common.removeFromGroupConfirmationMessage'\n },\n { objectType, objectName, objectCount }\n ),\n text: '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: isMultiple ? 'common.confirmRemoveMultiple' : 'common.confirmRemove'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\ninterface DeleteMultiple {\n action?: any;\n objectType?: any;\n objectsQuantity?: number;\n}\n\nexport const showDeleteConfirmationMessageMultiple = (props: DeleteMultiple) => {\n const { action, objectType, objectsQuantity } = props;\n const MySwal = withReactContent(Swal);\n MySwal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.deleteConfirmationMessageMultiple'\n },\n { objectType, objectsQuantity }\n ),\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* LOADING Alert */\n/* -------------------------------------------------------------------------- */\nexport const showLoading = () => {\n Swal.fire({\n title: appIntl().formatMessage({ id: 'common.loading' }),\n customClass: {\n loader: 'custom-loader'\n },\n loaderHtml: '
',\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const closeLoading = () => {\n Swal.close();\n};\n\n/* -------------------------------------------------------------------------- */\n/* INFORMATION Alert */\n/* -------------------------------------------------------------------------- */\nexport const showInformationMessage = ({ message, timer = 4000, width = 500 }) => {\n Swal.fire({\n timer: timer,\n icon: 'info',\n text: message,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n width: width,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Notifications Alerts. */\n/* -------------------------------------------------------------------------- */\n\nexport const CustomToastNotificationContent = ({ title, message, messageType }) => (\n
\n
\n \n
\n {title}\n
\n
\n
\n \n);\n\nexport const showUserNotificationAlert = ({ messageTitle, message, messageType, timer }) => {\n const ToasterContainer = document.createElement('div');\n\n Swal.fire({\n toast: true,\n position: 'top-end',\n showConfirmButton: false,\n timer: timer,\n timerProgressBar: true,\n html: ToasterContainer,\n didOpen: (toast) => {\n ReactDOM.render(\n ,\n ToasterContainer\n );\n\n // toast.addEventListener('mouseenter', Swal.stopTimer);\n // toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n willClose: () => {\n ReactDOM.unmountComponentAtNode(ToasterContainer);\n }\n });\n};\n","// icon.js\nimport IcoMoon from 'react-icomoon';\nconst iconSet = require('./IcomoonReactive/selection.json');\n\nconst Icon = ({ ...props }) => {\n return (\n \n );\n};\n\nexport default Icon;\n","/* eslint-disable semi */\nimport { env } from '../../../env';\n/* -------------------------------------------------------------------------- */\n/* APIBASEURL */\n/* -------------------------------------------------------------------------- */\nconst API_BASE_URL = env.REACT_APP_API_BASE_URL;\nexport default API_BASE_URL;\n","export const FORMS_FETCH_STARTED = 'FORMS_FETCH_STARTED';\nexport const FORMS_FETCH_COMPLETED = 'FORMS_FETCH_COMPLETED';\nexport const FORMS_FETCH_FAILED = 'FORMS_FETCH_FAILED';\n\nexport const FORMS_PARTIAL_FETCH_STARTED = 'FORMS_PARTIAL_FETCH_STARTED';\nexport const FORMS_PARTIAL_FETCH_COMPLETED = 'FORMS_PARTIAL_FETCH_COMPLETED';\nexport const FORMS_PARTIAL_FETCH_FAILED = 'FORMS_PARTIAL_FETCH_FAILED';\n\nexport const FORM_SECTIONS_FETCH_STARTED = 'FORM_SECTIONS_FETCH_STARTED';\nexport const FORM_SECTIONS_FETCH_COMPLETED = 'FORM_SECTIONS_FETCH_COMPLETED';\nexport const FORM_SECTIONS_FETCH_FAILED = 'FORM_SECTIONS_FETCH_FAILED';\n\nexport const FORM_QUESTIONS_FETCH_STARTED = 'FORM_QUESTIONS_FETCH_STARTED';\nexport const FORM_QUESTIONS_FETCH_COMPLETED = 'FORM_QUESTIONS_FETCH_COMPLETED';\nexport const FORM_QUESTIONS_FETCH_FAILED = 'FORM_QUESTIONS_FETCH_FAILED';\n\nexport const FORM_ADD_STARTED = 'FORM_ADD_STARTED';\nexport const FORM_ADD_COMPLETED = 'FORM_ADD_COMPLETED';\nexport const FORM_ADD_FAILED = 'FORM_ADD_FAILED';\n\nexport const FORM_SECTION_ADD_STARTED = 'FORM_SECTION_ADD_STARTED';\nexport const FORM_SECTION_ADD_COMPLETED = 'FORM_SECTION_ADD_COMPLETED';\nexport const FORM_SECTION_ADD_FAILED = 'FORM_SECTION_ADD_FAILED';\n\nexport const FORM_EDIT_STARTED = 'FORM_EDIT_STARTED';\nexport const FORM_EDIT_COMPLETED = 'FORM_EDIT_COMPLETED';\nexport const FORM_EDIT_FAILED = 'FORM_EDIT_FAILED';\n\nexport const FORM_EXTERNAL_ADD_STARTED = 'FORM_EXTERNAL_ADD_STARTED';\n\nexport const FORM_EXTERNAL_EDIT_STARTED = 'FORM_EXTERNAL_EDIT_STARTED';\n\nexport const FORM_REMOVE_STARTED = 'FORM_REMOVE_STARTED';\nexport const FORM_REMOVE_COMPLETED = 'FORM_REMOVE_COMPLETED';\nexport const FORM_REMOVE_FAILED = 'FORM_REMOVE_FAILED';\n\nexport const FORM_RESPONSE_SAVE_STARTED = 'FORM_RESPONSE_SAVE_STARTED';\nexport const FORM_RESPONSE_SAVE_COMPLETED = 'FORM_RESPONSE_SAVE_COMPLETED';\nexport const FORM_RESPONSE_SAVE_FAILED = 'FORM_RESPONSE_SAVE_FAILED';\n\nexport const FORM_SELECTED = 'FORM_SELECTED';\nexport const FORMS_ALL_SELECTED = 'FORMS_ALL_SELECTED';\nexport const FORM_DESELECTED = 'FORM_DESELECTED';\nexport const FORMS_ALL_DESELECTED = 'FORMS_ALL_DESELECTED';\nexport const FORMS_ALL_QUESTIONS_CLEARED = 'FORMS_ALL_QUESTIONS_CLEARED';\n\nexport const FORM_SECTION_ADDED = 'FORM_SECTION_ADDED';\nexport const FORM_SECTION_DELETED = 'FORM_SECTION_DELETED';\nexport const FORM_SECTION_MOVED = 'FORM_SECTION_MOVED';\nexport const FORM_SECTION_NAME_EDITED = 'FORM_SECTION_NAME_EDITED';\nexport const FORM_SECTION_COPIED = 'FORM_SECTION_COPIED';\nexport const FORM_SECTION_CHANGE_COLLAPSED = 'FORM_SECTION_CHANGE_COLLAPSED';\n\nexport const FORM_SECTIONS_SET = 'FORM_SECTIONS_SET';\n\nexport const FORM_ROW_ADDED = 'FORM_ROW_ADDED';\nexport const FORM_ROW_DELETED = 'FORM_ROW_DELETED';\nexport const FORM_ROW_MOVED = 'FORM_ROW_MOVED';\nexport const FORM_ROW_NAME_EDITED = 'FORM_ROW_NAME_EDITED';\n\nexport const FORM_QUESTION_ADDED = 'FORM_QUESTION_ADDED';\nexport const FORM_QUESTION_DELETED = 'FORM_QUESTION_DELETED';\nexport const FORM_QUESTION_MOVED = 'FORM_QUESTION_MOVED';\nexport const FORM_QUESTION_COPIED = 'FORM_QUESTION_COPIED';\n\nexport const FORM_QUESTION_SET = 'FORM_QUESTIONS_SET';\nexport const FORM_QUESTION_NAME_EDITED = 'FORM_QUESTION_NAME_EDITED';\nexport const FORM_QUESTION_HEIGHT_EDITED = 'FORM_QUESTION_HEIGHT_EDITED';\nexport const FORM_QUESTION_CHANGE_COLLAPSED = 'FORM_QUESTION_CHANGE_COLLAPSED';\n\nexport const FORM_OPTION_ADDED = 'FORM_OPTION_ADDED';\nexport const FORM_OPTION_DELETED = 'FORM_OPTION_DELETED';\nexport const FORM_OPTION_MOVED = 'FORM_OPTION_MOVED';\n\nexport const FORM_RESPONSE_FETCH_STARTED = 'FORM_RESPONSE_FETCH_STARTED';\nexport const FORM_RESPONSE_FETCH_COMPLETED = 'FORM_RESPONSE_FETCH_COMPLETED';\nexport const FORM_RESPONSE_FETCH_FAILED = 'FORM_RESPONSE_FETCH_FAILED';\n\nexport const FORM_RESPONSE_RESEND_STARTED = 'FORM_RESPONSE_RESEND_STARTED';\nexport const FORM_RESPONSE_RESEND_COMPLETED = 'FORM_RESPONSE_RESEND_COMPLETED';\nexport const FORM_RESPONSE_RESEND_FAILED = 'FORM_RESPONSE_RESEND_FAILED';\n\nexport const FORM_ANSWER_ADDED = 'FORM_ANSWER_ADDED';\nexport const FORM_ANSWER_MOVED = 'FORM_ANSWER_MOVED';\nexport const FORM_ANSWER_EDITED = 'FORM_ANSWER_EDITED';\nexport const FORM_ANSWER_DELETED = 'FORM_ANSWER_DELETED';\nexport const FORM_ANSWER_SELECTED = 'FORM_ANSWER_SELECTED';\nexport const FORM_ANSWER_DESELECTED = 'FORM_ANSWER_DESELECTED';\n\nexport const FORM_RESPONSES_CLEARED = 'FORM_RESPONSES_CLEARED';\nexport const FORM_QUESTIONS_CLEARED = 'FORM_QUESTIONS_CLEARED';\n","// -------------------------------------------\n// | entityTypeId | Entity |\n// -------------------------------------------\n// | 1 |\tUnidad de Rastreo |\n// | 2 |\tSubdivision |\n// | 3 |\tVehiculo |\n// | 4 |\tSIM |\n// | 5 |\tModulo |\n// | 6 |\tPiloto |\n// | 7 |\tTransportista |\n// | 8 |\tNotificacion |\n// | 9 |\tAsesores |\n// | 12 |\tClases de Servicio |\n// | 13 |\tComponentes de Vehiculos |\n// | 14 |\tServicios de Vehiculos |\n// | 15 |\tMensajes de Sistema |\n// | 16 |\tLogin |\n// | 17 |\tUsuarios |\n// | 18 |\tOperador |\n// | 19 |\tDivisión |\n// | 20 | Formularios |\n// | 30 |\tOrganizaciones |\n// | 31 |\tUsuarios |\n// | 32 |\tContactos |\n// | 33 | Planes de Trabajo |\n// | 34 | Geocercas |\n// | 35 | Horarios |\n// | 37 | Rutas |\n// | 40 |\tMarcas |\n// | 41 |\tModelos |\n// | 42 |\tConfiguraciones |\n// | 43 |\tSims |\n// | 44 |\tPaíses |\n// | 45 |\tReferencias |\n// | 46 |\tActivos |\n// | 47 |\tSensores |\n// | 48 |\tJobs |\n// | 49 |\tGrupos |\n// | 50 |\tContratos |\n// | 51 |\tClientes |\n// | 52 |\tLinea de Mantenimiento |\n// | 53 |\tPlantillas de Contratos |\n// | 54 |\tCotizaciones |\n// | 55 | Sucursales |\n// | 56 | Protocolos |\n// | 57 | ETA |\n// 58 | ` User Notification |\n// ---------------------------------------------\n\n//For more information in sql\n// select * from dbo.EntityTypes\n\nexport const ENTITY_UNITS = 1;\nexport const ENTITY_SUBDIVISONS = 2;\nexport const ENTITY_VEHICLES = 3;\nexport const ENTITY_SIM_CARDS = 4;\nexport const ENTITY_MODULES = 5;\nexport const ENTITY_DRIVERS = 6;\n// 7,8 MISSING\n// export const ENTITY_NONE = 7;\n// export const ENTITY_NONE = 8;\nexport const ENTITY_AGENTS = 9;\n// 10,11 MISSING\n// export const ENTITY_NONE = 10;\n// export const ENTITY_NONE = 11;\nexport const ENTITY_SERVICE_CLASSES = 12;\n// 13,14,15,16 MISSING\n// export const ENTITY_NONE = 13;\n// export const ENTITY_NONE = 14;\n// export const ENTITY_NONE = 15;\n// export const ENTITY_NONE = 16;\nexport const ENTITY_USERS = 17;\nexport const ENTITY_OPERATORS = 18;\nexport const ENTITY_DIVISIONS = 19;\n// 20,21,22,23,24,25,26,27,28,29 MISSING\n// export const ENTITY_NONE = 20;\n// export const ENTITY_NONE = 21;\n// export const ENTITY_NONE = 22;\n// export const ENTITY_NONE = 23;\n// export const ENTITY_NONE = 24;\n// export const ENTITY_NONE = 25;\n// export const ENTITY_NONE = 26;\n// export const ENTITY_NONE = 27;\n// export const ENTITY_NONE = 28;\n// export const ENTITY_NONE = 29;\nexport const ENTITY_ORGANIZATIONS = 30;\n// 31 MISSING\n// export const ENTITY_NONE = 31;\nexport const ENTITY_CONTACTS = 32;\nexport const ENTITY_WORKPLANS = 33;\nexport const ENTITY_GEOFENCES = 34;\nexport const ENTITY_SCHEDULES = 35;\nexport const ENTITY_FORMS = 36;\nexport const ENTITY_ROUTES = 37;\n// 38,39,40,41,42,43 MISSING\n// export const ENTITY_NONE = 38;\n// export const ENTITY_NONE = 39;\n// export const ENTITY_NONE = 40;\n// export const ENTITY_NONE = 41;\n// export const ENTITY_NONE = 42;\n// export const ENTITY_NONE = 43;\nexport const ENTITY_COUNTRIES = 44;\nexport const ENTITY_LOCATIONS = 45;\nexport const ENTITY_ASSETS = 46;\nexport const ENTITY_SENSORS = 47;\nexport const ENTITY_JOBS_BACKLOG = 48;\nexport const ENTITY_GROUPS = 49;\nexport const ENTITY_ORGANIZATION_CONTRACTS = 50;\nexport const ENTITY_CUSTOMERS = 51;\nexport const ENTITY_MAINTENANCE_LINES = 52;\nexport const ENTITY_CONTRACT_TEMPLATES = 53;\nexport const ENTITY_QUOTATIONS = 54;\nexport const ENTITY_OFFICES = 55;\nexport const ENTITY_PROTOCOLS = 56;\nexport const ENTITY_DESTINATIONS = 57;\nexport const ENTITY_USER_NOTIFICATIONS = 58;\n\nexport const defaultEntitiesToFetchAftetLogin = [];\n\n// Audit Entities Lookups\nexport const AUDIT_ENTITY_UNIT_MAIN_STATE_TYPE_ID_LOOKUP = 'UnitMainStateTypeId';\nexport const AUDIT_ENTITY_UNIT_STATUS_LOOKUP = 'UnitStatus';\nexport const AUDIT_ENTITY_UNIT_THEME_ID_LOOKUP = 'UnitThemeId';\nexport const AUDIT_ENTITY_UNIT_TYPE_ID_LOOKUP = 'UnitTypeId';\n","export const GROUPS_FETCH_STARTED = 'GROUPS_FETCH_STARTED';\nexport const GROUPS_FETCH_COMPLETED = 'GROUPS_FETCH_COMPLETED';\nexport const GROUPS_FETCH_FAILED = 'GROUPS_FETCH_FAILED';\n\nexport const GROUP_FETCH_STARTED = 'GROUP_FETCH_STARTED';\nexport const GROUP_FETCH_COMPLETED = 'GROUP_FETCH_COMPLETED';\nexport const GROUP_FETCH_FAILED = 'GROUP_FETCH_FAILED';\n\nexport const GROUPS_PARTIAL_FETCH_STARTED = 'GROUPS_PARTIAL_FETCH_STARTED';\nexport const GROUPS_PARTIAL_FETCH_COMPLETED = 'GROUPS_PARTIAL_FETCH_COMPLETED';\nexport const GROUPS_PARTIAL_FETCH_FAILED = 'GROUPS_PARTIAL_FETCH_FAILED';\n\nexport const GROUPS_ALL_ENTITIES_FETCH_STARTED = 'GROUPS_ALL_ENTITIES_FETCH_STARTED';\nexport const GROUPS_ALL_ENTITIES_FETCH_COMPLETED = 'GROUPS_ALL_ENTITIES_FETCH_COMPLETED';\nexport const GROUPS_ALL_ENTITIES_FETCH_FAILED = 'GROUPS_ALL_ENTITIES_FETCH_FAILED';\n\nexport const GROUP_EDIT_STARTED = 'GROUP_EDIT_STARTED';\nexport const GROUP_EDIT_COMPLETED = 'GROUP_EDIT_COMPLETED';\nexport const GROUP_EDIT_FAILED = 'GROUP_EDIT_FAILED';\n\nexport const GROUP_ADD_STARTED = 'GROUP_ADD_STARTED';\nexport const GROUP_ADD_COMPLETED = 'GROUP_ADD_COMPLETED';\nexport const GROUP_ADD_FAILED = 'GROUP_ADD_FAILED';\n\nexport const GROUP_ADD_WITH_ENTITIES_STARTED = 'GROUP_ADD_WITH_ENTITIES_STARTED';\nexport const GROUP_ADD_WITH_ENTITIES_COMPLETED = 'GROUP_ADD_WITH_ENTITIES_COMPLETED';\nexport const GROUP_ADD_WITH_ENTITIES_FAILED = 'GROUP_ADD_WITH_ENTITIES_FAILED';\n\nexport const GROUP_REMOVE_STARTED = 'GROUP_REMOVE_STARTED';\nexport const GROUP_REMOVE_COMPLETED = 'GROUP_REMOVE_COMPLETED';\nexport const GROUP_REMOVE_FAILED = 'GROUP_REMOVE_FAILED';\n\nexport const GROUP_LEAVE_STARTED = 'GROUP_LEAVE_STARTED';\nexport const GROUP_LEAVE_COMPLETED = 'GROUP_LEAVE_COMPLETED';\nexport const GROUP_LEAVE_FAILED = 'GROUP_LEAVE_FAILED';\n\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED';\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED';\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED';\n\nexport const GROUP_REMOVE_ENTITIES_STARTED = 'GROUP_REMOVE_ENTITIES_STARTED';\nexport const GROUP_REMOVE_ENTITIES_COMPLETED = 'GROUP_REMOVE_ENTITIES_COMPLETED';\n\nexport const GROUP_ADD_ENTITIES_STARTED = 'GROUP_ADD_ENTITIES_STARTED';\nexport const GROUP_ADD_ENTITIES_COMPLETED = 'GROUP_ADD_ENTITIES_COMPLETED';\n\nexport const GROUP_USER_PROFILE_EDIT_STARTED = 'GROUP_USER_PROFILE_EDIT_STARTED';\nexport const GROUP_USER_PROFILE_EDIT_COMPLETED = 'GROUP_USER_PROFILE_EDIT_COMPLETED';\n\nexport const GROUP_SELECTED = 'GROUP_SELECTED';\nexport const GROUPS_ALL_SELECTED = 'GROUPS_ALL_SELECTED';\nexport const GROUP_DESELECTED = 'GROUP_DESELECTED';\nexport const GROUPS_ALL_DESELECTED = 'GROUPS_ALL_DESELECTED';\n\nexport interface ReduxGroup {\n isSelected: boolean;\n users: any;\n locations: { [key: string]: any };\n workplans: { [key: string]: any };\n units: { [key: string]: any };\n geofences: { [key: string]: any };\n drivers: { [key: string]: any };\n groupId: number;\n groupName: string;\n groupStatus: number;\n profileId: number;\n isInGroup: number;\n locationsCount: number;\n workPlansCount: number;\n userCount: number;\n unitCount: number;\n geofenceCount: number;\n driverCount: number;\n permanenceTimeUnauthorizedMeeting: number;\n notifyUnauthorizedMeeting: number;\n notifyMemberAdded: number;\n notifyMemberDeleted: number;\n notifyAdminMemberAdded: number;\n notifyAdminMemberLeave: number;\n notifyAdminMemberDeleted: number;\n notifyAdminGroupDeleted: number;\n safeDriverSpeedLimit: number;\n notifyAdminSpeedEvent: number;\n notifyAdminPhoneEvent: number;\n notifyOwnerSpeedEvent: number;\n notifyOwnerPhoneEvent: number;\n notifyRiskyDriving: number;\n notifyMemberAlertsSac: number;\n notifyAdminAlertsSac: number;\n notifyOwnerAlertsSac: number;\n applicationIdentities: any;\n}\n","export const JOBS_BACKLOG_FETCH_STARTED = 'JOBS_BACKLOG_FETCH_STARTED';\nexport const JOBS_BACKLOG_FETCH_COMPLETED = 'JOBS_BACKLOG_FETCH_COMPLETED';\nexport const JOBS_BACKLOG_FETCH_FAILED = 'JOBS_BACKLOG_FETCH_FAILED';\n\nexport const JOBS_BACKLOG_PARTIAL_FETCH_STARTED = 'JOBS_BACKLOG_PARTIAL_FETCH_STARTED';\nexport const JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED = 'JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED';\nexport const JOBS_BACKLOG_PARTIAL_FETCH_FAILED = 'JOBS_BACKLOG_PARTIAL_FETCH_FAILED';\n\nexport const JOB_BACKLOG_ADD_STARTED = 'JOB_BACKLOG_ADD_STARTED';\nexport const JOB_BACKLOG_ADD_COMPLETED = 'JOB_BACKLOG_ADD_COMPLETED';\nexport const JOB_BACKLOG_ADD_FAILED = 'JOB_BACKLOG_ADD_FAILED';\n\nexport const JOB_BACKLOG_EDIT_STARTED = 'JOB_BACKLOG_EDIT_STARTED';\nexport const JOB_BACKLOG_EDIT_COMPLETED = 'JOB_BACKLOG_EDIT_COMPLETED';\nexport const JOB_BACKLOG_EDIT_FAILED = 'JOB_BACKLOG_EDIT_FAILED';\n\nexport const JOB_BACKLOG_SELECTED = 'JOB_BACKLOG_SELECTED';\nexport const JOBS_BACKLOG_ALL_SELECTED = 'JOBS_BACKLOG_ALL_SELECTED';\nexport const JOB_BACKLOG_DESELECTED = 'JOB_BACKLOG_DESELECTED';\nexport const JOBS_BACKLOG_ALL_DESELECTED = 'JOBS_BACKLOG_ALL_DESELECTED';\n\nexport const JOBS_BACKLOG_REMOVE_STARTED = 'JOBS_BACKLOG_REMOVE_STARTED';\nexport const JOBS_BACKLOG_REMOVE_COMPLETED = 'JOBS_BACKLOG_REMOVE_COMPLETED';\nexport const JOBS_BACKLOG_REMOVE_FAILED = 'JOBS_BACKLOG_REMOVE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_STATUS_STARTED = 'JOBS_BACKLOG_CHANGE_STATUS_STARTED';\nexport const JOBS_BACKLOG_CHANGE_STATUS_COMPLETED = 'JOBS_BACKLOG_CHANGE_STATUS_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_STATUS_FAILED = 'JOBS_BACKLOG_CHANGE_STATUS_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_STARTED = 'JOBS_BACKLOG_CHANGE_PRIORITY_STARTED';\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED = 'JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_FAILED = 'JOBS_BACKLOG_CHANGE_PRIORITY_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_STARTED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_FAILED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_START_DATE_STARTED = 'JOBS_BACKLOG_CHANGE_START_DATE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED = 'JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_START_DATE_FAILED = 'JOBS_BACKLOG_CHANGE_START_DATE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED = 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED';\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED =\n 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED = 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_USERS_STARTED = 'JOBS_BACKLOG_ASSIGN_USERS_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_USERS_COMPLETED = 'JOBS_BACKLOG_ASSIGN_USERS_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_USERS_FAILED = 'JOBS_BACKLOG_ASSIGN_USERS_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_FORMS_STARTED = 'JOBS_BACKLOG_ASSIGN_FORMS_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED = 'JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_FORMS_FAILED = 'JOBS_BACKLOG_ASSIGN_FORMS_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_FILES_STARTED = 'JOBS_BACKLOG_ASSIGN_FILES_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_FILES_COMPLETED = 'JOBS_BACKLOG_ASSIGN_FILES_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_FILES_FAILED = 'JOBS_BACKLOG_ASSIGN_FILES_FAILED';\n\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED';\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED';\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED';\n\nexport const JOBS_BACKLOG_IMPORT_STARTED = 'JOBS_BACKLOG_IMPORT_STARTED';\nexport const JOBS_BACKLOG_IMPORT_COMPLETED = 'JOBS_BACKLOG_IMPORT_COMPLETED';\nexport const JOBS_BACKLOG_IMPORT_FAILED = 'JOBS_BACKLOG_IMPORT_FAILED';\n","export const WORKPLANS_FETCH_STARTED = 'WORKPLANS_FETCH_STARTED';\nexport const WORKPLANS_FETCH_COMPLETED = 'WORKPLANS_FETCH_COMPLETED';\nexport const WORKPLANS_FETCH_FAILED = 'WORKPLANS_FETCH_FAILED';\n\nexport const WORKPLANS_PARTIAL_FETCH_STARTED = 'WORKPLANS_PARTIAL_FETCH_STARTED';\nexport const WORKPLANS_PARTIAL_FETCH_COMPLETED = 'WORKPLANS_PARTIAL_FETCH_COMPLETED';\nexport const WORKPLANS_PARTIAL_FETCH_FAILED = 'WORKPLANS_PARTIAL_FETCH_FAILED';\n\nexport const WORKPLAN_LOCATIONS_FETCH_COMPLETED = 'WORKPLAN_LOCATIONS_FETCH_COMPLETED';\nexport const WORKPLAN_LOCATIONS_FETCH_FAILED = 'WORKPLAN_LOCATIONS_FETCH_FAILED';\n\nexport const WORKPLAN_ADD_STARTED = 'WORKPLAN_ADD_STARTED';\nexport const WORKPLAN_ADD_COMPLETED = 'WORKPLAN_ADD_COMPLETED';\nexport const WORKPLAN_ADD_FAILED = 'WORKPLAN_ADD_FAILED';\n\nexport const WORKPLAN_EDIT_STARTED = 'WORKPLAN_EDIT_STARTED';\nexport const WORKPLAN_EDIT_COMPLETED = 'WORKPLAN_EDIT_COMPLETED';\nexport const WORKPLAN_EDIT_FAILED = 'WORKPLAN_EDIT_FAILED';\n\nexport const WORKPLAN_REMOVE_STARTED = 'WORKPLAN_REMOVE_STARTED';\nexport const WORKPLAN_REMOVE_COMPLETED = 'WORKPLAN_REMOVE_COMPLETED';\nexport const WORKPLAN_REMOVE_FAILED = 'WORKPLAN_REMOVE_FAILED';\n\nexport const WORKPLAN_SELECTED = 'WORKPLAN_SELECTED';\nexport const WORKPLANS_ALL_SELECTED = 'WORKPLANS_ALL_SELECTED';\nexport const WORKPLAN_DESELECTED = 'WORKPLAN_DESELECTED';\nexport const WORKPLANS_ALL_DESELECTED = 'WORKPLANS_ALL_DESELECTED';\n\nexport const WORKPLAN_COPY_STARTED = 'WORKPLAN_COPY_STARTED';\nexport const WORKPLAN_COPY_COMPLETED = 'WORKPLAN_COPY_COMPLETED';\nexport const WORKPLAN_COPY_FAILED = 'WORKPLAN_COPY_FAILED';\n\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED = 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED = 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED';\n\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED';\n\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED';\n","export const QUOTATIONS_FETCH_STARTED = 'QUOTATIONS_FETCH_STARTED';\nexport const QUOTATIONS_FETCH_COMPLETED = 'QUOTATIONS_FETCH_COMPLETED';\nexport const QUOTATIONS_FETCH_FAILED = 'QUOTATIONS_FETCH_FAILED';\n\nexport const QUOTATIONS_PARTIAL_FETCH_STARTED = 'QUOTATIONS_PARTIAL_FETCH_STARTED';\nexport const QUOTATIONS_PARTIAL_FETCH_COMPLETED = 'QUOTATIONS_PARTIAL_FETCH_COMPLETED';\nexport const QUOTATIONS_PARTIAL_FETCH_FAILED = 'QUOTATIONS_PARTIAL_FETCH_FAILED';\n\nexport const QUOTATIONS_ADD_STARTED = 'QUOTATIONS_ADD_STARTED';\nexport const QUOTATIONS_ADD_COMPLETED = 'QUOTATIONS_ADD_COMPLETED';\nexport const QUOTATIONS_ADD_FAILED = 'QUOTATIONS_ADD_FAILED';\n\nexport const QUOTATIONS_EDIT_STARTED = 'QUOTATIONS_EDIT_STARTED';\nexport const QUOTATIONS_EDIT_COMPLETED = 'QUOTATIONS_EDIT_COMPLETED';\nexport const QUOTATIONS_EDIT_FAILED = 'QUOTATIONS_EDIT_FAILED';\n\nexport const QUOTATIONS_REMOVE_STARTED = 'QUOTATIONS_REMOVE_STARTED';\nexport const QUOTATIONS_REMOVE_COMPLETED = 'QUOTATIONS_REMOVE_COMPLETED';\nexport const QUOTATIONS_REMOVE_FAILED = 'QUOTATIONS_REMOVE_FAILED';\n\nexport const QUOTATIONS_SCHEDULE_STARTED = 'QUOTATIONS_SCHEDULE_STARTED';\nexport const QUOTATIONS_SCHEDULE_COMPLETED = 'QUOTATIONS_SCHEDULE_COMPLETED';\nexport const QUOTATIONS_SCHEDULE_FAILED = 'QUOTATIONS_SCHEDULE_FAILED';\n\nexport const QUOTATIONS_CHECK_SCHEDULING_STARTED = 'QUOTATIONS_CHECK_SCHEDULING_STARTED';\nexport const QUOTATIONS_CHECK_SCHEDULING_COMPLETED = 'QUOTATIONS_CHECK_SCHEDULING_COMPLETED';\nexport const QUOTATIONS_CHECK_SCHEDULING_FAILED = 'QUOTATIONS_CHECK_SCHEDULING_FAILED';\n\nexport const QUOTATIONS_SET_TIMESUP_STARTED = 'QUOTATIONS_SET_TIMESUP_STARTED';\nexport const QUOTATIONS_SET_TIMESUP_COMPLETED = 'QUOTATIONS_SET_TIMESUP_COMPLETED';\nexport const QUOTATIONS_SET_TIMESUP_FAILED = 'QUOTATIONS_SET_TIMESUP_FAILED';\n\nexport const QUOTATIONS_SELECTED = 'QUOTATIONS_SELECTED';\nexport const QUOTATIONS_ALL_SELECTED = 'QUOTATIONS_ALL_SELECTED';\nexport const QUOTATIONS_DESELECTED = 'QUOTATIONS_DESELECTED';\nexport const QUOTATIONS_ALL_DESELECTED = 'QUOTATIONS_ALL_DESELECTED';\n\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED =\n 'QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED';\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED = 'QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED';\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED =\n 'QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED';\n\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED';\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED';\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED';\n\nexport const QUOTATION_COPY_STARTED = 'QUOTATION_COPY_STARTED';\nexport const QUOTATION_COPY_FAILED = 'QUOTATION_COPY_FAILED';\nexport const QUOTATION_COPY_COMPLETED = 'QUOTATION_COPY_COMPLETED';\n\nexport const QUOTATION_CHANGE_ORGANIZATION = 'QUOTATION_CHANGE_ORGANIZATION';\n","export const ORGANIZATIONS_FETCH_STARTED = 'ORGANIZATIONS_FETCH_STARTED';\nexport const ORGANIZATIONS_FETCH_COMPLETED = 'ORGANIZATIONS_FETCH_COMPLETED';\nexport const ORGANIZATIONS_FETCH_FAILED = 'ORGANIZATIONS_FETCH_FAILED';\n\nexport const ORGANIZATIONS_PARTIAL_FETCH_STARTED = 'ORGANIZATIONS_PARTIAL_FETCH_STARTED';\nexport const ORGANIZATIONS_PARTIAL_FETCH_COMPLETED = 'ORGANIZATIONS_PARTIAL_FETCH_COMPLETED';\nexport const ORGANIZATIONS_PARTIAL_FETCH_FAILED = 'ORGANIZATIONS_PARTIAL_FETCH_FAILED';\n\nexport const ORGANIZATION_ADD_STARTED = 'ORGANIZATION_ADD_STARTED';\nexport const ORGANIZATION_ADD_COMPLETED = 'ORGANIZATION_ADD_COMPLETED';\nexport const ORGANIZATION_ADD_FAILED = 'ORGANIZATION_ADD_FAILED';\n\nexport const ORGANIZATION_EDIT_STARTED = 'ORGANIZATION_EDIT_STARTED';\nexport const ORGANIZATION_EDIT_COMPLETED = 'ORGANIZATION_EDIT_COMPLETED';\nexport const ORGANIZATION_EDIT_FAILED = 'ORGANIZATION_EDIT_FAILED';\n\nexport const ORGANIZATION_REMOVE_STARTED = 'ORGANIZATION_REMOVE_STARTED';\nexport const ORGANIZATION_REMOVE_COMPLETED = 'ORGANIZATION_REMOVE_COMPLETED';\nexport const ORGANIZATION_REMOVE_FAILED = 'ORGANIZATION_REMOVE_FAILED';\n\nexport const ORGANIZATION_SELECTED = 'ORGANIZATION_SELECTED';\nexport const ORGANIZATIONS_ALL_SELECTED = 'ORGANIZATIONS_ALL_SELECTED';\nexport const ORGANIZATION_DESELECTED = 'ORGANIZATION_DESELECTED';\nexport const ORGANIZATIONS_ALL_DESELECTED = 'ORGANIZATIONS_ALL_DESELECTED';\n\nexport const ORGANIZATION_CODE_CHECK_STARTED = 'ORGANIZATION_CODE_CHECK_STARTED';\nexport const ORGANIZATION_CODE_CHECK_COMPLETED = 'ORGANIZATION_CODE_CHECK_COMPLETED';\nexport const ORGANIZATION_CODE_CHECK_FAILED = 'ORGANIZATION_CODE_CHECK_FAILED';\n\nexport const ORGANIZATION_CODE_ASSIGN_STARTED = 'ORGANIZATION_CODE_ASSIGN_STARTED';\nexport const ORGANIZATION_CODE_ASSIGN_COMPLETED = 'ORGANIZATION_CODE_ASSIGN_COMPLETED';\nexport const ORGANIZATION_CODE_ASSIGN_FAILED = 'ORGANIZATION_CODE_ASSIGN_FAILED';\n\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED';\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED';\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_STARTED = 'ORGANIZATION_DOWNTIME_REASON_ADD_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_FAILED = 'ORGANIZATION_DOWNTIME_REASON_ADD_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED =\n 'ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED = 'ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED';\n\nexport interface ReduxOrganization {\n isSelected: boolean;\n organizationId: number;\n organizationName: string;\n contactPhone?: string;\n organizationAddress: string;\n contactName?: string;\n userLicense?: number;\n organizationStatus: number;\n contactEmail?: string;\n privateCode?: string;\n operatorId: number;\n agentId: number;\n operatorName: string;\n themeId?: number;\n alertConsoleActive: number;\n showUsersOnChat: number;\n registrationCode?: string;\n registrationDivisionId?: number;\n registrationSubdivisionId?: number;\n registrationNotificationMails?: string;\n tradeName?: string;\n taxNumber: string;\n allowedApplications?: number;\n currentApplications: number;\n legalRepresentativeId?: number;\n legalRepresentativeName?: string;\n legalRepresentativeIdentification?: string;\n legalRepresentativeAge: number;\n legalRepresentativeNacionality?: string;\n legalRepresentativeAddress: string;\n utcZoneId?: number;\n organizationType: number;\n sacUsers: SacUser[];\n isConfirmed: boolean;\n loginextActive: number;\n loginextEffectiveVisitingTime: number;\n loginextDeliveryDelay: number;\n}\n\nexport interface SacUser {\n userId: number;\n userName: string;\n completeName: string;\n chatUserTypeId: number;\n organizationId: number;\n}\n","import { ReduxUnit } from 'views/screens/Units/types';\n\nexport const GEOFENCES_FETCH_STARTED = 'GEOFENCES_FETCH_STARTED';\nexport const GEOFENCES_FETCH_COMPLETED = 'GEOFENCES_FETCH_COMPLETED';\nexport const GEOFENCES_FETCH_FAILED = 'GEOFENCES_FETCH_FAILED';\n\nexport const GEOFENCE_FETCH_STARTED = 'GEOFENCE_FETCH_STARTED';\nexport const GEOFENCE_FETCH_COMPLETED = 'GEOFENCE_FETCH_COMPLETED';\nexport const GEOFENCE_FETCH_FAILED = 'GEOFENCE_FETCH_FAILED';\n\nexport const GEOFENCES_PARTIAL_FETCH_STARTED = 'GEOFENCES_PARTIAL_FETCH_STARTED';\nexport const GEOFENCES_PARTIAL_FETCH_COMPLETED = 'GEOFENCES_PARTIAL_FETCH_COMPLETED';\nexport const GEOFENCES_PARTIAL_FETCH_FAILED = 'GEOFENCES_PARTIAL_FETCH_FAILED';\n\nexport const GEOFENCE_ADD_STARTED = 'GEOFENCE_ADD_STARTED';\nexport const GEOFENCE_ADD_COMPLETED = 'GEOFENCE_ADD_COMPLETED';\nexport const GEOFENCE_ADD_FAILED = 'GEOFENCE_ADD_FAILED';\n\nexport const GEOFENCE_EDIT_STARTED = 'GEOFENCE_EDIT_STARTED';\nexport const GEOFENCE_EDIT_COMPLETED = 'GEOFENCE_EDIT_COMPLETED';\nexport const GEOFENCE_EDIT_FAILED = 'GEOFENCE_EDIT_FAILED';\n\nexport const GEOFENCE_REMOVE_STARTED = 'GEOFENCE_REMOVE_STARTED';\nexport const GEOFENCE_REMOVE_COMPLETED = 'GEOFENCE_REMOVE_COMPLETED';\nexport const GEOFENCE_REMOVE_FAILED = 'GEOFENCE_REMOVE_FAILED';\n\nexport const GEOFENCE_SELECTED = 'GEOFENCE_SELECTED';\nexport const GEOFENCES_ALL_SELECTED = 'GEOFENCES_ALL_SELECTED';\nexport const GEOFENCE_DESELECTED = 'GEOFENCE_DESELECTED';\nexport const GEOFENCES_ALL_DESELECTED = 'GEOFENCES_ALL_DESELECTED';\n\nexport const GEOFENCE_SHOW_IN_MAP = 'GEOFENCE_SHOW_IN_MAP';\nexport const GEOFENCES_ALL_SHOW_IN_MAP = 'GEOFENCES_ALL_SHOW_IN_MAP';\nexport const GEOFENCE_HIDE_IN_MAP = 'GEOFENCE_HIDE_IN_MAP';\nexport const GEOFENCES_ALL_HIDE_IN_MAP = 'GEOFENCES_ALL_HIDE_IN_MAP';\n\nexport const GEOFENCE_ASSIGN_UNIT_STARTED = 'GEOFENCE_ASSIGN_UNIT_STARTED';\nexport const GEOFENCE_ASSIGN_UNIT_COMPLETED = 'GEOFENCE_ASSIGN_UNIT_COMPLETED';\nexport const GEOFENCE_ASSIGN_UNIT_FAILED = 'GEOFENCE_ASSIGN_UNIT_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_STARTED = 'GEOFENCE_ASSIGNATION_REMOVE_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_COMPLETED = 'GEOFENCE_ASSIGNATION_REMOVE_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_FAILED = 'GEOFENCE_ASSIGNATION_REMOVE_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_COMPLETED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_FAILED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_COMPLETED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNIT_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_FAILED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNIT_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_EDIT_STARTED = 'GEOFENCE_ASSIGNATION_EDIT_STARTED';\nexport const GEOFENCE_ASSIGNATION_EDIT_COMPLETED = 'GEOFENCE_ASSIGNATION_EDIT_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_EDIT_FAILED = 'GEOFENCE_ASSIGNATION_EDIT_FAILED';\n\nexport interface ReduxGeofence {\n isSelected: boolean;\n isShowInMap: boolean;\n geofenceId: number;\n geofenceStatus: number;\n geofenceAddress: string;\n shape: string;\n privateCode: string;\n geofenceName: string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId?: number;\n subdivisionId?: number;\n vertexCount: number;\n color: string;\n radius: number;\n latitude: number;\n latitude2?: number;\n longitude: number;\n longitude2?: number;\n isParentGeofence?: boolean;\n isActivationGeofence: boolean;\n parentGeofenceId?: number;\n geofenceWktString: string;\n isConfirmed: boolean;\n isShownInMap: boolean;\n divisionName: string;\n subdivisionName: string;\n}\n\nexport interface Assignment extends ReduxGeofence, ReduxUnit {\n operatorName: string;\n notify: number;\n consoles: string;\n notificationEmails: string;\n}\n","export const ROUTES_EXECUTIONS_FETCH_STARTED = 'ROUTES_EXECUTIONS_FETCH_STARTED';\nexport const ROUTES_EXECUTIONS_FETCH_COMPLETED = 'ROUTES_EXECUTIONS_FETCH_COMPLETED';\nexport const ROUTES_EXECUTIONS_FETCH_FAILED = 'ROUTES_EXECUTIONS_FETCH_FAILED';\n\nexport const ROUTE_EXECUTION_EDIT_STARTED = 'ROUTE_EXECUTION_EDIT_STARTED';\nexport const ROUTE_EXECUTION_EDIT_COMPLETED = 'ROUTE_EXECUTION_EDIT_COMPLETED';\nexport const ROUTE_EXECUTION_EDIT_FAILED = 'ROUTE_EXECUTION_EDIT_FAILED';\n\nexport const ROUTES_EXECUTION_CANCEL_STARTED = 'ROUTES_EXECUTION_CANCEL_STARTED';\nexport const ROUTES_EXECUTION_CANCEL_COMPLETED = 'ROUTES_EXECUTION_CANCEL_COMPLETED';\nexport const ROUTES_EXECUTION_CANCEL_FAILED = 'ROUTES_EXECUTION_CANCEL_FAILED';\n\nexport const ROUTES_EXECUTION_FINALIZE_STARTED = 'ROUTES_EXECUTION_FINALIZE_STARTED';\nexport const ROUTES_EXECUTION_FINALIZE_COMPLETED = 'ROUTES_EXECUTION_FINALIZE_COMPLETED';\nexport const ROUTES_EXECUTION_FINALIZE_FAILED = 'ROUTES_EXECUTION_FINALIZE_FAILED';\n\nexport const ROUTES_EXECUTION_REMOVE_STARTED = 'ROUTES_EXECUTION_REMOVE_STARTED';\nexport const ROUTES_EXECUTION_REMOVE_COMPLETED = 'ROUTES_EXECUTION_REMOVE_COMPLETED';\nexport const ROUTES_EXECUTION_REMOVE_FAILED = 'ROUTES_EXECUTION_REMOVE_FAILED';\n\nexport const ROUTES_EXECUTION_COMPLETE_STARTED = 'ROUTES_EXECUTION_COMPLETE_STARTED';\nexport const ROUTES_EXECUTION_COMPLETE_COMPLETED = 'ROUTES_EXECUTION_COMPLETE_COMPLETED';\nexport const ROUTES_EXECUTION_COMPLETE_FAILED = 'ROUTES_EXECUTION_COMPLETE_FAILED';\n\nexport const ROUTES_EXECUTION_PAUSE_STARTED = 'ROUTES_EXECUTION_PAUSE_STARTED';\nexport const ROUTES_EXECUTION_PAUSE_COMPLETED = 'ROUTES_EXECUTION_PAUSE_COMPLETED';\nexport const ROUTES_EXECUTION_PAUSE_FAILED = 'ROUTES_EXECUTION_PAUSE_FAILED';\n\nexport const ROUTES_EXECUTION_START_STARTED = 'ROUTES_EXECUTION_START_STARTED';\nexport const ROUTES_EXECUTION_START_COMPLETED = 'ROUTES_EXECUTION_START_COMPLETED';\nexport const ROUTES_EXECUTION_START_FAILED = 'ROUTES_EXECUTION_START_FAILED';\n\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED = 'ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED';\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED =\n 'ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED';\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED = 'ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED';\n\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED = 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED';\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED =\n 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED';\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED = 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED';\n\nexport const ROUTES_EXECUTION_SHARE_STARTED = 'ROUTES_EXECUTION_SHARE_STARTED';\nexport const ROUTES_EXECUTION_SHARE_COMPLETED = 'ROUTES_EXECUTION_SHARE_COMPLETED';\nexport const ROUTES_EXECUTION_SHARE_FAILED = 'ROUTES_EXECUTION_SHARE_FAILED';\n\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_STARTED = 'ROUTES_EXECUTION_ASSIGN_UNIT_STARTED';\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED = 'ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED';\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_FAILED = 'ROUTES_EXECUTION_ASSIGN_UNIT_FAILED';\n\nexport interface RouteExecution {\n routeAssignmentId: number;\n routeId: number;\n routeName: string;\n distance: number;\n privateCode: null | string;\n sourceName: string;\n targetName: string;\n unitId: number;\n unitOrganizationId: number;\n organizationId: number;\n unitName: string;\n unitLocation: string;\n routeStatus: number;\n routeProgress: number;\n speed: number;\n odometer: number;\n gpsDate: string;\n auditDate: string;\n assignmentDate: string;\n finalizedDate: null | string;\n completionDate: null | string;\n cancelDate: null | string;\n stopDate: null | string;\n startDate: null | string;\n transitDate: null | string;\n cancelReason: null | string;\n distanceToCheckpoint: number;\n locationName: string;\n correlative: number;\n assignNotificationEmails: null | string;\n notificationEvents: null | string;\n globalNotificationEmails: null | string;\n globalNotificationFrec: string;\n useSharedLink: boolean;\n routeNotificationEmails: string;\n requiredStartAtOrigin: boolean;\n completionType: number;\n isSpecialCargo: boolean;\n customField1: null | string;\n customField2: null | string;\n customField3: null | string;\n customField4: null | string;\n customField5: null | string;\n customField6: null | string;\n customerId: number;\n customerName: string;\n onTimeStatus: number;\n speedStatus: number;\n stopStatus: boolean;\n driverId: null | number;\n driverName: null | string;\n driverPhoto: null | string;\n driverPhoneNumber: null | string;\n driverBloodType: null | string;\n driverLicenseNumber: null | string;\n driverLicenseType: null | string;\n driverLicenseExpireDate: null | string;\n driverUseGlasses: null | boolean | number;\n driverBloodSugarProblems: null | boolean | number;\n routeStatusLabel: string;\n routeStatusLabelInfo: string;\n isDeviceOpenLabel: string;\n speedLabel: number;\n routeProgressLabel: string;\n distanceToCheckpointLabel: string;\n distanceLabel: string;\n fuelConsumption: number;\n expectedPerformance: number;\n performanceOnRoute: number;\n distanceProgress: number;\n hasFuelPerformance: boolean | number;\n}\n","export const DASHBOARD = 1;\nexport const MAP = 2;\nexport const REPORTS = 3;\nexport const TRACKING_UNITS = 4;\nexport const GEOFENCES_CATALOG = 5;\nexport const ASSIGNED_GEOFENCES = 6;\nexport const LOCATIONS_CATALOG = 7;\nexport const IMPORT_LOCATIONS = 8;\nexport const BACKLOG_JOBS = 9;\nexport const JOBS_BOARD = 10;\nexport const JOBS_REPORT = 11;\nexport const JOBS_WORK_ACTIVITY = 12;\nexport const SAFE_DRIVER = 13;\nexport const LOGISTIC_ROUTE_CATALOG = 14;\nexport const LOGISTIC_ROUTE_MONITOR = 15;\nexport const LOGISTIC_ROUTE_REPORT = 16;\nexport const ASSIGN_LOGISTIC_ROUTE = 17;\nexport const WORK_PLAN_CATALOG = 18;\nexport const WORK_PLAN_MONITOR = 19;\nexport const WORK_PLAN_REPORT = 20;\nexport const ASSIGN_WORK_PLAN = 21;\nexport const TEMPERATURE_TELEMETRY = 22;\nexport const FUEL_TELEMETRY_MONITOR = 23;\nexport const PREVENTIVE_NOTICES = 24;\nexport const SPAREPARTS_CATALOG = 25;\nexport const WORKMANSHIPS_CATALOG = 26;\nexport const SPAREPARTS_CATEGORIES_CATALOG = 27;\nexport const SPAREPARTS_PROVIDERS_CATALOG = 28;\nexport const GENERAL_MAINTENANCE_REPORT = 29;\nexport const BY_CATEGORY_REPORT = 30;\nexport const BY_UNIT_REPORT = 31;\nexport const BY_WORKSHOP_REPORT = 32;\nexport const IMPORT_MAINTENANCE_TICKETS = 33;\nexport const NEW_TICKET = 34;\nexport const IMPORT_FUEL_TICKETS = 35;\nexport const FUEL_TICKETS_CONSOLIDATED_REPORT = 36;\nexport const FUEL_TICKETS_REPORT_BY_UNIT = 37;\nexport const OPERATOR = 38;\nexport const ORGANIZATION = 39;\nexport const DIVISION = 40;\nexport const SUBDIVISION = 41;\nexport const SERVICE_CLASSES = 42;\nexport const AGENT = 43;\nexport const GROUPS = 44;\nexport const SHIFT = 45;\nexport const TRIGGER = 46;\nexport const USERS = 47;\nexport const DRIVERS = 48;\nexport const PEOPLE = 49;\nexport const FORMS_CATALOG = 50;\nexport const ANSWERS_FORMS = 51;\nexport const DEVICES = 52;\nexport const SIMS = 53;\nexport const SENSORS = 54;\nexport const ASSETS = 55;\nexport const VEHICLES = 56;\nexport const EMAIL_NOTIFICATIONS = 57;\nexport const CONSOLE_NOTIFICATIONS = 58;\nexport const WEB_SERVICE_NOTIFICATIONS = 59;\nexport const IMPORT_JOBS = 60;\nexport const SCHEDULED_WORKPLANS = 61;\nexport const FUEL_TELEMETRY_REPORT = 62;\nexport const CONTRACTS = 63;\nexport const FLEET = 64;\nexport const CUSTOMERS = 65;\nexport const CONTACTS = 66;\nexport const MAINTENANCE_RANGES = 67;\nexport const CONTRACT_TEMPLATES = 68;\nexport const QUOTATIONS = 69;\nexport const OPTIMIZATIONS = 70;\nexport const IMPORT_ROUTE_ASSIGNMENTS = 72;\nexport const RECORD_MULTIPLE_TICKETS = 73;\nexport const BUSINESS_PARTNERS = 74;\nexport const WEB_SERVICE_RATES = 75;\nexport const WORKPLAN_IMPORT = 76;\nexport const TELEMETRY_UNITS = 77;\nexport const WORKSHOP_ADD_ORDER = 78;\nexport const AUTOMATIZATIONS = 79;\nexport const TELEMETRY_OBD2 = 80;\nexport const FUEL_TELEMETRY_REPORT_BY_VEHICLES = 81;\nexport const PROTOCOL_CATALOG = 82;\nexport const SYSTEM_NOTIFICATIONS = 83;\nexport const LOGISTIC_ROUTE_ETA_MONITOR = 84;\n","export const ROUTES_FETCH_STARTED = 'ROUTES_FETCH_STARTED';\nexport const ROUTES_FETCH_COMPLETED = 'ROUTES_FETCH_COMPLETED';\nexport const ROUTES_FETCH_FAILED = 'ROUTES_FETCH_FAILED';\n\nexport const ROUTES_PARTIAL_FETCH_STARTED = 'ROUTES_PARTIAL_FETCH_STARTED';\nexport const ROUTES_PARTIAL_FETCH_COMPLETED = 'ROUTES_PARTIAL_FETCH_COMPLETED';\nexport const ROUTES_PARTIAL_FETCH_FAILED = 'ROUTES_PARTIAL_FETCH_FAILED';\n\nexport const ROUTE_ADD_STARTED = 'ROUTE_ADD_STARTED';\nexport const ROUTE_ADD_COMPLETED = 'ROUTE_ADD_COMPLETED';\nexport const ROUTE_ADD_FAILED = 'ROUTE_ADD_FAILED';\n\nexport const ROUTE_EDIT_STARTED = 'ROUTE_EDIT_STARTED';\nexport const ROUTE_EDIT_COMPLETED = 'ROUTE_EDIT_COMPLETED';\nexport const ROUTE_EDIT_FAILED = 'ROUTE_EDIT_FAILED';\n\nexport const ROUTE_REMOVE_STARTED = 'ROUTE_REMOVE_STARTED';\nexport const ROUTE_REMOVE_COMPLETED = 'ROUTE_REMOVE_COMPLETED';\nexport const ROUTE_REMOVE_FAILED = 'ROUTE_REMOVE_FAILED';\n\nexport const ROUTES_REMOVE_STARTED = 'ROUTES_REMOVE_STARTED';\nexport const ROUTES_REMOVE_COMPLETED = 'ROUTES_REMOVE_COMPLETED';\nexport const ROUTES_REMOVE_FAILED = 'ROUTES_REMOVE_FAILED';\n\nexport const ROUTE_SELECTED = 'ROUTE_SELECTED';\nexport const ROUTES_ALL_SELECTED = 'ROUTES_ALL_SELECTED';\nexport const ROUTE_DESELECTED = 'ROUTE_DESELECTED';\nexport const ROUTES_ALL_DESELECTED = 'ROUTES_ALL_DESELECTED';\n\nexport const ROUTE_COPY_STARTED = 'ROUTE_COPY_STARTED';\nexport const ROUTE_COPY_COMPLETED = 'ROUTE_COPY_COMPLETED';\nexport const ROUTE_COPY_FAILED = 'ROUTE_COPY_FAILED';\n\nexport const ROUTE_SHOW_IN_MAP = 'ROUTE_SHOW_IN_MAP';\nexport const ROUTE_HIDE_IN_MAP = 'ROUTE_HIDE_IN_MAP';\nexport const ROUTES_ALL_SHOW_IN_MAP = 'ROUTES_ALL_SHOW_IN_MAP';\nexport const ROUTES_ALL_HIDE_IN_MAP = 'ROUTES_ALL_HIDE_IN_MAP';\n\nexport const ROUTES_SHARED_LINK_INTERVAL = 15000;\n\nexport interface Route {\n isShownInMap: boolean;\n isSelected: boolean;\n routeId: number;\n routeName: string;\n abbreviation: string;\n distance: number;\n sourceName: string;\n targetName: string;\n privateCode: null | string;\n globalNotificationEmails: null | string;\n globalNotificationFrec: null | string;\n notificationEmails: null | string;\n notificationEvents: null | string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n completionTimeByUser: number;\n speedLimit: number | null;\n startTimeWindow: number | null;\n routeGroupId: number | null;\n checkPoints: number;\n routeStatus: number;\n customerId: number | null;\n customerName: null | string;\n isConfirmed: boolean;\n checkpoints: any[];\n distanceFormat: string;\n speedLimitFormat: number;\n}\n","export const LOCATIONS_FETCH_STARTED = 'LOCATIONS_FETCH_STARTED';\nexport const LOCATIONS_FETCH_COMPLETED = 'LOCATIONS_FETCH_COMPLETED';\nexport const LOCATIONS_FETCH_FAILED = 'LOCATIONS_FETCH_FAILED';\n\nexport const LOCATION_FETCH_STARTED = 'LOCATION_FETCH_STARTED';\nexport const LOCATION_FETCH_COMPLETED = 'LOCATION_FETCH_COMPLETED';\nexport const LOCATION_FETCH_FAILED = 'LOCATION_FETCH_FAILED';\n\nexport const LOCATIONS_PARTIAL_FETCH_STARTED = 'LOCATIONS_PARTIAL_FETCH_STARTED';\nexport const LOCATIONS_PARTIAL_FETCH_COMPLETED = 'LOCATIONS_PARTIAL_FETCH_COMPLETED';\nexport const LOCATIONS_PARTIAL_FETCH_FAILED = 'LOCATIONS_PARTIAL_FETCH_FAILED';\n\nexport const LOCATION_ADD_STARTED = 'LOCATION_ADD_STARTED';\nexport const LOCATION_ADD_COMPLETED = 'LOCATION_ADD_COMPLETED';\nexport const LOCATION_ADD_FAILED = 'LOCATION_ADD_FAILED';\n\nexport const LOCATION_EDIT_STARTED = 'LOCATION_EDIT_STARTED';\nexport const LOCATION_EDIT_COMPLETED = 'LOCATION_EDIT_COMPLETED';\nexport const LOCATION_EDIT_FAILED = 'LOCATION_EDIT_FAILED';\n\nexport const LOCATION_REMOVE_STARTED = 'LOCATION_REMOVE_STARTED';\nexport const LOCATION_REMOVE_COMPLETED = 'LOCATION_REMOVE_COMPLETED';\nexport const LOCATION_REMOVE_FAILED = 'LOCATION_REMOVE_FAILED';\n\nexport const LOCATIONS_IMPORT_STARTED = 'LOCATIONS_IMPORT_STARTED';\nexport const LOCATIONS_IMPORT_COMPLETED = 'LOCATIONS_IMPORT_COMPLETED';\nexport const LOCATIONS_IMPORT_FAILED = 'LOCATIONS_IMPORT_FAILED';\n\nexport const LOCATION_SELECTED = 'LOCATION_SELECTED';\nexport const LOCATIONS_ALL_SELECTED = 'LOCATIONS_ALL_SELECTED';\nexport const LOCATION_DESELECTED = 'LOCATION_DESELECTED';\nexport const LOCATIONS_ALL_DESELECTED = 'LOCATIONS_ALL_DESELECTED';\n\nexport const LOCATION_SHOW_IN_MAP = 'LOCATION_SHOW_IN_MAP';\nexport const LOCATIONS_ALL_SHOW_IN_MAP = 'LOCATIONS_ALL_SHOW_IN_MAP';\nexport const LOCATION_HIDE_IN_MAP = 'LOCATION_HIDE_IN_MAP';\nexport const LOCATIONS_ALL_HIDE_IN_MAP = 'LOCATIONS_ALL_HIDE_IN_MAP';\n\nexport const LOCATION_DATA_LIMIT_FOR_CLUSTERING = 1000;\nexport const LOCATION_DATA_LIMIT_FOR_SHOW_ON_MAP = 5000;\n\nexport interface NewReduxLocation {\n isSelected: boolean;\n isShownInMap: boolean;\n locationId: number;\n locationAddress: string;\n dispatchCompletionType: number | null;\n dispatchEmails: string;\n dispatchNotificationFreq: number;\n enableDispatch: boolean;\n icon: string;\n latitude: number;\n locationName: string;\n locationTypeId: number;\n longitude: number;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n customerId: number | null;\n officeId: number | null;\n privateCode: null | string;\n radius: number;\n locationClassId: number;\n locationClassName: string;\n locationClassIconName: string;\n locationClassDefaultColor: string | null;\n locationStatus: number;\n fullImageUrl: null | string;\n imageUrl: null | string;\n imageTypeId: number | null;\n imageCount: number;\n isConfirmed: boolean;\n}\n","export const MONITORING_USERS_FETCH_STARTED = 'MONITORING_USERS_FETCH_STARTED';\nexport const MONITORING_USERS_FETCH_COMPLETED = 'MONITORING_USERS_FETCH_COMPLETED';\nexport const MONITORING_USERS_FETCH_FAILED = 'MONITORING_USERS_FETCH_FAILED';\n\nexport const MONITORING_USERS_PARTIAL_FETCH_STARTED = 'MONITORING_USERS_PARTIAL_FETCH_STARTED';\nexport const MONITORING_USERS_PARTIAL_FETCH_COMPLETED = 'MONITORING_USERS_PARTIAL_FETCH_COMPLETED';\nexport const MONITORING_USERS_PARTIAL_FETCH_FAILED = 'MONITORING_USERS_PARTIAL_FETCH_FAILED';\n\nexport const MONITORING_USER_ADD_STARTED = 'MONITORING_USER_ADD_STARTED';\nexport const MONITORING_USER_ADD_COMPLETED = 'MONITORING_USER_ADD_COMPLETED';\nexport const MONITORING_USER_ADD_FAILED = 'MONITORING_USER_ADD_FAILED';\n\nexport const MONITORING_USER_EDIT_STARTED = 'MONITORING_USER_EDIT_STARTED';\nexport const MONITORING_USER_EDIT_COMPLETED = 'MONITORING_USER_EDIT_COMPLETED';\nexport const MONITORING_USER_EDIT_FAILED = 'MONITORING_USER_EDIT_FAILED';\n\nexport const MONITORING_USER_REMOVE_STARTED = 'MONITORING_USER_REMOVE_STARTED';\nexport const MONITORING_USER_REMOVE_COMPLETED = 'MONITORING_USER_REMOVE_COMPLETED';\nexport const MONITORING_USER_REMOVE_FAILED = 'MONITORING_USER_REMOVE_FAILED';\n\nexport const MONITORING_USER_FETCH_STARTED = 'MONITORING_USER_FETCH_STARTED';\nexport const MONITORING_USER_FETCH_COMPLETED = 'MONITORING_USER_FETCH_COMPLETED';\nexport const MONITORING_USER_FETCH_FAILED = 'MONITORING_USER_FETCH_FAILED';\n\nexport const MONITORING_USER_SELECTED = 'MONITORING_USER_SELECTED';\nexport const MONITORING_USERS_ALL_SELECTED = 'MONITORING_USERS_ALL_SELECTED';\nexport const MONITORING_USER_DESELECTED = 'MONITORING_USER_DESELECTED';\nexport const MONITORING_USERS_ALL_DESELECTED = 'MONITORING_USERS_ALL_DESELECTED';\n\nexport const MONITORING_USER_UPDATE_PASSWORD_STARTED = 'MONITORING_USER_UPDATE_PASSWORD_STARTED';\nexport const MONITORING_USER_UPDATE_PASSWORD_COMPLETED =\n 'MONITORING_USER_UPDATE_PASSWORD_COMPLETED';\nexport const MONITORING_USER_UPDATE_PASSWORD_FAILED = 'MONITORING_USER_UPDATE_PASSWORD_FAILED';\n\nexport const MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED =\n 'MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED';\nexport const MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED =\n 'MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED';\n\nexport const USERS_ASSIGN_SCHEDULE_STARTED = 'USERS_ASSIGN_SCHEDULE_STARTED';\nexport const USERS_ASSIGN_SCHEDULE_COMPLETED = 'USERS_ASSIGN_SCHEDULE_COMPLETED';\n\nexport const USERS_UNASSIGN_SCHEDULE_STARTED = 'USERS_UNASSIGN_SCHEDULE_STARTED';\nexport const USERS_UNASSIGN_SCHEDULE_COMPLETED = 'USERS_UNASSIGN_SCHEDULE_COMPLETED';\n\nexport const USERS_FILTER_LIMIT = 1000;\n\nexport interface MonitoringUser {\n isSelected: boolean;\n userId: number;\n userName: string;\n brandId?: number | null;\n imageName: null | string;\n userImageUrl: null | string;\n accessLevelId: number;\n accessLevelName: string;\n divisionId: number;\n divisionName: string;\n email: string;\n emailConfirmed: boolean;\n completeName: string;\n organizationId: number;\n organizationName: string;\n phoneNumber: null | string | number;\n subdivisionId: number;\n subdivisionName: string;\n operatorId: number;\n agentId: number | null;\n operatorName: string;\n groupId: number | string;\n utcZoneId: number;\n metricSystemId: number | null;\n currencyId: number | null;\n driverId: number | null;\n driverName: null | string;\n userStatus: number;\n lastLoginDate: string | null;\n enableLocationClustering: boolean | null;\n locationMapLabelAlwaysOn: boolean | null;\n activateUnitTrackMode: boolean | null;\n unitMapLabelAlwaysOn: boolean | null;\n useGoogleMaps: boolean | null;\n useBingMaps: boolean | null;\n useHereMaps: boolean | null;\n unitsLabelContent: null | string;\n roleId: number | null;\n homeScreenId: number | null;\n scheduleId: number | null;\n scheduleName: null | string;\n isConfirmed: boolean;\n zoomLevelToStartClustering?: number;\n countriesForGoogleSearch?: string;\n mapEntitiesFilterTab?: number | null;\n}\n\nexport interface AssignedUnit {\n unitId: number;\n unitName: string;\n privateCode?: string;\n}\n","export const DRIVERS_FETCH_STARTED = 'DRIVERS_FETCH_STARTED';\nexport const DRIVERS_FETCH_COMPLETED = 'DRIVERS_FETCH_COMPLETED';\nexport const DRIVERS_FETCH_FAILED = 'DRIVERS_FETCH_FAILED';\n\nexport const DRIVERS_PARTIAL_FETCH_STARTED = 'DRIVERS_PARTIAL_FETCH_STARTED';\nexport const DRIVERS_PARTIAL_FETCH_COMPLETED = 'DRIVERS_PARTIAL_FETCH_COMPLETED';\nexport const DRIVERS_PARTIAL_FETCH_FAILED = 'DRIVERS_PARTIAL_FETCH_FAILED';\n\nexport const DRIVER_ADD_STARTED = 'DRIVER_ADD_STARTED';\nexport const DRIVER_ADD_COMPLETED = 'DRIVER_ADD_COMPLETED';\nexport const DRIVER_ADD_FAILED = 'DRIVER_ADD_FAILED';\n\nexport const DRIVER_EDIT_STARTED = 'DRIVER_EDIT_STARTED';\nexport const DRIVER_EDIT_COMPLETED = 'DRIVER_EDIT_COMPLETED';\nexport const DRIVER_EDIT_FAILED = 'DRIVER_EDIT_FAILED';\n\nexport const DRIVER_REMOVE_STARTED = 'DRIVER_REMOVE_STARTED';\nexport const DRIVER_REMOVE_COMPLETED = 'DRIVER_REMOVE_COMPLETED';\nexport const DRIVER_REMOVE_FAILED = 'DRIVER_REMOVE_FAILED';\n\nexport const DRIVER_SELECTED = 'DRIVER_SELECTED';\nexport const DRIVERS_ALL_SELECTED = 'DRIVERS_ALL_SELECTED';\nexport const DRIVER_DESELECTED = 'DRIVER_DESELECTED';\nexport const DRIVERS_ALL_DESELECTED = 'DRIVERS_ALL_DESELECTED';\n\nexport const START_IMPORT_DRIVERS_UNITS_IMPORT = 'START_IMPORT_DRIVERS_UNITS_IMPORT';\nexport const COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT = 'COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT';\n\nexport const START_MASSIVE_DRIVERS_ASSIGNMENT = 'START_MASSIVE_DRIVERS_ASSIGNMENT';\nexport const COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT = 'COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT';\n\nexport const DRIVER_ASSIGN_SENSOR_STARTED = 'DRIVER_ASSIGN_SENSOR_STARTED';\nexport const DRIVER_ASSIGN_SENSOR_COMPLETED = 'DRIVER_ASSIGN_SENSOR_COMPLETED';\n\nexport const DRIVER_UNASSIGN_SENSOR_STARTED = 'DRIVER_UNASSIGN_SENSOR_STARTED';\nexport const DRIVER_UNASSIGN_SENSOR_COMPLETED = 'DRIVER_UNASSIGN_SENSOR_COMPLETED';\n\nexport interface Driver {\n isSelected: boolean;\n isShownInMap: boolean;\n driverId: number;\n driverName: string;\n driverPhotoUrl: string;\n driverPhoto: null | string;\n driverStatus: number;\n birthDate: string | null;\n identificationNumber: null | string;\n licenseExpireDate: string | null;\n privateCode: null | string;\n licenseType: null | string;\n licenseNumber: null | string;\n dallasKey: null | string;\n bloodType: null | string;\n phoneNumber: null | string;\n useGlasses: number | null;\n bloodSugarProblems: number | null;\n experience: null | string;\n gender: number | null;\n workDate: string | null;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n sensorId: null | number;\n sensorName: null | string;\n totalFiles: number;\n isConfirmed: boolean;\n}\n","export const SENSORS_FETCH_STARTED = 'SENSORS_FETCH_STARTED';\nexport const SENSORS_FETCH_COMPLETED = 'SENSORS_FETCH_COMPLETED';\nexport const SENSORS_FETCH_FAILED = 'SENSORS_FETCH_FAILED';\n\nexport const SENSORS_PARTIAL_FETCH_STARTED = 'SENSORS_PARTIAL_FETCH_STARTED';\nexport const SENSORS_PARTIAL_FETCH_COMPLETED = 'SENSORS_PARTIAL_FETCH_COMPLETED';\nexport const SENSORS_PARTIAL_FETCH_FAILED = 'SENSORS_PARTIAL_FETCH_FAILED';\n\nexport const SENSOR_FETCH_STARTED = 'SENSOR_FETCH_STARTED';\nexport const SENSOR_FETCH_COMPLETED = 'SENSOR_FETCH_COMPLETED';\nexport const SENSOR_FETCH_FAILED = 'SENSOR_FETCH_FAILED';\n\nexport const SENSOR_ADD_STARTED = 'SENSOR_ADD_STARTED';\nexport const SENSOR_ADD_COMPLETED = 'SENSOR_ADD_COMPLETED';\nexport const SENSOR_ADD_FAILED = 'SENSOR_ADD_FAILED';\n\nexport const SENSOR_EDIT_STARTED = 'SENSOR_EDIT_STARTED';\nexport const SENSOR_EDIT_COMPLETED = 'SENSOR_EDIT_COMPLETED';\nexport const SENSOR_EDIT_FAILED = 'SENSOR_EDIT_FAILED';\n\nexport const SENSOR_REMOVE_STARTED = 'SENSOR_REMOVE_STARTED';\nexport const SENSOR_REMOVE_COMPLETED = 'SENSOR_REMOVE_COMPLETED';\nexport const SENSOR_REMOVE_FAILED = 'SENSOR_REMOVE_FAILED';\n\nexport const SENSOR_SELECTED = 'SENSOR_SELECTED';\nexport const SENSORS_ALL_SELECTED = 'SENSORS_ALL_SELECTED';\nexport const SENSOR_DESELECTED = 'SENSOR_DESELECTED';\nexport const SENSORS_ALL_DESELECTED = 'SENSORS_ALL_DESELECTED';\n\nexport const IDENTIFIER_CHECK_STARTED = 'IDENTIFIER_CHECK_STARTED';\nexport const IDENTIFIER_CHECK_COMPLETED = 'IDENTIFIER_CHECK_COMPLETED';\nexport const IDENTIFIER_CHECK_FAILED = 'IDENTIFIER_CHECK_FAILED';\n\nexport const START_SENSOR_CALIBRATION_STARTED = 'START_SENSOR_CALIBRATION_STARTED';\nexport const START_SENSOR_CALIBRATION_COMPLETED = 'START_SENSOR_CALIBRATION_COMPLETED';\nexport const START_SENSOR_CALIBRATION_FAILED = 'START_SENSOR_CALIBRATION_FAILED';\n\nexport const FINALIZE_SENSOR_CALIBRATION_STARTED = 'FINALIZE_SENSOR_CALIBRATION_STARTED';\nexport const FINALIZE_SENSOR_CALIBRATION_COMPLETED = 'FINALIZE_SENSOR_CALIBRATION_COMPLETED';\nexport const FINALIZE_SENSOR_CALIBRATION_FAILED = 'FINALIZE_SENSOR_CALIBRATION_FAILED';\n","export const SCHEDULES_FETCH_STARTED = 'SCHEDULES_FETCH_STARTED';\nexport const SCHEDULES_FETCH_COMPLETED = 'SCHEDULES_FETCH_COMPLETED';\nexport const SCHEDULES_FETCH_FAILED = 'SCHEDULES_FETCH_FAILED';\n\nexport const SCHEDULES_PARTIAL_FETCH_STARTED = 'SCHEDULES_PARTIAL_FETCH_STARTED';\nexport const SCHEDULES_PARTIAL_FETCH_COMPLETED = 'SCHEDULES_PARTIAL_FETCH_COMPLETED';\nexport const SCHEDULES_PARTIAL_FETCH_FAILED = 'SCHEDULES_PARTIAL_FETCH_FAILED';\n\nexport const SCHEDULE_ADD_STARTED = 'SCHEDULE_ADD_STARTED';\nexport const SCHEDULE_ADD_COMPLETED = 'SCHEDULE_ADD_COMPLETED';\nexport const SCHEDULE_ADD_FAILED = 'SCHEDULE_ADD_FAILED';\n\nexport const SCHEDULE_SHIFT_ADD_STARTED = 'SCHEDULE_SHIFT_ADD_STARTED';\nexport const SCHEDULE_SHIFT_ADD_COMPLETED = 'SCHEDULE_SHIFT_ADD_COMPLETED';\nexport const SCHEDULE_SHIFT_ADD_FAILED = 'SCHEDULE_SHIFT_ADD_FAILED';\n\nexport const SCHEDULE_EDIT_STARTED = 'SCHEDULE_EDIT_STARTED';\nexport const SCHEDULE_EDIT_COMPLETED = 'SCHEDULE_EDIT_COMPLETED';\nexport const SCHEDULE_EDIT_FAILED = 'SCHEDULE_EDIT_FAILED';\n\nexport const SCHEDULE_SHIFT_EDIT_STARTED = 'SCHEDULE_SHIFT_EDIT_STARTED';\nexport const SCHEDULE_SHIFT_EDIT_COMPLETED = 'SCHEDULE_SHIFT_EDIT_COMPLETED';\nexport const SCHEDULE_SHIFT_EDIT_FAILED = 'SCHEDULE_SHIFT_EDIT_FAILED';\n\nexport const SCHEDULE_REMOVE_STARTED = 'SCHEDULE_REMOVE_STARTED';\nexport const SCHEDULE_REMOVE_COMPLETED = 'SCHEDULE_REMOVE_COMPLETED';\nexport const SCHEDULE_REMOVE_FAILED = 'SCHEDULE_REMOVE_FAILED';\n\nexport const SCHEDULE_SELECTED = 'SCHEDULE_SELECTED';\nexport const SCHEDULES_ALL_SELECTED = 'SCHEDULES_ALL_SELECTED';\nexport const SCHEDULE_DESELECTED = 'SCHEDULE_DESELECTED';\nexport const SCHEDULES_ALL_DESELECTED = 'SCHEDULES_ALL_DESELECTED';\n","export const ASSETS_FETCH_STARTED = 'ASSETS_FETCH_STARTED';\nexport const ASSETS_FETCH_COMPLETED = 'ASSETS_FETCH_COMPLETED';\nexport const ASSETS_FETCH_FAILED = 'ASSETS_FETCH_FAILED';\n\nexport const ASSETS_PARTIAL_FETCH_STARTED = 'ASSETS_PARTIAL_FETCH_STARTED';\nexport const ASSETS_PARTIAL_FETCH_COMPLETED = 'ASSETS_PARTIAL_FETCH_COMPLETED';\nexport const ASSETS_PARTIAL_FETCH_FAILED = 'ASSETS_PARTIAL_FETCH_FAILED';\n\nexport const ASSET_ADD_STARTED = 'ASSET_ADD_STARTED';\nexport const ASSET_ADD_COMPLETED = 'ASSET_ADD_COMPLETED';\nexport const ASSET_ADD_FAILED = 'ASSET_ADD_FAILED';\n\nexport const ASSET_EDIT_STARTED = 'ASSET_EDIT_STARTED';\nexport const ASSET_EDIT_COMPLETED = 'ASSET_EDIT_COMPLETED';\nexport const ASSET_EDIT_FAILED = 'ASSET_EDIT_FAILED';\n\nexport const ASSET_REMOVE_STARTED = 'ASSET_REMOVE_STARTED';\nexport const ASSET_REMOVE_COMPLETED = 'ASSET_REMOVE_COMPLETED';\nexport const ASSET_REMOVE_FAILED = 'ASSET_REMOVE_FAILED';\n\nexport const ASSET_SELECTED = 'ASSET_SELECTED';\nexport const ASSETS_ALL_SELECTED = 'ASSETS_ALL_SELECTED';\nexport const ASSET_DESELECTED = 'ASSET_DESELECTED';\nexport const ASSETS_ALL_DESELECTED = 'ASSETS_ALL_DESELECTED';\n\nexport const ASSET_IDENTIFIER_CHECK_STARTED = 'ASSET_IDENTIFIER_CHECK_STARTED';\nexport const ASSET_IDENTIFIER_CHECK_COMPLETED = 'ASSET_IDENTIFIER_CHECK_COMPLETED';\nexport const ASSET_IDENTIFIER_CHECK_FAILED = 'ASSET_IDENTIFIER_CHECK_FAILED';\n\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_STARTED = 'ASSET_SECURITY_SEAL_CODE_CHECK_STARTED';\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED = 'ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED';\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_FAILED = 'ASSET_SECURITY_SEAL_CODE_CHECK_FAILED';\n","export const MODULES_FETCH_STARTED = 'MODULES_FETCH_STARTED';\nexport const MODULES_FETCH_COMPLETED = 'MODULES_FETCH_COMPLETED';\nexport const MODULES_FETCH_FAILED = 'MODULES_FETCH_FAILED';\n\nexport const MODULES_PARTIAL_FETCH_STARTED = 'MODULES_PARTIAL_FETCH_STARTED';\nexport const MODULES_PARTIAL_FETCH_COMPLETED = 'MODULES_PARTIAL_FETCH_COMPLETED';\nexport const MODULES_PARTIAL_FETCH_FAILED = 'MODULES_PARTIAL_FETCH_FAILED';\n\nexport const MODULE_FETCH_STARTED = 'MODULE_FETCH_STARTED';\nexport const MODULE_FETCH_COMPLETED = 'MODULE_FETCH_COMPLETED';\nexport const MODULE_FETCH_FAILED = 'MODULE_FETCH_FAILED';\n\nexport const MODULE_ADD_STARTED = 'MODULE_ADD_STARTED';\nexport const MODULE_ADD_COMPLETED = 'MODULE_ADD_COMPLETED';\nexport const MODULE_ADD_FAILED = 'MODULE_ADD_FAILED';\n\nexport const MODULE_EDIT_STARTED = 'MODULE_EDIT_STARTED';\nexport const MODULE_EDIT_COMPLETED = 'MODULE_EDIT_COMPLETED';\nexport const MODULE_EDIT_FAILED = 'MODULE_EDIT_FAILED';\n\nexport const MODULE_REMOVE_STARTED = 'MODULE_REMOVE_STARTED';\nexport const MODULE_REMOVE_COMPLETED = 'MODULE_REMOVE_COMPLETED';\nexport const MODULE_REMOVE_FAILED = 'MODULE_REMOVE_FAILED';\n\nexport const MODULE_SELECTED = 'MODULE_SELECTED';\nexport const MODULES_ALL_SELECTED = 'MODULES_ALL_SELECTED';\nexport const MODULE_DESELECTED = 'MODULE_DESELECTED';\nexport const MODULES_ALL_DESELECTED = 'MODULES_ALL_DESELECTED';\n\nexport const MODULE_DIRTY = 'MODULE_DIRTY';\nexport const MODULE_UNDIRTY = 'MODULE_UNDIRTY';\n\nexport const MODULE_FILTER_LIMIT = 1000;\n\nexport interface Module {\n isSelected: boolean;\n deviceId: number;\n identifier: string;\n devicePublicId: string;\n serialNumber: null | string;\n imei: null | string;\n propertyTypeId: number;\n brandId: number;\n brandName: string;\n deviceModelId: number;\n deviceModelName: string;\n deviceConfigurationId: number;\n deviceConfigurationName: string;\n deviceStatus: number;\n locationStatus: number;\n operatorPublicId: string;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n divisionId: number | null;\n subdivisionId: number | null;\n unitId: number;\n unitPublicId: string;\n unitName: string;\n devicePassword: null | string;\n warrantyProviderTypeId: number;\n warrantyProviderId: number | null;\n warrantyProviderName: string | null;\n warrantyProviderOperatorId: number | null;\n warrantyProviderOrganizationId: number | null;\n warrantyProviderDivisionId: number | null;\n isConfirmed: boolean;\n locationStatusText?: string;\n locationStatusDescription?: string;\n deviceStatusText?: string;\n deviceStatusDescription?: string;\n propertyTypeText?: string;\n propertyTypeDescription?: string;\n warrantyProviderText?: string;\n warrantyProviderDescription?: string;\n}\n\nexport interface PartialModule extends Partial {}\n","export const OPERATORS_FETCH_STARTED = 'OPERATORS_FETCH_STARTED';\nexport const OPERATORS_FETCH_COMPLETED = 'OPERATORS_FETCH_COMPLETED';\nexport const OPERATORS_FETCH_FAILED = 'OPERATORS_FETCH_FAILED';\n\nexport const OPERATORS_PARTIAL_FETCH_STARTED = 'OPERATORS_PARTIAL_FETCH_STARTED';\nexport const OPERATORS_PARTIAL_FETCH_COMPLETED = 'OPERATORS_PARTIAL_FETCH_COMPLETED';\nexport const OPERATORS_PARTIAL_FETCH_FAILED = 'OPERATORS_PARTIAL_FETCH_FAILED';\n\nexport const OPERATOR_ADD_STARTED = 'OPERATOR_ADD_STARTED';\nexport const OPERATOR_ADD_COMPLETED = 'OPERATOR_ADD_COMPLETED';\nexport const OPERATOR_ADD_FAILED = 'OPERATOR_ADD_FAILED';\n\nexport const OPERATOR_EDIT_STARTED = 'OPERATOR_EDIT_STARTED';\nexport const OPERATOR_EDIT_COMPLETED = 'OPERATOR_EDIT_COMPLETED';\nexport const OPERATOR_EDIT_FAILED = 'OPERATOR_EDIT_FAILED';\n\nexport const OPERATOR_REMOVE_STARTED = 'OPERATOR_REMOVE_STARTED';\nexport const OPERATOR_REMOVE_COMPLETED = 'OPERATOR_REMOVE_COMPLETED';\nexport const OPERATOR_REMOVE_FAILED = 'OPERATOR_REMOVE_FAILED';\n\nexport const OPERATOR_SELECTED = 'OPERATOR_SELECTED';\nexport const OPERATOR_DESELECTED = 'OPERATOR_DESELECTED';\nexport const OPERATORS_ALL_SELECTED = 'OPERATORS_ALL_SELECTED';\nexport const OPERATORS_ALL_DESELECTED = 'OPERATORS_ALL_DESELECTED';\n\nexport const OPERATOR_EDIT_STANDARD_PRICES_STARTED = 'OPERATOR_EDIT_STANDARD_PRICES_STARTED';\nexport const OPERATOR_EDIT_STANDARD_PRICES_FAILED = 'OPERATOR_EDIT_STANDARD_PRICES_FAILED';\nexport const OPERATOR_EDIT_STANDARD_PRICES_COMPLETED = 'OPERATOR_EDIT_STANDARD_PRICES_COMPLETED';\n\nexport interface ReduxOperator {\n isSelected: boolean;\n operatorId: number;\n operatorName: string;\n operatorPhone: string;\n operatorAddress: string;\n comments?: string;\n contactName?: string;\n contactPhone?: string;\n taxNumber?: string;\n contractNumber?: number;\n operatorStatus: number;\n legalRepresentativeId?: number;\n legalRepresentativeName?: string;\n legalRepresentativeIdentification?: string;\n legalRepresentativeAge: number;\n legalRepresentativeNacionality?: string;\n legalRepresentativeAddress?: string;\n recordNumber?: number;\n recordSheet?: number;\n recordBook?: number;\n recordDate?: string;\n utcZoneId?: number;\n quotationValidity?: number;\n isConfirmed: boolean;\n}\n","export const SIMS_FETCH_STARTED = 'SIMS_FETCH_STARTED';\nexport const SIMS_FETCH_COMPLETED = 'SIMS_FETCH_COMPLETED';\nexport const SIMS_FETCH_FAILED = 'SIMS_FETCH_FAILED';\n\nexport const SIM_FETCH_STARTED = 'SIM_FETCH_STARTED';\nexport const SIM_FETCH_COMPLETED = 'SIM_FETCH_COMPLETED';\nexport const SIM_FETCH_FAILED = 'SIM_FETCH_FAILED';\n\nexport const SIMS_PARTIAL_FETCH_STARTED = 'SIMS_PARTIAL_FETCH_STARTED';\nexport const SIMS_PARTIAL_FETCH_COMPLETED = 'SIMS_PARTIAL_FETCH_COMPLETED';\nexport const SIMS_PARTIAL_FETCH_FAILED = 'SIMS_PARTIAL_FETCH_FAILED';\n\nexport const SIM_ADD_STARTED = 'SIM_ADD_STARTED';\nexport const SIM_ADD_COMPLETED = 'SIM_ADD_COMPLETED';\nexport const SIM_ADD_FAILED = 'SIM_ADD_FAILED';\n\nexport const SIM_EDIT_STARTED = 'SIM_EDIT_STARTED';\nexport const SIM_EDIT_COMPLETED = 'SIM_EDIT_COMPLETED';\nexport const SIM_EDIT_FAILED = 'SIM_EDIT_FAILED';\n\nexport const SIM_REMOVE_STARTED = 'SIM_REMOVE_STARTED';\nexport const SIM_REMOVE_COMPLETED = 'SIM_REMOVE_COMPLETED';\nexport const SIM_REMOVE_FAILED = 'SIM_REMOVE_FAILED';\n\nexport const SIM_SELECTED = 'SIM_SELECTED';\nexport const SIMS_ALL_SELECTED = 'SIMS_ALL_SELECTED';\nexport const SIM_DESELECTED = 'SIM_DESELECTED';\nexport const SIMS_ALL_DESELECTED = 'SIMS_ALL_DESELECTED';\n\nexport const SIMS_FILTER_LIMIT = 1000;\n\nexport interface SimCard {\n simCardId: number;\n cellularNumber: string;\n imsi: string;\n iccid: string;\n simCardStatus: number;\n simCardLocationStatus: number;\n mobileOperatorId: number;\n mobileOperatorName: string;\n countryId: number;\n countryName: string;\n warrantyProviderTypeId: number;\n warrantyProviderId: number;\n warrantyProviderPublicId: string;\n warrantyProviderName: string;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number;\n divisionName: string;\n subdivisionId: number;\n subdivisionName: string;\n unitId: number;\n unitName: string;\n warrantyOperatorId: number;\n warrantyOrganizationId: number;\n warrantyDivisionId: number;\n}\n","export const MAINTENANCE_LINES_FETCH_STARTED = 'MAINTENANCE_LINES_FETCH_STARTED';\nexport const MAINTENANCE_LINES_FETCH_COMPLETED = 'MAINTENANCE_LINES_FETCH_COMPLETED';\nexport const MAINTENANCE_LINES_FETCH_FAILED = 'MAINTENANCE_LINES_FETCH_FAILED';\n\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_STARTED = 'MAINTENANCE_LINES_PARTIAL_FETCH_STARTED';\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED =\n 'MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED';\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_FAILED = 'MAINTENANCE_LINES_PARTIAL_FETCH_FAILED';\n\nexport const MAINTENANCE_LINE_ADD_STARTED = 'MAINTENANCE_LINE_ADD_STARTED';\nexport const MAINTENANCE_LINE_ADD_COMPLETED = 'MAINTENANCE_LINE_ADD_COMPLETED';\nexport const MAINTENANCE_LINE_ADD_FAILED = 'MAINTENANCE_LINE_ADD_FAILED';\n\nexport const MAINTENANCE_LINE_EDIT_STARTED = 'MAINTENANCE_LINE_EDIT_STARTED';\nexport const MAINTENANCE_LINE_EDIT_COMPLETED = 'MAINTENANCE_LINE_EDIT_COMPLETED';\nexport const MAINTENANCE_LINE_EDIT_FAILED = 'MAINTENANCE_LINE_EDIT_FAILED';\n\nexport const MAINTENANCE_LINE_REMOVE_STARTED = 'MAINTENANCE_LINE_REMOVE_STARTED';\nexport const MAINTENANCE_LINE_REMOVE_COMPLETED = 'MAINTENANCE_LINE_REMOVE_COMPLETED';\nexport const MAINTENANCE_LINE_REMOVE_FAILED = 'MAINTENANCE_LINE_REMOVE_FAILED';\n\nexport const MAINTENANCE_LINE_COPY_STARTED = 'MAINTENANCE_LINE_COPY_STARTED';\nexport const MAINTENANCE_LINE_COPY_COMPLETED = 'MAINTENANCE_LINE_COPY_COMPLETED';\nexport const MAINTENANCE_LINE_COPY_FAILED = 'MAINTENANCE_LINE_COPY_FAILED';\n\nexport const MAINTENANCE_LINE_SELECTED = 'MAINTENANCE_LINE_SELECTED';\nexport const MAINTENANCE_LINES_ALL_SELECTED = 'MAINTENANCE_LINES_ALL_SELECTED';\nexport const MAINTENANCE_LINE_DESELECTED = 'MAINTENANCE_LINE_DESELECTED';\nexport const MAINTENANCE_LINES_ALL_DESELECTED = 'MAINTENANCE_LINES_ALL_DESELECTED';\n\nexport interface MaintenancePlans {\n isSelected: boolean;\n maintenanceLineId: number;\n maintenanceLineName: string;\n isCycle: boolean;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: null | string;\n subdivisionId: number | null;\n subdivisionName: null | string;\n maintenanceRangesByOdometer: null | string;\n maintenanceRangesByHourMeter: null | string;\n maintenanceLineStatus: number;\n maintenanceNoticeTypeId: number;\n isConfirmed: boolean;\n}\n\nexport enum MaintenanceNoticeTypes {\n Odometer = 1,\n Date = 2,\n HoursOfWork = 3,\n MaintenanceLinesByOdometer = 4,\n MaintenanceLinesByHourmeter = 5\n}\n","export const AGENTS_FETCH_STARTED = 'AGENTS_FETCH_STARTED';\nexport const AGENTS_FETCH_COMPLETED = 'AGENTS_FETCH_COMPLETED';\nexport const AGENTS_FETCH_FAILED = 'AGENTS_FETCH_FAILED';\n\nexport const AGENTS_PARTIAL_FETCH_STARTED = 'AGENTS_PARTIAL_FETCH_STARTED';\nexport const AGENTS_PARTIAL_FETCH_COMPLETED = 'AGENTS_PARTIAL_FETCH_COMPLETED';\nexport const AGENTS_PARTIAL_FETCH_FAILED = 'AGENTS_PARTIAL_FETCH_FAILED';\n\nexport const AGENT_FETCH_STARTED = 'AGENT_FETCH_STARTED';\nexport const AGENT_FETCH_COMPLETED = 'AGENT_FETCH_COMPLETED';\nexport const AGENT_FETCH_FAILED = 'AGENT_FETCH_FAILED';\n\nexport const AGENT_ADD_STARTED = 'AGENT_ADD_STARTED';\nexport const AGENT_ADD_COMPLETED = 'AGENT_ADD_COMPLETED';\nexport const AGENT_ADD_FAILED = 'AGENT_ADD_FAILED';\n\nexport const AGENT_EDIT_STARTED = 'AGENT_EDIT_STARTED';\nexport const AGENT_EDIT_COMPLETED = 'AGENT_EDIT_COMPLETED';\nexport const AGENT_EDIT_FAILED = 'AGENT_EDIT_FAILED';\n\nexport const AGENT_REMOVE_STARTED = 'AGENT_REMOVE_STARTED';\nexport const AGENT_REMOVE_COMPLETED = 'AGENT_REMOVE_COMPLETED';\nexport const AGENT_REMOVE_FAILED = 'AGENT_REMOVE_FAILED';\n\nexport const AGENT_SELECTED = 'AGENT_SELECTED';\nexport const AGENTS_ALL_SELECTED = 'AGENTS_ALL_SELECTED';\nexport const AGENT_DESELECTED = 'AGENT_DESELECTED';\nexport const AGENTS_ALL_DESELECTED = 'AGENTS_ALL_DESELECTED';\n","export const VEHICLES_FETCH_STARTED = 'VEHICLES_FETCH_STARTED';\nexport const VEHICLES_FETCH_COMPLETED = 'VEHICLES_FETCH_COMPLETED';\nexport const VEHICLES_FETCH_FAILED = 'VEHICLES_FETCH_FAILED';\n\nexport const VEHICLES_PARTIAL_FETCH_STARTED = 'VEHICLES_PARTIAL_FETCH_STARTED';\nexport const VEHICLES_PARTIAL_FETCH_COMPLETED = 'VEHICLES_PARTIAL_FETCH_COMPLETED';\nexport const VEHICLES_PARTIAL_FETCH_FAILED = 'VEHICLES_PARTIAL_FETCH_FAILED';\n\nexport const VEHICLE_ADD_STARTED = 'VEHICLE_ADD_STARTED';\nexport const VEHICLE_ADD_COMPLETED = 'VEHICLE_ADD_COMPLETED';\nexport const VEHICLE_ADD_FAILED = 'VEHICLE_ADD_FAILED';\n\nexport const VEHICLE_EDIT_STARTED = 'VEHICLE_EDIT_STARTED';\nexport const VEHICLE_EDIT_COMPLETED = 'VEHICLE_EDIT_COMPLETED';\nexport const VEHICLE_EDIT_FAILED = 'VEHICLE_EDIT_FAILED';\n\nexport const VEHICLE_REMOVE_STARTED = 'VEHICLE_REMOVE_STARTED';\nexport const VEHICLE_REMOVE_COMPLETED = 'VEHICLE_REMOVE_COMPLETED';\nexport const VEHICLE_REMOVE_FAILED = 'VEHICLE_REMOVE_FAILED';\n\nexport const VEHICLE_SELECTED = 'VEHICLE_SELECTED';\nexport const VEHICLES_ALL_SELECTED = 'VEHICLES_ALL_SELECTED';\nexport const VEHICLE_DESELECTED = 'VEHICLE_DESELECTED';\nexport const VEHICLES_ALL_DESELECTED = 'VEHICLES_ALL_DESELECTED';\n\nexport const VEHICLE_LICENSE_PLATE_CHECK_STARTED = 'VEHICLE_LICENSE_PLATE_CHECK_STARTED';\nexport const VEHICLE_LICENSE_PLATE_CHECK_COMPLETED = 'VEHICLE_LICENSE_PLATE_CHECK_COMPLETED';\nexport const VEHICLE_LICENSE_PLATE_CHECK_FAILED = 'VEHICLE_LICENSE_PLATE_CHECK_FAILED';\n","export const CUSTOMERS_FETCH_STARTED = 'CUSTOMERS_FETCH_STARTED';\nexport const CUSTOMERS_FETCH_COMPLETED = 'CUSTOMERS_FETCH_COMPLETED';\nexport const CUSTOMERS_FETCH_FAILED = 'CUSTOMERS_FETCH_FAILED';\n\nexport const CUSTOMERS_PARTIAL_FETCH_STARTED = 'CUSTOMERS_PARTIAL_FETCH_STARTED';\nexport const CUSTOMERS_PARTIAL_FETCH_COMPLETED = 'CUSTOMERS_PARTIAL_FETCH_COMPLETED';\nexport const CUSTOMERS_PARTIAL_FETCH_FAILED = 'CUSTOMERS_PARTIAL_FETCH_FAILED';\n\nexport const CUSTOMER_ADD_STARTED = 'CUSTOMER_ADD_STARTED';\nexport const CUSTOMER_ADD_COMPLETED = 'CUSTOMER_ADD_COMPLETED';\nexport const CUSTOMER_ADD_FAILED = 'CUSTOMER_ADD_FAILED';\n\nexport const CUSTOMER_EDIT_STARTED = 'CUSTOMER_EDIT_STARTED';\nexport const CUSTOMER_EDIT_COMPLETED = 'CUSTOMER_EDIT_COMPLETED';\nexport const CUSTOMER_EDIT_FAILED = 'CUSTOMER_EDIT_FAILED';\n\nexport const CUSTOMER_REMOVE_STARTED = 'CUSTOMER_REMOVE_STARTED';\nexport const CUSTOMER_REMOVE_COMPLETED = 'CUSTOMER_REMOVE_COMPLETED';\nexport const CUSTOMER_REMOVE_FAILED = 'CUSTOMER_REMOVE_FAILED';\n\nexport const CUSTOMER_SELECTED = 'CUSTOMER_SELECTED';\nexport const CUSTOMERS_ALL_SELECTED = 'CUSTOMERS_ALL_SELECTED';\nexport const CUSTOMER_DESELECTED = 'CUSTOMER_DESELECTED';\nexport const CUSTOMERS_ALL_DESELECTED = 'CUSTOMERS_ALL_DESELECTED';\n\nexport interface Customer {\n isSelected: boolean;\n customerId: number;\n customerName: string;\n businessName: null | string;\n taxId: null | string;\n privateCode: null | string;\n customerStatus: number;\n organizationId: number;\n organizationName: string;\n divisionId: null | number;\n divisionName: null | string;\n subdivisionId: null | number;\n subdivisionName: null | string;\n customerAddress: null | string;\n phone1: null | string;\n phone2: null | string;\n phone3: null | string;\n contactName1: null | string;\n contactName2: null | string;\n contactName3: null | string;\n comments: null | string;\n customerEmails: null | string;\n officeId: number;\n isConfirmed: boolean;\n}\n","import * as types from '../types';\n\nexport const startFetchingUnits = (filters = {}) => ({\n type: types.UNITS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingUnits = (entities, order, operatorId, organizationId) => ({\n type: types.UNITS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failFetchingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingUnit = (unitId) => ({\n type: types.UNIT_FETCH_STARTED,\n payload: unitId\n});\n\nexport const completeFetchingUnit = (unit, order) => ({\n type: types.UNIT_FETCH_COMPLETED,\n payload: {\n unit,\n order\n }\n});\n\nexport const failFetchingUnit = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingUnits = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.UNITS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingUnits = (entities, order, operatorId, organizationId) => ({\n type: types.UNITS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const addingUnitToState = (unit) => ({\n type: types.UNIT_ADD_TO_STATE,\n payload: unit\n});\n\nexport const startFetchingUnitsLiveStatus = () => ({\n type: types.UNITS_LIVE_STATUS_FETCH_STARTED,\n payload: {}\n});\n\nexport const completeFetchingUnitsLiveStatus = (entities, order, organizationId) => ({\n type: types.UNITS_LIVE_STATUS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n organizationId\n }\n});\n\nexport const failFetchingUnitsLiveStatus = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.UNITS_LIVE_STATUS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingUnitInformation = (unitId) => ({\n type: types.UNIT_INFORMATION_FETCH_STARTED,\n payload: { unitId }\n});\n\nexport const completeFetchingUnitInformation = (\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n) => ({\n type: types.UNIT_INFORMATION_FETCH_COMPLETED,\n payload: {\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n }\n});\n\nexport const failFetchingUnitInformation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.UNIT_INFORMATION_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingUnitPositions = (unitId, reportType, startDate, endDate, idleSpeed) => ({\n type: types.UNIT_POSITIONS_FETCH_STARTED,\n payload: { unitId, reportType, startDate, endDate, idleSpeed }\n});\n\nexport const completeFetchingUnitPositions = (\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n) => ({\n type: types.UNIT_POSITIONS_FETCH_COMPLETED,\n payload: {\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n }\n});\n\nexport const failFetchingUnitPositions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_POSITIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const resetIsFetchedUnitPosition = () => ({\n type: types.UNIT_POSITIONS_RESET_IS_FETCHED,\n payload: {}\n});\n\nexport const startFetchingUnitTrajectory = (unitId, limit = 50) => ({\n type: types.UNIT_TRAJECTORY_FETCH_STARTED,\n payload: { unitId, limit }\n});\n\nexport const completeFetchingUnitTrajectory = (\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n) => ({\n type: types.UNIT_TRAJECTORY_FETCH_COMPLETED,\n payload: {\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n }\n});\n\nexport const failFetchingUnitTrajectory = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.UNIT_TRAJECTORY_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const executeDeviceAction = (unitId, deviceActionId, parameters = null) => ({\n type: types.UNIT_EXECUTE_DEVICE_ACTION,\n payload: {\n unitId,\n deviceActionId,\n parameters\n }\n});\n\nexport const startAddingUnit = (unit) => ({\n type: types.UNIT_ADD_STARTED,\n payload: unit\n});\nexport const completeAddingUnit = (oldId, unit) => ({\n type: types.UNIT_ADD_COMPLETED,\n payload: { oldId, unit }\n});\nexport const failAddingUnit = (oldId, error) => ({\n type: types.UNIT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport type UpdateUnitDeviceRequest = { unitId: number; deviceId: number | null };\ntype UpdateUnitResponse = {\n unitId: number;\n deviceId: number | null;\n};\nexport const startUpdateDevice = (\n data: UpdateUnitDeviceRequest & { additionalOnSuccess?: (() => void) | undefined }\n) => ({\n type: types.UNIT_UPDATE_DEVICE_STARTED,\n payload: data\n});\nexport const completeUpdateDevice = (data: UpdateUnitResponse) => ({\n type: types.UNIT_UPDATE_DEVICE_COMPLETED,\n payload: data\n});\nexport const failUpdateDevice = (oldId: number, error: Error) => ({\n type: types.UNIT_UPDATE_DEVICE_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingUnit = (unit) => ({\n type: types.UNIT_EDIT_STARTED,\n payload: unit\n});\nexport const completeEditingUnit = (unit) => ({\n type: types.UNIT_EDIT_COMPLETED,\n payload: unit\n});\nexport const failEditingUnit = (oldUnit, error) => ({\n type: types.UNIT_EDIT_FAILED,\n payload: {\n oldUnit,\n error\n }\n});\n\nexport const startAcknowledgeUnitEvent = (unitId) => ({\n type: types.UNIT_ACKNOWLEDGE_STARTED,\n payload: { unitId }\n});\nexport const completeAcknowledgeUnitEvent = (unitId) => ({\n type: types.UNIT_ACKNOWLEDGE_COMPLETED,\n payload: { unitId }\n});\nexport const failAcknowledgeUnitEvent = (error) => ({\n type: types.UNIT_ACKNOWLEDGE_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAssigningDriverUnits = (units) => ({\n type: types.UNITS_ASSIGN_DRIVER_STARTED,\n payload: units\n});\nexport const completeAssigningDriverUnits = (units) => ({\n type: types.UNITS_ASSIGN_DRIVER_COMPLETED,\n payload: units\n});\n\nexport const startEndDowntimeUnit = (unitId) => ({\n type: types.UNIT_END_DOWNTIME_STARTED,\n payload: {\n unitId\n }\n});\nexport const completeEndDowntimeUnit = (unitId, mainStateId, mainStateDate) => ({\n type: types.UNIT_END_DOWNTIME_COMPLETED,\n payload: {\n unitId,\n mainStateId,\n mainStateDate\n }\n});\nexport const failEndDowntimeUnit = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_END_DOWNTIME_FAILED,\n payload: {\n error\n }\n});\n\nexport const startStartDowntimeUnit = (unitId, reasonId) => ({\n type: types.UNIT_START_DOWNTIME_STARTED,\n payload: {\n unitId,\n reasonId\n }\n});\nexport const completeStartDowntimeUnit = (unitId, reasonId, reasonDescription) => ({\n type: types.UNIT_START_DOWNTIME_COMPLETED,\n payload: {\n unitId,\n reasonId,\n reasonDescription\n }\n});\nexport const failStartDowntimeUnit = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_START_DOWNTIME_FAILED,\n payload: {\n error\n }\n});\n\nexport const startActivingUnits = (units) => ({\n type: types.UNITS_ACTIVE_STARTED,\n payload: units\n});\n\nexport const completeActivingUnits = (units) => ({\n type: types.UNITS_ACTIVE_COMPLETED,\n payload: units\n});\nexport const failActivingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_ACTIVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startRemovingUnit = (units, unitsName) => ({\n type: types.UNIT_REMOVE_STARTED,\n payload: {\n units,\n unitsName\n }\n});\nexport const completeRemovingUnit = (units, unitsName) => ({\n type: types.UNIT_REMOVE_COMPLETED,\n payload: {\n units,\n unitsName\n }\n});\nexport const failRemovingUnit = (units, error) => ({\n type: types.UNIT_REMOVE_FAILED,\n payload: {\n units,\n error\n }\n});\n\nexport const setDateRange = (unitId, dateRange) => ({\n type: types.SET_DATE_RANGE,\n payload: { unitId, dateRange }\n});\n\nexport const selectUnit = (unitId) => ({\n type: types.UNIT_SELECTED,\n payload: unitId\n});\n\nexport const selectAllUnits = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_SELECTED,\n payload: unitIds\n});\n\nexport const deselectUnit = (unitId) => ({\n type: types.UNIT_DESELECTED,\n payload: unitId\n});\n\nexport const deselectAllUnits = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_DESELECTED,\n payload: unitIds\n});\n\nexport const showUnitInMap = (unitId) => ({\n type: types.UNIT_SHOW_IN_MAP,\n payload: unitId\n});\n\nexport const showAllUnitsInMap = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_SHOW_IN_MAP,\n payload: unitIds\n});\n\nexport const hideUnitInMap = (unitId) => ({\n type: types.UNIT_HIDE_IN_MAP,\n payload: unitId\n});\n\nexport const hideAllUnitsInMap = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_HIDE_IN_MAP,\n payload: unitIds\n});\n\nexport const startCreatingShareLink = (unitId, unitName, emails, ttl) => ({\n type: types.UNIT_CREATE_SHARE_LINK_STARTED,\n payload: {\n unitId,\n unitName,\n emails,\n ttl\n }\n});\nexport const completeCreatingShareLink = (result) => ({\n type: types.UNIT_CREATE_SHARE_LINK_COMPLETED,\n payload: result\n});\nexport const failCreatingShareLink = (error) => ({\n type: types.UNIT_CREATE_SHARE_LINK_FAILED,\n payload: {\n error\n }\n});\n\nexport const clearSharedLink = () => ({\n type: types.UNIT_CLEAR_SHARE_LINK,\n payload: {}\n});\n\nexport const startUpdateSim = ({\n unitId,\n simCardId\n}: {\n unitId: number;\n simCardId: number | null;\n additionalOnSuccess?: () => void;\n}) => ({\n type: types.UNIT_UPDATE_SIM_STARTED,\n payload: { unitId, simCardId }\n});\n\nexport const failUpdateSim = (oldUnitId: number, error: string) => ({\n type: types.UNIT_UPDATE_SIM_FAILED,\n payload: { error }\n});\n\nexport const completeUpdateSim = (changes: Partial) => ({\n type: types.UNIT_UPDATE_SIM_COMPLETED,\n payload: { changes }\n});\n\nexport const startAddingFetchDate = () => ({\n type: types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED,\n payload: {}\n});\n\nexport const completeAddingFetchDate = (organizationId) => ({\n type: types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED,\n payload: {\n organizationId: organizationId\n }\n});\n\nexport const failAddingFetchDate = (error: string) => ({\n type: types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED,\n payload: { error }\n});\n","export const SERVICECLASSES_FETCH_STARTED = 'SERVICECLASSES_FETCH_STARTED';\nexport const SERVICECLASSES_FETCH_COMPLETED = 'SERVICECLASSES_FETCH_COMPLETED';\nexport const SERVICECLASSES_FETCH_FAILED = 'SERVICECLASSES_FETCH_FAILED';\n\nexport const SERVICECLASSES_PARTIAL_FETCH_STARTED = 'SERVICECLASSES_PARTIAL_FETCH_STARTED';\nexport const SERVICECLASSES_PARTIAL_FETCH_COMPLETED = 'SERVICECLASSES_PARTIAL_FETCH_COMPLETED';\nexport const SERVICECLASSES_PARTIAL_FETCH_FAILED = 'SERVICECLASSES_PARTIAL_FETCH_FAILED';\n\nexport const SERVICECLASS_FETCH_STARTED = 'SERVICECLASS_FETCH_STARTED';\nexport const SERVICECLASS_FETCH_COMPLETED = 'SERVICECLASS_FETCH_COMPLETED';\nexport const SERVICECLASS_FETCH_FAILED = 'SERVICECLASS_FETCH_FAILED';\n\nexport const SERVICECLASS_ADD_STARTED = 'SERVICECLASS_ADD_STARTED';\nexport const SERVICECLASS_ADD_COMPLETED = 'SERVICECLASS_ADD_COMPLETED';\nexport const SERVICECLASS_ADD_FAILED = 'SERVICECLASS_ADD_FAILED';\n\nexport const SERVICECLASS_EDIT_STARTED = 'SERVICECLASS_EDIT_STARTED';\nexport const SERVICECLASS_EDIT_COMPLETED = 'SERVICECLASS_EDIT_COMPLETED';\nexport const SERVICECLASS_EDIT_FAILED = 'SERVICECLASS_EDIT_FAILED';\n\nexport const SERVICECLASS_REMOVE_STARTED = 'SERVICECLASS_REMOVE_STARTED';\nexport const SERVICECLASS_REMOVE_COMPLETED = 'SERVICECLASS_REMOVE_COMPLETED';\nexport const SERVICECLASS_REMOVE_FAILED = 'SERVICECLASS_REMOVE_FAILED';\n\nexport const SERVICECLASS_SELECTED = 'SERVICECLASS_SELECTED';\nexport const SERVICECLASSES_ALL_SELECTED = 'SERVICECLASSES_ALL_SELECTED';\nexport const SERVICECLASS_DESELECTED = 'SERVICECLASS_DESELECTED';\nexport const SERVICECLASSES_ALL_DESELECTED = 'SERVICECLASSES_ALL_DESELECTED';\n","//filtrar data de vehiculos por performanceStatus segun rango seleccionado por del usuario\nimport { useMemo } from 'react';\nimport camelcaseKeys from \"camelcase-keys\";\nimport moment from \"moment\"\nimport { all } from \"redux-saga/effects\"\nimport { isNullOrUndefined } from \"utility/Utils\"\n\nexport const performanceColors = ['#FF4757', '#ffa437', '#2ED573', '#1E90FF', '#7d39f6'];\n\nconst vehiclePerformanceTitle = {\n Deficient : 'common.deficient',\n Regular : 'common.regular',\n Efficient : 'common.efficient',\n Top : 'common.top'\n}\n\n/**\n * Get translated title based on performance status\n * @param {number} status\n * @param {[number, number, number, number]} rangePerformance \n * @returns {string | null} Translated title\n */\nexport const getPerformanceTitle = (status, rangePerformance) => {\n const performanceStatus = Math.round(status)\n\n const isDeficient = performanceStatus <= rangePerformance[1] - 1;\n const isRegular = performanceStatus >= rangePerformance[1] && performanceStatus <= rangePerformance[2] - 1;\n const isEfficient = performanceStatus >= rangePerformance[2] && performanceStatus <= rangePerformance[3];\n const isTop = performanceStatus > rangePerformance[3] && performanceStatus < 200;\n\n let vehiclePerformance = null;\n\n if (isTop) {\n vehiclePerformance = vehiclePerformanceTitle.Top;\n } else if (isEfficient) {\n vehiclePerformance = vehiclePerformanceTitle.Efficient;\n } else if (isRegular) {\n vehiclePerformance = vehiclePerformanceTitle.Regular;\n } else if (isDeficient) {\n vehiclePerformance = vehiclePerformanceTitle.Deficient;\n }\n\n return vehiclePerformance;\n}\n\n/**\n * Get color based on performance status\n * @param {number} status \n * @param {number | undefined} expectedPerformance \n * @param {number[]} rangePerformance \n * @returns {string} Hex color\n */\nexport const getPerformanceColor = (status, expectedPerformance, rangePerformance = [0, 80, 90, 110, 200]) => {\n // Ensure that rangePerformance has at least 5 elements\n if (rangePerformance.length < 5) {\n console.error(\"Invalid rangePerformance array: must have at least 5 elements.\");\n return performanceColors[0]; // Default color if rangePerformance is invalid\n }\n\n const performanceStatus = Math.round(status);\n\n // Check the range and return the corresponding color\n if (!performanceStatus || performanceStatus < rangePerformance[1]) {\n return performanceColors[0];\n } else if (performanceStatus >= rangePerformance[1] && performanceStatus < rangePerformance[2]) {\n return performanceColors[1];\n } else if (performanceStatus >= rangePerformance[2] && performanceStatus < rangePerformance[3]) {\n return performanceColors[2];\n } else if (performanceStatus >= rangePerformance[3] && performanceStatus < rangePerformance[4]) {\n return performanceColors[3];\n } else {\n return performanceColors[4];\n }\n};\n\n\nconst getAllFilteredData = (byVehicles,ranges = [0,79,80,89,90,110]) =>{\n \n\n const unitsWithRecentData = byVehicles.filter(v => {\n\n console.log('vehicle',v)\n\n const diff = moment().diff(v.systemDate, 'days');\n const hasRecentData = diff <= 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n const hasPerformance = (parseFloat(v.expectedfuelEconomyByVehicles) > 0 &&\n (parseFloat(v.travel) >= parseFloat(v.expectedfuelEconomyByVehicles) && \n parseFloat(v.travel) >= (parseFloat(v.expectedfuelEconomyByVehicles) * parseFloat(v.loadThreshold)) && \n parseFloat(v.consumption) > 1) || v.historicalFuelEconomy > 0)\n \n return hasRecentData && hasNoDowntimeReasonId && hasPerformance;\n });\n\n const unitsWithoutRecentData = byVehicles.filter(v => {\n const diff = moment().diff(v.systemDate, 'days');\n const hasNoRecentData = diff > 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n\n return (hasNoRecentData && hasNoDowntimeReasonId) || isNullOrUndefined(v.gpsDate);\n });\n\n const unitsWithoutPerformance = byVehicles.filter(v => {\n const diff = moment().diff(v.systemDate, 'days');\n const hasRecentData = diff <= 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n const hasNoPerformance = parseFloat(v.expectedfuelEconomyByVehicles) <= 0 || parseFloat(v.travel) < parseFloat(v.expectedfuelEconomyByVehicles) || parseFloat(v.consumption) < 1\n \n return hasRecentData && hasNoDowntimeReasonId && (hasNoPerformance && v.historicalFuelEconomy <= 0);\n });\n\n \n\n const dowtimeUnits = byVehicles.filter((u)=>u.downTimeReasonId)\n\n\n\n\n\n //0,80,90,110,200\n const allFilters = {\n unitsWithDischarges: filterTelemetryData(0.1, 0, unitsWithRecentData, 'unloaded'),\n unitsWithoutDischarges: filterTelemetryData(0, 0, unitsWithRecentData, 'unloaded'),\n poorPerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 0), // Deficiente\n regularPerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 1), // Regular\n goodPerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 2), // Eficiente\n overPerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 3 || v.performanceStatusNew === 4), // Superior y Excesivo\n excessivePerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 4), // Excesivo\n unitsWithRecentData:unitsWithRecentData,\n unitsWithoutRecentData:unitsWithoutRecentData,\n dowtimeUnits: dowtimeUnits,\n unitsWithoutPerformance: unitsWithoutPerformance\n }\n\n return {...allFilters,goodUnitsPercent: (allFilters.goodPerformance.length * 100) / unitsWithRecentData.length}\n}\n\n\n/* \nmin: 0 max:0 condition: property=== \"0.00\"\nmin: 80 max:0 condition: property >= min\nmin: 10 max:50 condition: property <= max && property >= min\n*/\nconst filterTelemetryData = (min = 0, max = 0, vehiclesData, property = 'performanceStatus') => {\nif(min === 0 && max === 0) {\n const filtered = vehiclesData.filter((v) => v[property] === \"0.00\");\n \n return filtered\n}else{\n const filtered = max !== 0 \n ? vehiclesData.filter((v) => v.[property] <= max && v[property] >= min) \n : vehiclesData.filter((v) => v[property] >= min);\n return filtered;\n}\n};\n\nconst dec2bin = (dec) => {\n var binary = '';\n while (dec > 0) {\n binary = (dec % 2) + binary;\n dec = Math.floor(dec / 2);\n }\n while (binary.length < 32) {\n binary = '0' + binary;\n }\n return binary;\n }\n\n\n const reverseBinary = (binary) => {\n var reversedBinary = '';\n for (var i = binary.length - 1; i >= 0; i--) {\n reversedBinary += binary[i];\n }\n return reversedBinary;\n };\n\n\n const dec2binReverse = (dec) => {\n const binary = dec2bin(dec);\n return reverseBinary(binary);\n };\n\n const searchUseMetric = (metricsMask, bitNumber)=>{\n\n return (metricsMask & (2 ** bitNumber)) == 2 ** bitNumber\n\n }\n\nconst Metrics = {\n ACCState: {\n MetricId: 1,\n MetricName: \"ACCState\",\n BitNumber: 0,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 1\n },\n ACCX: {\n MetricId: 2,\n MetricName: \"ACCX\",\n BitNumber: 1,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ACCY: {\n MetricId: 3,\n MetricName: \"ACCY\",\n BitNumber: 2,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ACCZ: {\n MetricId: 4,\n MetricName: \"ACCZ\",\n BitNumber: 3,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AD1: {\n MetricId: 5,\n MetricName: \"AD1\",\n BitNumber: 4,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AD2: {\n MetricId: 6,\n MetricName: \"AD2\",\n BitNumber: 5,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AppVersion: {\n MetricId: 7,\n MetricName: \"AppVersion\",\n BitNumber: 6,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 1,\n OrderNumber: 10\n },\n BackupBattery: {\n MetricId: 8,\n MetricName: \"BackupBattery\",\n BitNumber: 7,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 5\n },\n Battery: {\n MetricId: 9,\n MetricName: \"Battery\",\n BitNumber: 8,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 1,\n OrderNumber: 2\n },\n CellNumber: {\n MetricId: 10,\n MetricName: \"CellNumber\",\n BitNumber: 9,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 15\n },\n CoverTamperState: {\n MetricId: 11,\n MetricName: \"CoverTamperState\",\n BitNumber: 10,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 7\n },\n DoorState: {\n MetricId: 12,\n MetricName: \"DoorState\",\n BitNumber: 11,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 6\n },\n FirmwareVersion: {\n MetricId: 13,\n MetricName: \"FirmwareVersion\",\n BitNumber: 12,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n GSMSignalLevel: {\n MetricId: 14,\n MetricName: \"GSMSignalLevel\",\n BitNumber: 13,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n HardwareVersion: {\n MetricId: 15,\n MetricName: \"HardwareVersion\",\n BitNumber: 14,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ICCID: {\n MetricId: 16,\n MetricName: \"ICCID\",\n BitNumber: 15,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 18\n },\n IsCharging: {\n MetricId: 17,\n MetricName: \"IsCharging\",\n BitNumber: 16,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 3\n },\n MainVoltage: {\n MetricId: 18,\n MetricName: \"MainVoltage\",\n BitNumber: 17,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 4\n },\n MCC: {\n MetricId: 19,\n MetricName: \"MCC\",\n BitNumber: 18,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 13\n },\n MNC: {\n MetricId: 20,\n MetricName: \"MNC\",\n BitNumber: 19,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 14\n },\n OverSpeedState: {\n MetricId: 21,\n MetricName: \"OverSpeedState\",\n BitNumber: 20,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n PadlockAuthorizationType: {\n MetricId: 22,\n MetricName: \"PadlockAuthorizationType\",\n BitNumber: 21,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 8\n },\n PadlockState: {\n MetricId: 23,\n MetricName: \"PadlockState\",\n BitNumber: 22,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 9\n },\n PLMN: {\n MetricId: 24,\n MetricName: \"PLMN\",\n BitNumber: 23,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 12\n },\n Satellites: {\n MetricId: 25,\n MetricName: \"Satellites\",\n BitNumber: 24,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 11\n },\n ShockSensorState: {\n MetricId: 26,\n MetricName: \"ShockSensorState\",\n BitNumber: 25,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n TrailerID: {\n MetricId: 27,\n MetricName: \"TrailerID\",\n BitNumber: 26,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 17\n },\n DriverId: {\n MetricId: 28,\n MetricName: \"DriverId\",\n BitNumber: 27,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 16\n },\n SolarVoltage: {\n MetricId: 30,\n MetricName: \"SolarVoltage\",\n BitNumber: 28,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 20\n },\n \n };\n\n\n const getSummaryDataForDynamicTable = (performanceSummary,intl)=>{\n\n\n if (performanceSummary?.length > 0) {\n const statuses = ['efficient', 'top', 'regular', 'deficient'];\n\n // Initialize an object to store the results\n const result = {};\n\n // Iterate through the data\n performanceSummary?.forEach((row) => {\n const weekNumber = row.weekNumber;\n // Iterate through the statuses\n statuses.forEach((status) => {\n const statusLowerCase = status.toLowerCase();\n // Create or update the status object\n if (!result[statusLowerCase]) {\n result[statusLowerCase] = {};\n }\n // Creamos un nuevo campo con el total del estado en la semana de la iteracion\n result[statusLowerCase][`totalWeek${weekNumber}`] = `${row[statusLowerCase]} - ${(\n (row[statusLowerCase] / row.total) *\n 100\n ).toFixed(0)} %`;\n });\n });\n\n // Convert the result object to an array of objects\n const newConsolidatedInfo = Object.keys(result).map((status) => ({\n status: intl.formatMessage({ id: `common.${status}` }),\n ...result[status]\n }));\n\n\n return newConsolidatedInfo\n } \n\n return []\n\n }\n\n\n\n\n\n function useCombinedFuelHistory(data, samples, fuelEvents, sensors, selectedSensor) {\n const combinedData = useMemo(() => {\n return data?.fuelHistory?.map((result) => {\n const resultFinal = camelcaseKeys(result);\n const match = fuelEvents.find(\n (event) => event.unitPositionLogId === resultFinal.unitPositionLogId\n );\n const isSensorValid =\n sensors?.length === 1 ||\n (match !== undefined && selectedSensor?.sensorId === 0 && sensors?.length > 0);\n \n if (isSensorValid) {\n const sampleMatch = samples?.fuelSamples?.find(\n (sample) =>\n sample.unitPositionLogId === resultFinal.unitPositionLogId &&\n resultFinal.eventId !== 332 &&\n resultFinal.eventId !== 331\n );\n return {\n ...resultFinal,\n ...(match || sampleMatch)\n };\n }\n \n return resultFinal;\n });\n }, [data, samples, fuelEvents, sensors, selectedSensor]);\n \n return combinedData;\n }\n \n \n\nexport { filterTelemetryData,getAllFilteredData,Metrics,dec2binReverse,searchUseMetric,getSummaryDataForDynamicTable,useCombinedFuelHistory };\n","export const ORGANIZATION_CONTRACTS_FETCH_STARTED = 'ORGANIZATION_CONTRACTS_FETCH_STARTED';\nexport const ORGANIZATION_CONTRACTS_FETCH_COMPLETED = 'ORGANIZATION_CONTRACTS_FETCH_COMPLETED';\nexport const ORGANIZATION_CONTRACTS_FETCH_FAILED = 'ORGANIZATION_CONTRACTS_FETCH_FAILED';\n\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED';\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED';\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED';\n\nexport const ORGANIZATION_CONTRACT_ADD_STARTED = 'ORGANIZATION_CONTRACT_ADD_STARTED';\nexport const ORGANIZATION_CONTRACT_ADD_COMPLETED = 'ORGANIZATION_CONTRACT_ADD_COMPLETED';\nexport const ORGANIZATION_CONTRACT_ADD_FAILED = 'ORGANIZATION_CONTRACT_ADD_FAILED';\n\nexport const ORGANIZATION_CONTRACT_EDIT_STARTED = 'ORGANIZATION_CONTRACT_EDIT_STARTED';\nexport const ORGANIZATION_CONTRACT_EDIT_COMPLETED = 'ORGANIZATION_CONTRACT_EDIT_COMPLETED';\nexport const ORGANIZATION_CONTRACT_EDIT_FAILED = 'ORGANIZATION_CONTRACT_EDIT_FAILED';\n\nexport const ORGANIZATION_CONTRACT_REMOVE_STARTED = 'ORGANIZATION_CONTRACT_REMOVE_STARTED';\nexport const ORGANIZATION_CONTRACT_REMOVE_COMPLETED = 'ORGANIZATION_CONTRACT_REMOVE_COMPLETED';\nexport const ORGANIZATION_CONTRACT_REMOVE_FAILED = 'ORGANIZATION_CONTRACT_REMOVE_FAILED';\n\nexport const ORGANIZATION_CONTRACT_SELECTED = 'ORGANIZATION_CONTRACT_SELECTED';\nexport const ORGANIZATION_CONTRACTS_ALL_SELECTED = 'ORGANIZATION_CONTRACTS_ALL_SELECTED';\nexport const ORGANIZATION_CONTRACT_DESELECTED = 'ORGANIZATION_CONTRACT_DESELECTED';\nexport const ORGANIZATION_CONTRACTS_ALL_DESELECTED = 'ORGANIZATION_CONTRACTS_ALL_DESELECTED';\n","export const CONTRACT_TEMPLATES_FETCH_STARTED = 'CONTRACT_TEMPLATES_FETCH_STARTED';\nexport const CONTRACT_TEMPLATES_FETCH_COMPLETED = 'CONTRACT_TEMPLATES_FETCH_COMPLETED';\nexport const CONTRACT_TEMPLATES_FETCH_FAILED = 'CONTRACT_TEMPLATES_FETCH_FAILED';\n\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED = 'CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED';\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED =\n 'CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED';\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED = 'CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED';\n\nexport const CONTRACT_TEMPLATE_ADD_STARTED = 'CONTRACT_TEMPLATE_ADD_STARTED';\nexport const CONTRACT_TEMPLATE_ADD_COMPLETED = 'CONTRACT_TEMPLATE_ADD_COMPLETED';\nexport const CONTRACT_TEMPLATE_ADD_FAILED = 'CONTRACT_TEMPLATE_ADD_FAILED';\n\nexport const CONTRACT_TEMPLATE_EDIT_STARTED = 'CONTRACT_TEMPLATE_EDIT_STARTED';\nexport const CONTRACT_TEMPLATE_EDIT_COMPLETED = 'CONTRACT_TEMPLATE_EDIT_COMPLETED';\nexport const CONTRACT_TEMPLATE_EDIT_FAILED = 'CONTRACT_TEMPLATE_EDIT_FAILED';\n\nexport const CONTRACT_TEMPLATE_REMOVE_STARTED = 'CONTRACT_TEMPLATE_REMOVE_STARTED';\nexport const CONTRACT_TEMPLATE_REMOVE_COMPLETED = 'CONTRACT_TEMPLATE_REMOVE_COMPLETED';\nexport const CONTRACT_TEMPLATE_REMOVE_FAILED = 'CONTRACT_TEMPLATE_REMOVE_FAILED';\n\nexport const CONTRACT_TEMPLATE_SELECTED = 'CONTRACT_TEMPLATE_SELECTED';\nexport const CONTRACT_TEMPLATES_ALL_SELECTED = 'CONTRACT_TEMPLATES_ALL_SELECTED';\nexport const CONTRACT_TEMPLATE_DESELECTED = 'CONTRACT_TEMPLATE_DESELECTED';\nexport const CONTRACT_TEMPLATES_ALL_DESELECTED = 'CONTRACT_TEMPLATES_ALL_DESELECTED';\n","export const OFFICES_FETCH_STARTED = 'OFFICES_FETCH_STARTED';\nexport const OFFICES_FETCH_COMPLETED = 'OFFICES_FETCH_COMPLETED';\nexport const OFFICES_FETCH_FAILED = 'OFFICES_FETCH_FAILED';\n\nexport const OFFICES_PARTIAL_FETCH_STARTED = 'OFFICES_PARTIAL_FETCH_STARTED';\nexport const OFFICES_PARTIAL_FETCH_COMPLETED = 'OFFICES_PARTIAL_FETCH_COMPLETED';\nexport const OFFICES_PARTIAL_FETCH_FAILED = 'OFFICES_PARTIAL_FETCH_FAILED';\n\nexport const OFFICE_ADD_STARTED = 'OFFICE_ADD_STARTED';\nexport const OFFICE_ADD_COMPLETED = 'OFFICE_ADD_COMPLETED';\nexport const OFFICE_ADD_FAILED = 'OFFICE_ADD_FAILED';\n\nexport const OFFICE_EDIT_STARTED = 'OFFICE_EDIT_STARTED';\nexport const OFFICE_EDIT_COMPLETED = 'OFFICE_EDIT_COMPLETED';\nexport const OFFICE_EDIT_FAILED = 'OFFICE_EDIT_FAILED';\n\nexport const OFFICE_REMOVE_STARTED = 'OFFICE_REMOVE_STARTED';\nexport const OFFICE_REMOVE_COMPLETED = 'OFFICE_REMOVE_COMPLETED';\nexport const OFFICE_REMOVE_FAILED = 'OFFICE_REMOVE_FAILED';\n\nexport const OFFICE_SELECTED = 'OFFICE_SELECTED';\nexport const OFFICES_ALL_SELECTED = 'OFFICES_ALL_SELECTED';\nexport const OFFICE_DESELECTED = 'OFFICE_DESELECTED';\nexport const OFFICES_ALL_DESELECTED = 'OFFICES_ALL_DESELECTED';\n","export const DIVISIONS_FETCH_STARTED = \"DIVISIONS_FETCH_STARTED\";\nexport const DIVISIONS_FETCH_COMPLETED = \"DIVISIONS_FETCH_COMPLETED\";\nexport const DIVISIONS_FETCH_FAILED = \"DIVISIONS_FETCH_FAILED\";\n\nexport const DIVISIONS_PARTIAL_FETCH_STARTED =\n \"DIVISIONS_PARTIAL_FETCH_STARTED\";\nexport const DIVISIONS_PARTIAL_FETCH_COMPLETED =\n \"DIVISIONS_PARTIAL_FETCH_COMPLETED\";\nexport const DIVISIONS_PARTIAL_FETCH_FAILED = \"DIVISIONS_PARTIAL_FETCH_FAILED\";\n\nexport const DIVISION_ADD_STARTED = \"DIVISION_ADD_STARTED\";\nexport const DIVISION_ADD_COMPLETED = \"DIVISION_ADD_COMPLETED\";\nexport const DIVISION_ADD_FAILED = \"DIVISION_ADD_FAILED\";\n\nexport const DIVISION_EDIT_STARTED = \"DIVISION_EDIT_STARTED\";\nexport const DIVISION_EDIT_COMPLETED = \"DIVISION_EDIT_COMPLETED\";\nexport const DIVISION_EDIT_FAILED = \"DIVISION_EDIT_FAILED\";\n\nexport const DIVISION_REMOVE_STARTED = \"DIVISION_REMOVE_STARTED\";\nexport const DIVISION_REMOVE_COMPLETED = \"DIVISION_REMOVE_COMPLETED\";\nexport const DIVISION_REMOVE_FAILED = \"DIVISION_REMOVE_FAILED\";\n\nexport const DIVISION_SELECTED = \"DIVISION_SELECTED\";\nexport const DIVISIONS_ALL_SELECTED = \"DIVISIONS_ALL_SELECTED\";\nexport const DIVISION_DESELECTED = \"DIVISION_DESELECTED\";\nexport const DIVISIONS_ALL_DESELECTED = \"DIVISIONS_ALL_DESELECTED\";\n","export const SUBDIVISIONS_FETCH_STARTED = \"SUBDIVISIONS_FETCH_STARTED\";\nexport const SUBDIVISIONS_FETCH_COMPLETED = \"SUBDIVISIONS_FETCH_COMPLETED\";\nexport const SUBDIVISIONS_FETCH_FAILED = \"SUBDIVISIONS_FETCH_FAILED\";\n\nexport const SUBDIVISIONS_PARTIAL_FETCH_STARTED =\n \"SUBDIVISIONS_PARTIAL_FETCH_STARTED\";\nexport const SUBDIVISIONS_PARTIAL_FETCH_COMPLETED =\n \"SUBDIVISIONS_PARTIAL_FETCH_COMPLETED\";\nexport const SUBDIVISIONS_PARTIAL_FETCH_FAILED =\n \"SUBDIVISIONS_PARTIAL_FETCH_FAILED\";\n\nexport const SUBDIVISION_ADD_STARTED = \"SUBDIVISION_ADD_STARTED\";\nexport const SUBDIVISION_ADD_COMPLETED = \"SUBDIVISION_ADD_COMPLETED\";\nexport const SUBDIVISION_ADD_FAILED = \"SUBDIVISION_ADD_FAILED\";\n\nexport const SUBDIVISION_EDIT_STARTED = \"SUBDIVISION_EDIT_STARTED\";\nexport const SUBDIVISION_EDIT_COMPLETED = \"SUBDIVISION_EDIT_COMPLETED\";\nexport const SUBDIVISION_EDIT_FAILED = \"SUBDIVISION_EDIT_FAILED\";\n\nexport const SUBDIVISION_REMOVE_STARTED = \"SUBDIVISION_REMOVE_STARTED\";\nexport const SUBDIVISION_REMOVE_COMPLETED = \"SUBDIVISION_REMOVE_COMPLETED\";\nexport const SUBDIVISION_REMOVE_FAILED = \"SUBDIVISION_REMOVE_FAILED\";\n\nexport const SUBDIVISION_SELECTED = \"SUBDIVISION_SELECTED\";\nexport const SUBDIVISIONS_ALL_SELECTED = \"SUBDIVISIONS_ALL_SELECTED\";\nexport const SUBDIVISION_DESELECTED = \"SUBDIVISION_DESELECTED\";\nexport const SUBDIVISIONS_ALL_DESELECTED = \"SUBDIVISIONS_ALL_DESELECTED\";\n","export const WORKPLANS_EXECUTIONS_FETCH_STARTED = 'WORKPLANS_EXECUTIONS_FETCH_STARTED';\nexport const WORKPLANS_EXECUTIONS_FETCH_COMPLETED = 'WORKPLANS_EXECUTIONS_FETCH_COMPLETED';\nexport const WORKPLANS_EXECUTIONS_FETCH_FAILED = 'WORKPLANS_EXECUTIONS_FETCH_FAILED';\n\nexport const WORKPLAN_EXECUTION_FETCH_STARTED = 'WORKPLAN_EXECUTION_FETCH_STARTED';\nexport const WORKPLAN_EXECUTION_FETCH_COMPLETED = 'WORKPLAN_EXECUTION_FETCH_COMPLETED';\nexport const WORKPLAN_EXECUTION_FETCH_FAILED = 'WORKPLAN_EXECUTION_FETCH_FAILED';\n\nexport const WORKPLANS_EXECUTION_CANCEL_STARTED = 'WORKPLANS_EXECUTION_CANCEL_STARTED';\nexport const WORKPLANS_EXECUTION_CANCEL_COMPLETED = 'WORKPLANS_EXECUTION_CANCEL_COMPLETED';\nexport const WORKPLANS_EXECUTION_CANCEL_FAILED = 'WORKPLANS_EXECUTION_CANCEL_FAILED';\n\nexport const WORKPLANS_EXECUTION_FINALIZE_STARTED = 'WORKPLANS_EXECUTION_FINALIZE_STARTED';\nexport const WORKPLANS_EXECUTION_FINALIZE_COMPLETED = 'WORKPLANS_EXECUTION_FINALIZE_COMPLETED';\nexport const WORKPLANS_EXECUTION_FINALIZE_FAILED = 'WORKPLANS_EXECUTION_FINALIZE_FAILED';\n\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED';\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED = 'WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED';\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED =\n 'WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED = 'WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED = 'WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED';\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED =\n 'WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED = 'WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED';\n\nexport enum COLORS {\n Visited = '#1e90ff',\n Confirmed = '#2ed573',\n NotVisited = '#ff4757',\n Pending = '#ACACAC',\n ArrivalOnTime = '#2ed573',\n ArrivalEarly = '#1e90ff',\n ArrivalLate = '#FFA502',\n PermanenceNormal = '#2ed573',\n PermanenceShort = '#1e90ff',\n PermanenceLong = '#FFA502'\n}\n","export const CONTACTS_FETCH_STARTED = 'CONTACTS_FETCH_STARTED';\nexport const CONTACTS_FETCH_COMPLETED = 'CONTACTS_FETCH_COMPLETED';\nexport const CONTACTS_FETCH_FAILED = 'CONTACTS_FETCH_FAILED';\n\nexport const CONTACTS_PARTIAL_FETCH_STARTED = 'CONTACTS_PARTIAL_FETCH_STARTED';\nexport const CONTACTS_PARTIAL_FETCH_COMPLETED = 'CONTACTS_PARTIAL_FETCH_COMPLETED';\nexport const CONTACTS_PARTIAL_FETCH_FAILED = 'CONTACTS_PARTIAL_FETCH_FAILED';\n\nexport const CONTACT_ADD_STARTED = 'CONTACT_ADD_STARTED';\nexport const CONTACT_ADD_COMPLETED = 'CONTACT_ADD_COMPLETED';\nexport const CONTACT_ADD_FAILED = 'CONTACT_ADD_FAILED';\n\nexport const CONTACT_EDIT_STARTED = 'CONTACT_EDIT_STARTED';\nexport const CONTACT_EDIT_COMPLETED = 'CONTACT_EDIT_COMPLETED';\nexport const CONTACT_EDIT_FAILED = 'CONTACT_EDIT_FAILED';\n\nexport const CONTACT_REMOVE_STARTED = 'CONTACT_REMOVE_STARTED';\nexport const CONTACT_REMOVE_COMPLETED = 'CONTACT_REMOVE_COMPLETED';\nexport const CONTACT_REMOVE_FAILED = 'CONTACT_REMOVE_FAILED';\n\nexport const CONTACT_FETCH_STARTED = 'CONTACT_FETCH_STARTED';\nexport const CONTACT_FETCH_COMPLETED = 'CONTACT_FETCH_COMPLETED';\nexport const CONTACT_FETCH_FAILED = 'CONTACT_FETCH_FAILED';\n\nexport const CONTACT_SELECTED = 'CONTACT_SELECTED';\nexport const CONTACTS_ALL_SELECTED = 'CONTACTS_ALL_SELECTED';\nexport const CONTACT_DESELECTED = 'CONTACT_DESELECTED';\nexport const CONTACTS_ALL_DESELECTED = 'CONTACTS_ALL_DESELECTED';\n","export const PROTOCOLS_FETCH_STARTED = 'PROTOCOLS_FETCH_STARTED';\nexport const PROTOCOLS_FETCH_COMPLETED = 'PROTOCOLS_FETCH_COMPLETED';\nexport const PROTOCOLS_FETCH_FAILED = 'PROTOCOLS_FETCH_FAILED';\n\nexport const PROTOCOLS_PARTIAL_FETCH_STARTED = 'PROTOCOLS_PARTIAL_FETCH_STARTED';\nexport const PROTOCOLS_PARTIAL_FETCH_COMPLETED = 'PROTOCOLS_PARTIAL_FETCH_COMPLETED';\nexport const PROTOCOLS_PARTIAL_FETCH_FAILED = 'PROTOCOLS_PARTIAL_FETCH_FAILED';\n\nexport const PROTOCOLS_ADD_STARTED = 'PROTOCOLS_ADD_STARTED';\nexport const PROTOCOLS_ADD_COMPLETED = 'PROTOCOLS_ADD_COMPLETED';\nexport const PROTOCOLS_ADD_FAILED = 'PROTOCOLS_ADD_FAILED';\n\nexport const PROTOCOLS_EDIT_STARTED = 'PROTOCOLS_EDIT_STARTED';\nexport const PROTOCOLS_EDIT_COMPLETED = 'PROTOCOLS_EDIT_COMPLETED';\nexport const PROTOCOLS_EDIT_FAILED = 'PROTOCOLS_EDIT_FAILED';\n\nexport const PROTOCOLS_REMOVE_STARTED = 'PROTOCOLS_REMOVE_STARTED';\nexport const PROTOCOLS_REMOVE_COMPLETED = 'PROTOCOLS_REMOVE_COMPLETED';\nexport const PROTOCOLS_REMOVE_FAILED = 'PROTOCOLS_REMOVE_FAILED';\n\nexport const PROTOCOLS_SELECTED = 'PROTOCOLS_SELECTED';\nexport const PROTOCOLS_ALL_SELECTED = 'PROTOCOLS_ALL_SELECTED';\nexport const PROTOCOLS_DESELECTED = 'PROTOCOLS_DESELECTED';\nexport const PROTOCOLS_ALL_DESELECTED = 'PROTOCOLS_ALL_DESELECTED';\n\nexport interface Protocol {\n isSelected: boolean;\n protocolId: number;\n protocolName: string;\n protocolDescription: string;\n protocolEvents: string;\n protocolPriority: number;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n isConfirmed: boolean;\n}\n","export const NOTICES_BY_ODOMETER_FETCH_STARTED = 'NOTICES_BY_ODOMETER_FETCH_STARTED';\nexport const NOTICES_BY_ODOMETER_FETCH_COMPLETED = 'NOTICES_BY_ODOMETER_FETCH_COMPLETED';\nexport const NOTICES_BY_ODOMETER_FETCH_FAILED = 'NOTICES_BY_ODOMETER_FETCH_FAILED';\n\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED =\n 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED =\n 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED = 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_ODOMETER_ADD_STARTED = 'NOTICE_BY_ODOMETER_ADD_STARTED';\nexport const NOTICE_BY_ODOMETER_ADD_COMPLETED = 'NOTICE_BY_ODOMETER_ADD_COMPLETED';\nexport const NOTICE_BY_ODOMETER_ADD_FAILED = 'NOTICE_BY_ODOMETER_ADD_FAILED';\n\nexport const NOTICE_BY_ODOMETER_EDIT_STARTED = 'NOTICE_BY_ODOMETER_EDIT_STARTED';\nexport const NOTICE_BY_ODOMETER_EDIT_COMPLETED = 'NOTICE_BY_ODOMETER_EDIT_COMPLETED';\nexport const NOTICE_BY_ODOMETER_EDIT_FAILED = 'NOTICE_BY_ODOMETER_EDIT_FAILED';\n\nexport const NOTICE_BY_ODOMETER_RENEW_STARTED = 'NOTICE_BY_ODOMETER_RENEW_STARTED';\nexport const NOTICE_BY_ODOMETER_RENEW_COMPLETED = 'NOTICE_BY_ODOMETER_RENEW_COMPLETED';\nexport const NOTICE_BY_ODOMETER_RENEW_FAILED = 'NOTICE_BY_ODOMETER_RENEW_FAILED';\n\nexport const NOTICE_BY_ODOMETER_REMOVE_STARTED = 'NOTICE_BY_ODOMETER_REMOVE_STARTED';\nexport const NOTICE_BY_ODOMETER_REMOVE_COMPLETED = 'NOTICE_BY_ODOMETER_REMOVE_COMPLETED';\nexport const NOTICE_BY_ODOMETER_REMOVE_FAILED = 'NOTICE_BY_ODOMETER_REMOVE_FAILED';\n","export * from './time-zones';\nexport * from './currencies';\nexport * from './countries';\nexport * from './vehicle-makers';\nexport * from './vehicle-models';\nexport * from './insurance-companies';\nexport * from './insurance-agents';\nexport * from './sensor-brands';\nexport * from './sensor-models';\nexport * from './sensor-measures';\nexport * from './payment-methods';\nexport * from './location-classes';\n","export const NOTICES_BY_DATE_FETCH_STARTED = 'NOTICES_BY_DATE_FETCH_STARTED';\nexport const NOTICES_BY_DATE_FETCH_COMPLETED = 'NOTICES_BY_DATE_FETCH_COMPLETED';\nexport const NOTICES_BY_DATE_FETCH_FAILED = 'NOTICES_BY_DATE_FETCH_FAILED';\n\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_STARTED = 'NOTICES_BY_DATE_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED = 'NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_FAILED = 'NOTICES_BY_DATE_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_DATE_ADD_STARTED = 'NOTICE_BY_DATE_ADD_STARTED';\nexport const NOTICE_BY_DATE_ADD_COMPLETED = 'NOTICE_BY_DATE_ADD_COMPLETED';\nexport const NOTICE_BY_DATE_ADD_FAILED = 'NOTICE_BY_DATE_ADD_FAILED';\n\nexport const NOTICE_BY_DATE_EDIT_STARTED = 'NOTICE_BY_DATE_EDIT_STARTED';\nexport const NOTICE_BY_DATE_EDIT_COMPLETED = 'NOTICE_BY_DATE_EDIT_COMPLETED';\nexport const NOTICE_BY_DATE_EDIT_FAILED = 'NOTICE_BY_DATE_EDIT_FAILED';\n\nexport const NOTICE_BY_DATE_RENEW_STARTED = 'NOTICE_BY_DATE_RENEW_STARTED';\nexport const NOTICE_BY_DATE_RENEW_COMPLETED = 'NOTICE_BY_DATE_RENEW_COMPLETED';\nexport const NOTICE_BY_DATE_RENEW_FAILED = 'NOTICE_BY_DATE_RENEW_FAILED';\n\nexport const NOTICE_BY_DATE_REMOVE_STARTED = 'NOTICE_BY_DATE_REMOVE_STARTED';\nexport const NOTICE_BY_DATE_REMOVE_COMPLETED = 'NOTICE_BY_DATE_REMOVE_COMPLETED';\nexport const NOTICE_BY_DATE_REMOVE_FAILED = 'NOTICE_BY_DATE_REMOVE_FAILED';\n","export const NOTICES_BY_HOURMETER_FETCH_STARTED = 'NOTICES_BY_HOURMETER_FETCH_STARTED';\nexport const NOTICES_BY_HOURMETER_FETCH_COMPLETED = 'NOTICES_BY_HOURMETER_FETCH_COMPLETED';\nexport const NOTICES_BY_HOURMETER_FETCH_FAILED = 'NOTICES_BY_HOURMETER_FETCH_FAILED';\n\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_HOURMETER_ADD_STARTED = 'NOTICE_BY_HOURMETER_ADD_STARTED';\nexport const NOTICE_BY_HOURMETER_ADD_COMPLETED = 'NOTICE_BY_HOURMETER_ADD_COMPLETED';\nexport const NOTICE_BY_HOURMETER_ADD_FAILED = 'NOTICE_BY_HOURMETER_ADD_FAILED';\n\nexport const NOTICE_BY_HOURMETER_EDIT_STARTED = 'NOTICE_BY_HOURMETER_EDIT_STARTED';\nexport const NOTICE_BY_HOURMETER_EDIT_COMPLETED = 'NOTICE_BY_HOURMETER_EDIT_COMPLETED';\nexport const NOTICE_BY_HOURMETER_EDIT_FAILED = 'NOTICE_BY_HOURMETER_EDIT_FAILED';\n\nexport const NOTICE_BY_HOURMETER_RENEW_STARTED = 'NOTICE_BY_HOURMETER_RENEW_STARTED';\nexport const NOTICE_BY_HOURMETER_RENEW_COMPLETED = 'NOTICE_BY_HOURMETER_RENEW_COMPLETED';\nexport const NOTICE_BY_HOURMETER_RENEW_FAILED = 'NOTICE_BY_HOURMETER_RENEW_FAILED';\n\nexport const NOTICE_BY_HOURMETER_REMOVE_STARTED = 'NOTICE_BY_HOURMETER_REMOVE_STARTED';\nexport const NOTICE_BY_HOURMETER_REMOVE_COMPLETED = 'NOTICE_BY_HOURMETER_REMOVE_COMPLETED';\nexport const NOTICE_BY_HOURMETER_REMOVE_FAILED = 'NOTICE_BY_HOURMETER_REMOVE_FAILED';\n","export interface Redirect {\n push: (path: string) => void;\n path?: string;\n}\n\nexport interface WithRedirectMeta {\n redirectMeta: Redirect;\n}\n\nexport interface WithCallback {\n action: Function;\n}\n\nexport interface TableRow {\n rowId: string;\n name: string;\n}\nexport interface Question {\n questionId: string;\n name: string;\n type: number;\n isRequired: boolean;\n isPrivate: boolean;\n isCollapsed: boolean;\n answers?: any[];\n}\nexport interface Section {\n sectionId: string;\n name: string;\n questions: Question[];\n rows: TableRow[];\n type: number;\n useDropDownRows: boolean;\n isCollapsed: boolean;\n}\n\nexport interface Form {\n formId?: number;\n name?: string;\n description?: string;\n sections: Section[];\n}\n\nexport interface MovableTypes {\n sourceId: String;\n sourceIndex: number;\n destinationId: String;\n destinationIndex: number;\n type: String;\n draggableId: String;\n source: any;\n destination: any;\n}\n\n/**\n * @description\n * This interface is used to define the properties of the columns of the table\n * Used types in order to dynamically type depending on the values\n * @example\n * if the header text is defined, the static text should not be defined\n */\nexport type TableColumn =\n | ({\n fieldName?: string;\n type?: 'dateTime' | 'number' | 'string' | 'boolean' | undefined;\n editType?: 'numericedit' | 'booleanedit' | 'datetimeedit' | 'stringedit' | undefined;\n headerTemplate?: string;\n allowEditing?: boolean;\n formatColumn?: string | undefined;\n metric?: string;\n customKey?: string;\n textAlign?: string;\n hide?: boolean;\n template?: (d: any) => JSX.Element | string;\n columns?: TableColumn[];\n edit?: any;\n editTemplate?: (params: any) => JSX.Element;\n maxWidth?: number;\n } & ( // header text or static text\n | {\n headerText?: string;\n }\n | {\n staticText?: string;\n }\n ) & // if tooltip is false must define a tooltip column\n (\n | {\n hasTooltip?: false;\n tooltipColumn?: never;\n }\n | {\n hasTooltip: true;\n tooltipColumn: string;\n }\n ))\n | undefined;\n\n// number: VALUE\nexport interface NDict {\n [key: number]: T;\n}\n\n// string: VALUE\nexport interface SDict {\n [key: string]: T;\n}\n\nexport type Dict = NDict | SDict;\n\nexport type NDictionary = { [key: number]: T };\nexport type SDictionary = { [key: string]: T };\nexport type Dictionary = NDictionary | SDictionary;\n\nexport interface AuthUser {\n username: string;\n permissions: string;\n authUserId: string;\n accessLevelId: string;\n rotateUnitMarkers: string;\n completeName: string;\n subdivisionId: string;\n subdivisionName: string;\n divisionId: string;\n divisionName: string;\n organizationId: string;\n organizationName: string;\n agentId: string;\n agentName: string;\n operatorId: string;\n operatorName: string;\n email: string;\n homeLatitude: string;\n homeLayer: string;\n homeLongitude: string;\n homeZoom: string;\n homeScreenId: string;\n currencyId: string;\n loadUnitsOnMap: string;\n loadGeofencesOnMap: string;\n activateUnitTrackMode: string;\n unitMapLabelAlwaysOn: string;\n locationMapLabelAlwaysOn: string;\n enableLocationClustering: string;\n useBingMaps: string;\n useHereMaps: string;\n useGoogleMaps: string;\n useMapquestMaps: string;\n metricSystemId: string;\n distanceSystem: string;\n capacitySystem: string;\n temperatureSystem: string;\n distance2System: string;\n speedSystem: string;\n fuelSystem: string;\n fuel2System: string;\n volumeSystem: string;\n utcZoneId: string;\n zoneName: string;\n utcOffset: string;\n bingMapsApiKey: string;\n googleMapsApiKey: string;\n hereMapsAppCode: string;\n hereMapsAppId: string;\n mapquestConsumerKey: string;\n imagesUrl: string;\n consoleDefaultSoundId: string;\n exp: number;\n}\n\nexport type Char =\n | 'a'\n | 'b'\n | 'c'\n | 'd'\n | 'e'\n | 'f'\n | 'g'\n | 'h'\n | 'i'\n | 'j'\n | 'k'\n | 'l'\n | 'm'\n | 'n'\n | 'o'\n | 'p'\n | 'q'\n | 'r'\n | 's'\n | 't'\n | 'u'\n | 'v'\n | 'w'\n | 'x'\n | 'y'\n | 'z';\n\nexport enum OperatingSystem {\n Windows = 'Windows',\n MacOS = 'Mac OS',\n Linux = 'Linux',\n IOS = 'iOS',\n Android = 'Android',\n Unknown = 'Unknown OS'\n}\n\nexport enum Browser {\n Chrome = 'Chrome',\n Firefox = 'Firefox',\n Safari = 'Safari',\n Unknown = 'Unknown Browser'\n}\n\nexport enum DeviceType {\n Mobile = 'Mobile',\n Desktop = 'Desktop'\n}\n\nexport interface DeviceInfo {\n os: OperatingSystem;\n browser: Browser;\n deviceType: DeviceType;\n}\n\nexport interface KeyboardModifiers {\n ctrl: boolean;\n alt: boolean;\n shift: boolean;\n parsedKey: string | undefined;\n}\n\nexport const optionKeySpecialCharacters: Record = {\n å: 'a',\n '∫': 'b',\n ç: 'c',\n '∂': 'd',\n '´': 'e',\n ƒ: 'f',\n '©': 'g',\n '˙': 'h',\n ˆ: 'i',\n '∆': 'j',\n '˚': 'k',\n '¬': 'l',\n µ: 'm',\n '˜': 'n',\n ø: 'o',\n π: 'p',\n œ: 'q',\n '®': 'r',\n ß: 's',\n '†': 't',\n '¨': 'u',\n '√': 'v',\n '∑': 'w',\n '≈': 'x',\n '¥': 'y',\n '¸': 'z'\n};\n\nexport const optionShiftSpecialCombinations: Record = {\n Å: 'a',\n ı: 'b',\n Ç: 'c',\n Î: 'd',\n '´': 'e',\n Ï: 'f',\n '˝': 'g',\n Ó: 'h',\n ˆ: 'i',\n Ô: 'j',\n '': 'k',\n Ò: 'l',\n Â: 'm',\n '˜': 'n',\n Ø: 'o',\n '\"': 'p',\n Œ: 'q',\n '‰': 'r',\n Í: 's',\n ˇ: 't',\n '¨': 'u',\n '◊': 'v',\n '„': 'w',\n '˛': 'x',\n Á: 'y',\n '¸': 'z'\n};\n\nexport enum PacketType {\n FuelCalibration = 1,\n FuelCalibrationCommand = 2\n}\n\nexport enum FuelCalibrationCommand {\n SetMinValue = 1,\n SetMaxValue = 2\n}\n\nexport interface DeviceProgrammerDTO {\n PacketType: PacketType;\n DeviceIdentifier: string;\n PacketData: T;\n}\n\nexport interface FuelCalibrationValuesPacket {\n Voltage: number;\n IsStable: boolean;\n}\n\nexport interface FuelCalibrationCommandPacket {\n Command: FuelCalibrationCommand;\n Message?: string;\n}\n\nexport interface FuelCalibrationCommandResultPacket {\n Command: FuelCalibrationCommand;\n Result?: 0 | 1 | -1; // 1: Success, 0: Error, -1: Busy\n}\n","import { env } from 'env';\r\nimport exceldate from 'exceldate';\r\nimport { htmlToText } from 'html-to-text';\r\nimport _, { camelCase, isArray, isDate, isObject, transform } from 'lodash';\r\nimport { DateTime } from 'luxon';\r\nimport moment, { Moment } from 'moment';\r\nimport { IntlShape } from 'react-intl';\r\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\r\nimport {\r\n Browser,\r\n DeviceInfo,\r\n DeviceType,\r\n KeyboardModifiers,\r\n OperatingSystem,\r\n optionKeySpecialCharacters,\r\n optionShiftSpecialCombinations\r\n} from './types';\r\n\r\nexport const imageFormatsForReports = ['png', 'jpg', 'jpeg'];\r\n\r\n// Parse HTML to text to use en tooltips\r\nexport const formatHtmlToText = (htmlStr) => {\r\n return htmlStr ? htmlToText(htmlStr, { wordwrap: 130 }) : 'N/A';\r\n};\r\n\r\n// ** Checks if an object is empty (returns boolean)\r\nexport const isObjEmpty = (obj) => Object.keys(obj).length === 0;\r\n\r\n// ** Date minus TimezoneOffset\r\nexport const getDateWithoutTimezoneOffset = (date) =>\r\n date\r\n ? typeof date.getTime === 'function'\r\n ? new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().slice(0, -1)\r\n : date\r\n : null;\r\n\r\n// etiqueta con formato HH : MM para indicadores\r\nexport const generateHourMinuteLabel = (seconds: number, round: boolean = false) => {\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (round === true) {\r\n seconds += 60;\r\n }\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n return `${hours > 9 ? hours : '0' + hours} Hrs : ${minutes > 9 ? minutes : '0' + minutes} Mins`;\r\n};\r\n\r\n// etiqueta con formato D : HH : MM : SS para indicadores\r\nexport const generateDayHourMinuteSecondLabel = (seconds, round = false) => {\r\n let days = 0;\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (round === true) {\r\n seconds += 60;\r\n }\r\n\r\n if (seconds >= 86400) {\r\n days = Math.floor(seconds / 86400);\r\n seconds -= days * 86400;\r\n }\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n seconds = Math.floor(seconds);\r\n\r\n return `${days > 0 ? days + 'D ' : ''}${hours > 9 ? hours : '0' + hours} Hrs : ${\r\n minutes > 9 ? minutes : '0' + minutes\r\n } Mins : ${seconds > 9 ? seconds : '0' + seconds} S`;\r\n};\r\n\r\n// etiqueta con formato HH:MM:SS\r\nexport const generateHourMinuteSecondStr = (seconds) => {\r\n seconds = parseInt(seconds.toFixed(0));\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n return `${hours > 9 ? hours : '0' + hours}:${minutes > 9 ? minutes : '0' + minutes}:${\r\n seconds > 9 ? seconds : '0' + seconds\r\n }`;\r\n};\r\n\r\n// ** Returns K format from a number\r\nexport const kFormatter = (num) => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num);\r\n\r\n// ** Converts HTML to string\r\nexport const htmlToString = (html) => html.replace(/<\\/?[^>]+(>|$)/g, '');\r\n\r\n// función que retorna DateTime.now() con offset de usuario\r\nexport const todayWithUtcOffset = (utcOffset?: number) =>\r\n utcOffset ? DateTime.utc().plus({ minutes: +utcOffset }) : DateTime.now();\r\n\r\n// función que retorna la cantidad de horas transcurridas en un rango de fechas\r\n// si el rango incluye el día de hoy entonces las horas transcurridas son hasta DateTime.now()\r\n// -- si endDate es > a DateTime.now() siempre se usará DateTime.now() como fecha fin\r\n\r\nexport const elapsedHoursInDateRange = (\r\n startDate: string | Date | DateTime,\r\n endDate: string | Date | DateTime,\r\n utcOffset?: number\r\n) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dtStart: DateTime =\r\n typeof startDate === 'string'\r\n ? DateTime.fromISO(startDate)\r\n : startDate instanceof DateTime\r\n ? startDate\r\n : DateTime.fromJSDate(startDate);\r\n\r\n const dtEnd: DateTime =\r\n typeof endDate === 'string'\r\n ? DateTime.fromISO(endDate)\r\n : endDate instanceof DateTime\r\n ? endDate\r\n : DateTime.fromJSDate(endDate);\r\n\r\n return dtStart.diff(DateTime.min(today, dtEnd), 'hours').toObject().hours;\r\n};\r\n\r\n// función que retorna la cantidad de horas transcurridas en un día\r\n// si ese día es hoy entonces las horas transcurridas son hasta DateTime.now()\r\nexport const elapsedHoursInDate = (date: string | Date | DateTime, utcOffset?: number) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dt: DateTime =\r\n typeof date === 'string'\r\n ? DateTime.fromISO(date)\r\n : date instanceof DateTime\r\n ? date\r\n : DateTime.fromJSDate(date);\r\n\r\n return isToday(dt, utcOffset) ? today.diff(dt, 'hours').toObject().hours : 24.0;\r\n};\r\n\r\n// ** Checks if the passed date is today\r\nexport const isToday = (date: string | Date | DateTime, utcOffset?: number) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dt: DateTime =\r\n typeof date === 'string'\r\n ? DateTime.fromISO(date)\r\n : date instanceof DateTime\r\n ? date\r\n : DateTime.fromJSDate(date);\r\n\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n dt.get('day') === today.get('day') &&\r\n dt.get('month') === today.get('month') &&\r\n dt.get('year') === today.get('year')\r\n /* eslint-enable */\r\n );\r\n};\r\n\r\n/**\r\n ** Format and return date in Humanize format\r\n ** Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n ** Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (\r\n value,\r\n formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric', year: 'numeric' }\r\n) => {\r\n if (!value) return value;\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value));\r\n};\r\n\r\n// ** Returns short month of passed date\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value);\r\n let formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric' };\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' };\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value));\r\n};\r\n\r\n/**\r\n ** Return if user is logged in\r\n ** This is completely up to you and how you want to store the token in your frontend application\r\n * ? e.g. If you are using cookies to store the application please update this function\r\n */\r\nexport const isUserLoggedIn = () => {\r\n let token = localStorage.getItem('auth');\r\n let userData = getUserData();\r\n return token && userData && userData.exp > Date.now() / 1000;\r\n};\r\nexport const getUserData = () => JSON.parse(localStorage?.getItem('userData') || '{}');\r\n/**\r\n ** This function is used for demo purpose route navigation\r\n ** In real app you won't need this function because your app will navigate to same route for each users regardless of ability\r\n ** Please note role field is just for showing purpose it's not used by anything in frontend\r\n ** We are checking role just for ease\r\n * ? NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.\r\n * @param {String} userRole Role of user\r\n */\r\nexport const getHomeRouteForLoggedInUser = (userRole) => {\r\n if (userRole === 'admin') return '/';\r\n if (userRole === 'client') return '/access-control';\r\n return '/login';\r\n};\r\n\r\n// ** React Select Theme Colors\r\nexport const selectThemeColors = (theme) => ({\r\n ...theme,\r\n colors: {\r\n ...theme.colors,\r\n primary25: '#7367f01a', // for option hover bg-color\r\n primary: '#7367f0', // for selected option bg-color\r\n neutral10: '#7367f0', // for tags bg-color\r\n neutral20: '#ededed', // for input border-color\r\n neutral30: '#ededed' // for input hover border-color\r\n }\r\n});\r\n\r\n// Checks if given strings is a valid email\r\n// return bool\r\nexport const isValidEmail = (email) => {\r\n const emailRe =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return emailRe.test(String(email).toLowerCase());\r\n};\r\n\r\n// Checks if given strings is a valid email\r\n// returns bool\r\nexport const isNumber = (stringToCheck) => {\r\n const numberRe = /^\\d+$/;\r\n return numberRe.test(stringToCheck);\r\n};\r\n\r\nexport function numberWithCommas(x) {\r\n if (!x) return '0';\r\n //Trunco el número a 2 decimales\r\n x = trunc(x, 2);\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nexport function formatAmount(n: number | string) {\r\n if (!isValidNumber(n).test) return Number('0').toFixed(2);\r\n\r\n return Number(n)\r\n .toFixed(2)\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nfunction trunc(x, posiciones = 0) {\r\n if (!x.toString().includes('.')) {\r\n return x.toString();\r\n }\r\n var decimalLength = x.toString().indexOf('.') + 1;\r\n var numStr = x.toString().substr(0, decimalLength + posiciones);\r\n return numStr;\r\n}\r\n\r\nexport const isBitSet = (b, pos) => (b & (1 << pos)) !== 0;\r\n\r\nexport const convertTime = (time) => ({\r\n ...time,\r\n startTime: DateTime.local(\r\n 2000,\r\n 1,\r\n 2,\r\n ...time.startTime.split(':').map((time) => +time)\r\n ).toString(),\r\n endTime: DateTime.local(2000, 1, 2, ...time.endTime.split(':').map((time) => +time)).toString()\r\n});\r\n\r\nexport const isIterable = (obj) => obj != null && typeof obj[Symbol.iterator] === 'function';\r\n\r\nexport const imagesLink = 'https://pictures.webtrack.online/partner/desarrollo/FormsFiles/';\r\n\r\n/**\r\n * Get days between date and today\r\n * @param date\r\n * @returns Days between date and today\r\n */\r\nexport const getDaysBetweenDateAndToday = (date) => {\r\n const intl: IntlShape = appIntl();\r\n const startDate = new Date(date);\r\n const endDate = new Date();\r\n var seconds = Math.abs(endDate?.getTime() - startDate?.getTime()) / 1000;\r\n\r\n if (seconds <= 60) {\r\n return intl.formatMessage({ id: 'units.aFewSecondsAgo' });\r\n }\r\n\r\n var startYear = startDate?.getFullYear();\r\n var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\r\n var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n var yearDiff = endDate?.getFullYear() - startYear;\r\n var monthDiff = endDate?.getMonth() - startDate?.getMonth();\r\n if (monthDiff < 0) {\r\n yearDiff--;\r\n monthDiff += 12;\r\n }\r\n var dayDiff = endDate?.getDate() - startDate?.getDate();\r\n if (dayDiff < 0) {\r\n if (monthDiff > 0) {\r\n monthDiff--;\r\n } else {\r\n yearDiff--;\r\n monthDiff = 11;\r\n }\r\n dayDiff += daysInMonth[startDate?.getMonth()];\r\n }\r\n\r\n var weekDiff = dayDiff >= 7 ? Math.floor(dayDiff / 7) : 0;\r\n dayDiff -= 7 * weekDiff;\r\n\r\n var hourDiff = 0;\r\n var minuteDiff = 0;\r\n\r\n if (seconds >= 60 && seconds < 3600) {\r\n minuteDiff = Math.round(seconds / 60);\r\n } else if (seconds >= 3600 && seconds < 86400) {\r\n hourDiff = Math.round(seconds / 3600);\r\n dayDiff = 0;\r\n }\r\n\r\n return yearDiff > 0\r\n ? yearDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.yearsAgo' }, { value: yearDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aYearAgo' })}`\r\n : monthDiff > 0\r\n ? monthDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.monthsAgo' }, { value: monthDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aMonthAgo' })}`\r\n : weekDiff > 0\r\n ? weekDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.weeksAgo' }, { value: weekDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aWeekAgo' })}`\r\n : dayDiff > 0\r\n ? dayDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.daysAgo' }, { value: dayDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aDayAgo' })}`\r\n : hourDiff > 0\r\n ? hourDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.hoursAgo' }, { value: hourDiff })}`\r\n : `${intl.formatMessage({ id: 'units.anHourAgo' })}`\r\n : minuteDiff > 0\r\n ? minuteDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.minutesAgo' }, { value: minuteDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aMinuteAgo' })}`\r\n : '';\r\n};\r\n\r\n//Genera el listado de fechas en un rango de fechas establecido en el DateInput\r\nexport const getDateColumnsInDateRange = (intl, dateRange: string[], stacked: boolean = false) => {\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n let dateArray: any = [];\r\n\r\n while (startDate <= endDate) {\r\n dateArray.push(new Date(startDate));\r\n startDate.setDate(startDate.getDate() + 1);\r\n }\r\n return dateArray.map((date) => {\r\n const dateTitle =\r\n date.getFullYear() +\r\n '-' +\r\n (date.getMonth() + 1 < 10 ? '0' : '') +\r\n (date.getMonth() + 1) +\r\n '-' +\r\n (date.getDate() < 10 ? '0' : '') +\r\n date.getDate();\r\n\r\n return {\r\n fieldName: stacked ? undefined : dateTitle,\r\n customKey: stacked ? dateTitle : undefined,\r\n staticText:\r\n date.getDay() === 0\r\n ? `${intl.formatMessage({ id: 'common.sun' })} ${date.getDate()}`\r\n : date.getDay() === 1\r\n ? `${intl.formatMessage({ id: 'common.mon' })} ${date.getDate()}`\r\n : date.getDay() === 2\r\n ? `${intl.formatMessage({ id: 'common.tue' })} ${date.getDate()}`\r\n : date.getDay() === 3\r\n ? `${intl.formatMessage({ id: 'common.wed' })} ${date.getDate()}`\r\n : date.getDay() === 4\r\n ? `${intl.formatMessage({ id: 'common.thu' })} ${date.getDate()}`\r\n : date.getDay() === 5\r\n ? `${intl.formatMessage({ id: 'common.fri' })} ${date.getDate()}`\r\n : date.getDay() === 6\r\n ? `${intl.formatMessage({ id: 'common.sat' })} ${date.getDate()}`\r\n : ''\r\n };\r\n });\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nexport const getWeekColumns = (intl, data: Array, stacked: boolean = false) => {\r\n const weeks = [];\r\n\r\n if (data) {\r\n data.forEach((item: any) => {\r\n if (item.weekNumber && !weeks.includes(item.weekNumber)) {\r\n weeks.push(item.weekNumber);\r\n }\r\n });\r\n\r\n const columns = weeks.map((week) => {\r\n const startWeekDate = DateTime.fromISO(\r\n data?.find((d) => d.weekNumber === week).startWeekDate\r\n ).toFormat('yyyy-MM-dd');\r\n\r\n const endWeekDate = DateTime.fromISO(\r\n data?.find((d) => d.weekNumber === week).endWeekDate\r\n ).toFormat('yyyy-MM-dd');\r\n\r\n const weekColumns = [\r\n {\r\n fieldName: `performance-week${week}`,\r\n headerText: 'jobs.reports.performance',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `travel-week${week}`,\r\n headerText: 'jobs.reports.travel',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `consumption-week${week}`,\r\n headerText: 'jobs.reports.workTime',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `total-week${week}`,\r\n headerText: 'jobs.reports.workTime',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n }\r\n ];\r\n\r\n return {\r\n customKey: `week${week}`,\r\n staticText: `${\r\n intl.formatMessage({ id: 'common.week' }) + ` ${week}`\r\n } | ${startWeekDate} -> ${endWeekDate}`,\r\n customAttributes: { class: 'side-borders-columns-header' },\r\n columns: weekColumns\r\n };\r\n });\r\n\r\n return columns;\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst userTimezoneOffset = new Date().getTimezoneOffset() * 60000;\r\nexport const convertExcelDateToSystemDate = (excelDate) => {\r\n if (typeof excelDate === 'string') {\r\n return excelDate;\r\n } else {\r\n let systemDate = moment(\r\n new Date(Math.round((excelDate - 25569) * 86400 * 1000) + userTimezoneOffset)\r\n ).format('YYYY-MM-DD HH:mm');\r\n return systemDate;\r\n }\r\n};\r\n\r\nexport interface ValidatorsReturn {\r\n test: boolean;\r\n errorMessage?: string;\r\n}\r\n\r\n/**\r\n * Is Alpha Numeric Or Empty\r\n * @name isAlphaNumericOrEmpty\r\n * @description Test if value is valid or empty\r\n * @param value Unknown value to test or empty\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isAlphaNumericOrEmpty = (value: unknown): ValidatorsReturn => {\r\n if (!isNotNullOrUndefined(value)) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n // Additional verification for empty values (spaces)\r\n if (typeof value === 'string') {\r\n const valueToValidate = String(value).trim();\r\n if (valueToValidate.length === 0) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n }\r\n\r\n return isAlphaNumeric(value);\r\n};\r\n\r\n/**\r\n * Is Alpha Numeric\r\n * @name isAlphaNumeric\r\n * @description Test if value is valid\r\n * @param value Unknown value to test\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isAlphaNumeric = (value: unknown): ValidatorsReturn => {\r\n const alpha = /^.+$/;\r\n switch (typeof value) {\r\n case 'string': {\r\n const valueToValidate = String(value).trim();\r\n const test = isNotNullOrUndefined(value) ? alpha.test(valueToValidate) : false;\r\n\r\n if (valueToValidate.length === 0) {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'number': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'boolean': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'object': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'undefined': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'function': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'symbol': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'bigint': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n\r\n default: {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Is Valid Number Or Empty\r\n * @name isValidNumberOrEmpty\r\n * @description Test if value is valid or empty\r\n * @param value Unknown value to test or empty\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isValidNumberOrEmpty = (value: unknown): ValidatorsReturn => {\r\n if (!isNotNullOrUndefined(value)) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n return isValidNumber(value);\r\n};\r\n\r\n/**\r\n * Is Valid Number\r\n * @name isValidNumber\r\n * @description Test if value is valid\r\n * @param value Unknown value to test\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isValidNumber = (value: unknown): ValidatorsReturn => {\r\n let numeric = /^\\d*\\.?\\d*$/;\r\n let test = numeric.test(String(value));\r\n\r\n // Test if value is a number\r\n if (test) {\r\n return { test: test, errorMessage: undefined };\r\n } else {\r\n return { test: test, errorMessage: appIntl().formatMessage({ id: 'validators.number' }) };\r\n }\r\n};\r\n\r\n/**\r\n * Validate last 4 digits of a card\r\n * @name validLast4Digits\r\n * @description Test if value is valid\r\n * @param value {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n */\r\nexport const validLast4Digits = (value: unknown): ValidatorsReturn => {\r\n try {\r\n // Check if the value is a number\r\n const isNumber = isValidNumber(value);\r\n // Check if the number is a 4 digits number\r\n const is4Digits = String(value).length === 4;\r\n // Check if the number is a 4 digits number and a number\r\n const is4DigitsNumber = isNumber && is4Digits;\r\n // Return the validation\r\n return {\r\n test: is4DigitsNumber,\r\n errorMessage: is4DigitsNumber\r\n ? undefined\r\n : appIntl().formatMessage({ id: 'validators.last4' })\r\n };\r\n } catch (e) {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.last4' })\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * Validate provided date\r\n * @name isValidDate\r\n * @description Test if value is valid\r\n * @param date {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n * @example\r\n * isValidDate('2020-01-01') // true\r\n * isValidDate('2020-01-01 00:00:00') // true\r\n * isValidDate('2020-01-01 00:00:00.000') // true\r\n * isValidDate('2020-01-01 00:00:00.000Z') // true\r\n * isValidDate('2020-01-01 00:00:00.000+00:00') // true\r\n */\r\nexport const isValidDate = (date): ValidatorsReturn => {\r\n if (isNullOrUndefined(date) || date === '' || /^\\s+$/.test(String(date))) {\r\n return { test: false, errorMessage: appIntl().formatMessage({ id: 'validators.date' }) };\r\n }\r\n\r\n const isValid = moment(date, 'YYYY-MM-DD').isValid();\r\n return {\r\n test: isValid,\r\n errorMessage: isValid ? undefined : appIntl().formatMessage({ id: 'validators.date' })\r\n };\r\n};\r\nexport const isValidExcelDate = (excelDate) => {\r\n const date = convertExcelDateToSystemDate(excelDate);\r\n const test = moment(date, 'YYYY-MM-DD').isValid();\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.date' })\r\n };\r\n};\r\n\r\nexport const validateColumns = (dataInfo, columnDefinitions) => {\r\n const rules = columnDefinitions.map((cd) => cd.rules);\r\n const newData = dataInfo.map((row, rowIndex) => {\r\n let invalidColumns = new Array();\r\n const rowValues = Object.values(row);\r\n //validar que las columnas esten completas\r\n\r\n rowValues.forEach((colValue, colIndex) => {\r\n const required = rules[colIndex] ? rules[colIndex]?.required : false;\r\n const validation = rules[colIndex]\r\n ? rules[colIndex].validator(colValue)\r\n : { test: true, errorMessage: '' };\r\n\r\n if (colValue === '') {\r\n if (required) {\r\n invalidColumns.push({\r\n column: colIndex,\r\n value: colValue,\r\n error: `Es requerido`\r\n });\r\n }\r\n } else {\r\n if (validation.test) {\r\n return;\r\n } else {\r\n invalidColumns.push({\r\n column: colIndex,\r\n value: colValue,\r\n error: validation.errorMessage\r\n });\r\n }\r\n }\r\n });\r\n\r\n return {\r\n ...row,\r\n originalRowId: rowIndex + 1,\r\n invalidColumns: invalidColumns,\r\n rowIsValid: invalidColumns.length > 0 ? false : true\r\n };\r\n });\r\n\r\n return newData;\r\n};\r\n\r\n/**\r\n * Validate provided required value\r\n * @name validateRequiredValue\r\n * @description Test if value is valid\r\n * @param value {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n * @example\r\n * validateRequiredValue('') // false\r\n * validateRequiredValue(null) // false\r\n * validateRequiredValue('undefined') // false\r\n * validateRequiredValue('null') // false\r\n * validateRequiredValue('NaN') // false\r\n * validateRequiredValue(undefined) // false\r\n * validateRequiredValue(0) // true\r\n * validateRequiredValue(1) // true\r\n * validateRequiredValue('0') // true\r\n */\r\nconst validateRequiredValue = (value: unknown): ValidatorsReturn => {\r\n const test = value !== null && value !== undefined;\r\n\r\n if (test) {\r\n return { test: true, errorMessage: undefined };\r\n } else {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n }\r\n};\r\n\r\nconst validateUniqueValue = (value: unknown, data: any, columnName: any): ValidatorsReturn => {\r\n const valueCount = data.filter((item) => String(item[columnName]) === String(value)).length;\r\n const test = valueCount === 1;\r\n\r\n if (test) {\r\n return { test: true, errorMessage: undefined };\r\n } else {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.repeatedValue' })\r\n };\r\n }\r\n};\r\n\r\nexport const isValidDayOfTheWeek = (value: unknown): ValidatorsReturn => {\r\n const intl: IntlShape = appIntl();\r\n if (typeof value === 'number') {\r\n return {\r\n test: value >= 1 && value <= 7,\r\n errorMessage: intl.formatMessage({ id: 'validators.dayOfTheWeek' })\r\n };\r\n }\r\n\r\n if (typeof value === 'string') {\r\n const formattedDayOfTheWeek = intl.formatDate(new Date(value), { weekday: 'long' });\r\n\r\n const dayOfTheWeekMoment = moment(formattedDayOfTheWeek, 'dddd', intl.locale);\r\n\r\n if (dayOfTheWeekMoment.isValid()) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: intl.formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\n/**\r\n * Is valid boolean\r\n * @param value - Value to test\r\n * @description Test if value is valid\r\n * @returns {ValidatorsReturn}\r\n */\r\nexport const isValidBoolean = (value: unknown): ValidatorsReturn => {\r\n if (typeof value === 'boolean') {\r\n // value is a boolean, which is a valid type for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n } else if (typeof value === 'string') {\r\n const toValidate = value.toLowerCase().trim();\r\n if (toValidate === 'true' || toValidate === 'false') {\r\n // value is a string with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n } else if (typeof value === 'number') {\r\n if (value === 0 || value === 1) {\r\n // value is a number with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const isValidBit = (value: unknown): ValidatorsReturn => {\r\n if (typeof value === 'string') {\r\n const toValidate = value.toLowerCase().trim();\r\n if (toValidate === '1' || toValidate === '0') {\r\n // value is a string with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n } else if (typeof value === 'number') {\r\n if (value === 0 || value === 1) {\r\n // value is a number with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const isValidLatitude = (value: unknown): ValidatorsReturn => {\r\n switch (typeof value) {\r\n case 'number':\r\n const test: boolean = value >= -90 && value <= 90;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.latitude' })\r\n };\r\n case 'string': {\r\n const parsedValue = parseFloat(value);\r\n const test: boolean = !isNaN(parsedValue) && parsedValue >= -90 && parsedValue <= 90;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.latitude' })\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.bit' })\r\n };\r\n};\r\n\r\nexport const isValidLongitude = (value: unknown): ValidatorsReturn => {\r\n switch (typeof value) {\r\n case 'number':\r\n const test: boolean = value >= -180 && value <= 180;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.longitude' })\r\n };\r\n case 'string': {\r\n const parsedValue = parseFloat(value);\r\n const test: boolean = !isNaN(parsedValue) && parsedValue >= -180 && parsedValue <= 180;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.longitude' })\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const validators = {\r\n isAlphaNumericOrEmpty,\r\n isAlphaNumeric,\r\n isValidNumberOrEmpty,\r\n isValidNumber,\r\n isValidEmail,\r\n validLast4Digits,\r\n isValidDate,\r\n isValidExcelDate,\r\n validateRequiredValue,\r\n validateUniqueValue,\r\n isValidDayOfTheWeek,\r\n isValidBoolean,\r\n isValidLatitude,\r\n isValidLongitude,\r\n isValidBit\r\n};\r\n\r\nexport const normalizeString = (value: string): string => {\r\n return value\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .trim();\r\n};\r\n\r\n/**\r\n * Normalize input texts\r\n * @param data string from an input\r\n * @returns normalized strings allowing spaces after words\r\n */\r\nexport const normalizeInputText = (data: string): string => {\r\n // Allow clear input\r\n if (typeof data === 'string' && data.trim().length === 0) {\r\n return '';\r\n }\r\n\r\n // Allow only letters and spaces\r\n const validInputRegex = /^(\\w+\\s?)+$/;\r\n if (validInputRegex.test(data)) {\r\n return data;\r\n }\r\n\r\n // Allow only letters, numbers and spaces after words (not before)\r\n return normalizeString(data);\r\n};\r\n\r\nexport const parseToString = (data: unknown): string | undefined => {\r\n switch (typeof data) {\r\n case 'string':\r\n if (data.trim().length === 0 || data.trim() === '') {\r\n return undefined;\r\n }\r\n return data;\r\n case 'number':\r\n return normalizeString(data.toString());\r\n case 'boolean':\r\n return normalizeString(data.toString());\r\n case 'object':\r\n if (isNullOrUndefined(data)) {\r\n return undefined;\r\n }\r\n if (isDate(data)) {\r\n return normalizeString(data.toString());\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * get any date and set todays day, month and year\r\n */\r\n\r\nexport const setTodaysDate = (date: Date): Date => {\r\n const today = new Date();\r\n const newDate = new Date(\r\n today.getFullYear(),\r\n today.getMonth(),\r\n today.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds()\r\n );\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Excel date to JS Date\r\n * @param serial Date saved as number from excel\r\n * @returns {Date} parsed number\r\n */\r\nexport const excelDateToJSDate = (serial: number): Date => {\r\n const utcDays = Math.floor(serial - 25569);\r\n const utcValue = utcDays * 86400;\r\n const dateInfo = new Date(utcValue * 1000);\r\n\r\n const fractionalDay = serial - Math.floor(serial) + 0.0000001;\r\n\r\n let totalSeconds = Math.floor(86400 * fractionalDay);\r\n\r\n const seconds = totalSeconds % 60;\r\n\r\n totalSeconds -= seconds;\r\n\r\n const hours = Math.floor(totalSeconds / (60 * 60));\r\n const minutes = Math.floor(totalSeconds / 60) % 60;\r\n\r\n return new Date(\r\n dateInfo.getFullYear(),\r\n dateInfo.getMonth(),\r\n dateInfo.getDate(),\r\n hours,\r\n minutes,\r\n seconds\r\n );\r\n};\r\n\r\n/**\r\n * function that receives an excel date and returns a date object\r\n * @param date {number} excel date\r\n * @returns {Date | undefined}\r\n * @example\r\n * parseToDate(0.20833333333333334) // 2023-03-31T00:17:57.000Z\r\n */\r\nconst parseToDate = (excelDate: unknown): Date | undefined => {\r\n if (typeof excelDate === 'number') {\r\n return excelDateToJSDate(excelDate);\r\n } else if (typeof excelDate === 'string') {\r\n const dateObj = new Date(excelDate);\r\n return dateObj;\r\n } else if (isDate(excelDate)) {\r\n return excelDate;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const parseToDateTime = (excelDate: unknown): Date | undefined => {\r\n if (typeof excelDate === 'number') {\r\n return DateTime.fromISO(exceldate(excelDate).toISOString(), { zone: 'utc' })\r\n .setZone('system', { keepLocalTime: true })\r\n .toJSDate();\r\n } else if (typeof excelDate === 'string') {\r\n const dateObj = new Date(excelDate);\r\n return dateObj;\r\n } else if (isDate(excelDate)) {\r\n return excelDate;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const parseToNumber = (data: unknown): number | undefined => {\r\n if (typeof data === 'number') {\r\n return data ?? 0;\r\n }\r\n\r\n if (typeof data === 'string') {\r\n const value = Number(data);\r\n\r\n return isNaNOrNullable(value) ? 0 : value;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * @name dateFormatter\r\n * @description date formatter function with moment js library\r\n * @param dateFormat default 'DD/MM/AAAA HH:mm:ss'\r\n * @returns date formatter function\r\n */\r\nexport const dateFormatter = (dateFormat: string = 'DD/MM/YYYY HH:mm:ss') => {\r\n return (d: Date) => {\r\n const m = moment(d);\r\n if (!m.isValid()) {\r\n console.warn(d, 'is not a valid date');\r\n return '';\r\n }\r\n return m.format(dateFormat);\r\n };\r\n};\r\n\r\nexport const parseToBoolean = (data: unknown): boolean | undefined => {\r\n switch (typeof data) {\r\n case 'boolean':\r\n return data;\r\n case 'string':\r\n switch (data.toLowerCase().trim()) {\r\n case 'true':\r\n return true;\r\n case 'false':\r\n return false;\r\n case '1':\r\n return true;\r\n case '0':\r\n return false;\r\n }\r\n break;\r\n case 'number':\r\n return data === 1;\r\n default:\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const parseToBit = (data: unknown): 0 | 1 | undefined => {\r\n const result = parseToBoolean(data);\r\n if (result === undefined) {\r\n return result;\r\n }\r\n\r\n return result ? 1 : 0;\r\n};\r\n\r\nexport const parsers = {\r\n parseToString,\r\n parseToDate,\r\n parseToNumber,\r\n parseToBoolean,\r\n parseToBit,\r\n parseToDateTime\r\n};\r\n\r\nexport const timeToSeconds = (time: Date): number => {\r\n return time.getHours() * 3600 + time.getMinutes() * 60 + time.getSeconds();\r\n};\r\n\r\nexport const timeToMinutes = (time: Date): number => {\r\n return time.getHours() * 60 + time.getMinutes();\r\n};\r\n\r\nexport const getValueFromTryCatch = (handleTry: Function, handleCatch: Function) => {\r\n let value: any;\r\n try {\r\n value = handleTry();\r\n } catch (err) {\r\n console.error(err);\r\n value = handleCatch(err);\r\n }\r\n return value;\r\n};\r\n\r\nexport const compareObjectValues = (obj1: object, obj2: object): boolean =>\r\n JSON.stringify(obj1) === JSON.stringify(obj2);\r\n\r\nexport const getSecondsFromDateHours = (date: Date) => {\r\n return typeof date?.getHours === 'function' ? date?.getHours() * 60 * 60 ?? 0 : 0;\r\n};\r\n\r\nexport const getSecondsFromDateMinutes = (date: Date) => {\r\n return typeof date?.getMinutes === 'function' ? date?.getMinutes() * 60 ?? 0 : 0;\r\n};\r\n\r\nexport const getSecondsFromDate = (date: Date) => {\r\n return typeof date?.getSeconds === 'function' ? date?.getSeconds() ?? 0 : 0;\r\n};\r\n\r\nexport const getMinutesFromDate = (date: Date) => {\r\n return typeof date?.getMinutes === 'function' ? date?.getMinutes() ?? 0 : 0;\r\n};\r\n\r\nexport const getTotalSecondsFromDate = (date: Date) => {\r\n const hoursInSeconds = getSecondsFromDateHours(date);\r\n const minutesInSeconds = getSecondsFromDateMinutes(date);\r\n const seconds = getSecondsFromDate(date);\r\n\r\n const totalSeconds = hoursInSeconds + minutesInSeconds + seconds;\r\n return totalSeconds;\r\n};\r\n\r\nexport interface keysAndParsers {\r\n key: string;\r\n parse: Function;\r\n}\r\n\r\n/**\r\n * Map formatted string to array\r\n * @param data string formatted like \"1~39~n...^1~28~n...\"\r\n * @param keys array of key to map data to object\r\n * [{key: 'name', parse: () => {}},\r\n * {key: 'lastname', parse: () => {}},\r\n * ...]\r\n * @returns Array\r\n */\r\nexport const mapFormattedStringToArray = (\r\n data: string,\r\n keysAndValidator: Array\r\n): Array => {\r\n // First split to get every object as string\r\n const newArray: Array = data.split('^').map((objectAsString: string) => {\r\n // Second split to get object as array\r\n const objectAsArray: Array = objectAsString.split('~');\r\n\r\n // mapped object with provided keys\r\n const newObject = keysAndValidator.reduce(\r\n (object: any, { key, parse }: keysAndParsers, index: number): any => {\r\n const newOjectAcum = { ...object };\r\n // validates index is contained into array\r\n // in order to avoid access to undefined values\r\n if (objectAsArray.length > index) {\r\n try {\r\n // new attribute = Value from array located in index\r\n newOjectAcum[key] = parse(objectAsArray[index]);\r\n } catch (error) {\r\n newOjectAcum[key] = undefined;\r\n }\r\n }\r\n return newOjectAcum;\r\n },\r\n {}\r\n );\r\n\r\n return newObject;\r\n });\r\n return newArray ?? [];\r\n};\r\n\r\n/**\r\n * Create a Date with provided minutes and hours\r\n * @param hours Number of hours\r\n * @param minutes Number of minutes\r\n * @returns new date with provided minutes and hours\r\n */\r\nexport const createDateWithHoursAndMinutes = (hours: number, minutes: number): Date => {\r\n const newDate: Date = new Date();\r\n newDate.setHours(hours);\r\n newDate.setMinutes(minutes);\r\n newDate.setSeconds(0);\r\n newDate.setMilliseconds(0);\r\n return newDate;\r\n};\r\n\r\nexport const secondsToMilliseconds = (seconds: number): number => seconds * 1000;\r\n\r\n//Genera la etiqueta de fecha en el formato YYYY-MM-DD\r\nexport const generateDateLabelByDate = (date) => {\r\n return (\r\n date.getFullYear() +\r\n '-' +\r\n (date.getMonth() + 1 < 10 ? '0' : '') +\r\n (date.getMonth() + 1) +\r\n '-' +\r\n (date.getDate() < 10 ? '0' : '') +\r\n date.getDate()\r\n );\r\n};\r\n\r\n//Calcula la diferencia de horas que existe en un rango de fechas ingresado en el DateInput\r\nexport const getDaysHoursInDateRange = (dateRange: Array): number => {\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n let difference = endDate.getTime() - startDate.getTime();\r\n return Math.ceil(difference / (1000 * 3600 * 24)) * 24 * 3600;\r\n } else {\r\n return 0;\r\n }\r\n};\r\n\r\n/**\r\n * Generate date array\r\n * @param dateRange Date range provided by date range input\r\n * @returns Array in range of the date\r\n */\r\nexport const generateDateArray = (dateRange: Array): Array => {\r\n const dateArray: Array = [];\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n while (startDate <= endDate) {\r\n dateArray.push(new Date(startDate));\r\n startDate.setDate(startDate.getDate() + 1);\r\n }\r\n }\r\n return dateArray;\r\n};\r\n\r\n/**\r\n * Get date as string\r\n * @param date Date to get as string\r\n * @description Returns date as string in format YYYY-MM-DD\r\n * @returns Date as string\r\n */\r\nexport const getDateAsString = (date: Date): string => {\r\n return date.toISOString().substring(0, 10);\r\n};\r\n\r\n/**\r\n * Generate day label by date\r\n * @param date Date to generate label\r\n * @returns Label generated\r\n */\r\nexport const generateDayLabelByDate = (date: Date): string => {\r\n const intl = appIntl();\r\n return date.getDay() === 0\r\n ? `${intl.formatMessage({ id: 'common.sun' })} ${date.getDate()}`\r\n : date.getDay() === 1\r\n ? `${intl.formatMessage({ id: 'common.mon' })} ${date.getDate()}`\r\n : date.getDay() === 2\r\n ? `${intl.formatMessage({ id: 'common.tue' })} ${date.getDate()}`\r\n : date.getDay() === 3\r\n ? `${intl.formatMessage({ id: 'common.wed' })} ${date.getDate()}`\r\n : date.getDay() === 4\r\n ? `${intl.formatMessage({ id: 'common.thu' })} ${date.getDate()}`\r\n : date.getDay() === 5\r\n ? `${intl.formatMessage({ id: 'common.fri' })} ${date.getDate()}`\r\n : date.getDay() === 6\r\n ? `${intl.formatMessage({ id: 'common.sat' })} ${date.getDate()}`\r\n : '';\r\n};\r\n\r\n/**\r\n * Get date string from date item date range\r\n * @param date Date to generate string\r\n * @returns String of the date\r\n */\r\nexport const getDateStringFromDateItemDateRange = (date: any): string => {\r\n return date.toISOString().substr(0, 10);\r\n};\r\n\r\n/**\r\n * Safe Access to nullable prop\r\n * @param obj Object to validate\r\n * @param key Key to validate in the object\r\n * @param defaultValue Default value provided\r\n * @returns Value in the object of default\r\n */\r\nexport const safeAccessToNullProp = (obj: any, key: string, defaultValue: any = undefined): any => {\r\n let value = undefined;\r\n try {\r\n // Access to value in object, catch if error\r\n value = obj[key];\r\n // if value is undefined throw controlled error\r\n if (isNullOrUndefined(value)) throw new Error('Undefined value');\r\n } catch (error) {\r\n // Catch any error and assign default value as value\r\n value = defaultValue;\r\n }\r\n // Return value or default value\r\n return value;\r\n};\r\n\r\n/**\r\n * Is in object\r\n * validates if a prop is in an object\r\n * @param obj: Object to validate\r\n * @param key: string to validate value is in the object\r\n * @returns: boolean\r\n */\r\nexport const isInObject = (obj: any, key: string): boolean => {\r\n let isInObject: boolean;\r\n try {\r\n isInObject = obj[key] !== undefined && obj[key] !== null;\r\n } catch (error) {\r\n isInObject = false;\r\n }\r\n return isInObject;\r\n};\r\n\r\n/**\r\n * Is not in object\r\n * validates if a prop is not in an object\r\n * @param obj: Object to validate\r\n * @param key: string to validate value is in the object\r\n * @returns: boolean\r\n */\r\nexport const isNotInObject = (obj: any, key: string): boolean => !isInObject(obj, key);\r\n\r\n/**\r\n * Is null or undefined\r\n * @param value Get any value to validate\r\n * @returns true if is null or undefined, else false\r\n */\r\nexport const isNullOrUndefined = (value: any): boolean => value === null || value === undefined;\r\n\r\n/**\r\n * Is not null or undefined\r\n * @param value Get any value to validate\r\n * @returns false if is null or undefined, else true\r\n */\r\nexport const isNotNullOrUndefined = (value: any) => !isNullOrUndefined(value);\r\n\r\nexport const isNaNOrNullable = (n: number | null | undefined) => {\r\n return n === null || n === undefined || isNaN(n);\r\n};\r\n\r\nexport const isNotNaNOrNullable = (n: number | null | undefined) => !isNaNOrNullable(n);\r\n\r\n/**\r\n * Check if every element is not null or undefined\r\n * return true if there are not null or undefined values\r\n */\r\nexport const areNotNullOrUndefined = (...arr: any[]) => {\r\n return !arr.some((item) => isNullOrUndefined(item));\r\n};\r\n\r\n/**\r\n * Round time for data report\r\n * @param time: number\r\n * @returns: number\r\n */\r\nexport const parseSecondsToHours = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n\r\n return Math.round((time / 3600) * 100) / 100;\r\n};\r\n\r\nexport const parseHoursToSeconds = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n return time * 3600;\r\n};\r\n\r\n/**\r\n * Round time for report witht epsilon\r\n * @param time : number time in seconds\r\n * @returns time: number rounded\r\n */\r\nexport const parseSecondsToHoursWithEpsilon = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n return Math.round((time / 3600 + Number.EPSILON) * 100) / 100;\r\n};\r\n\r\nexport const getTimeInSeconds = (date: Date) => date.getTime() / 1000;\r\n\r\nexport const getTimeInMinutes = (date: Date) => getTimeInSeconds(date) / 60;\r\n\r\n/**\r\n * Get previous element in array\r\n * @param array : T[]\r\n * @param currentIdx number, idx of current interation\r\n * @returns : T next element or undefined\r\n */\r\nexport function getNextElementInArray(array: Array, currentIdx: number): T | undefined {\r\n if (array.length < 1) return;\r\n let nextElement: T | undefined;\r\n try {\r\n nextElement = array[currentIdx + 1];\r\n } catch (error) {\r\n console.error(new Error('index out of array'));\r\n return undefined;\r\n }\r\n return nextElement;\r\n}\r\n\r\n/**\r\n * Get previous element in array\r\n * @param array : T[]\r\n * @param currentIdx number, idx of current interation\r\n * @returns : T previous element or undefined\r\n */\r\nexport function getPreviousElementInArray(array: Array, currentIdx: number): T | undefined {\r\n if (array.length < 1) return;\r\n let nextElement: T | undefined;\r\n try {\r\n nextElement = array[currentIdx - 1];\r\n } catch (error) {\r\n console.error(new Error('index out of array'));\r\n return undefined;\r\n }\r\n return nextElement;\r\n}\r\n\r\n/**\r\n * Return hour with left zero\r\n * @param n number\r\n * @returns if 9 ? 09 if 10 ? 10\r\n */\r\nexport const addLeftZeroToHours = (n: number): string => {\r\n return (n < 10 && n > -1 ? '0' : '') + n;\r\n};\r\n\r\n/**\r\n * Get difference between dates\r\n * @param a Date end\r\n * @param b Date start\r\n * @returns Time difference as string HH:mm:ss\r\n */\r\nexport const getDifferenceBetweenDatesHHMMSS = (a: Date, b: Date): string => {\r\n // difference in ms\r\n const duration = a.getTime() - b.getTime();\r\n\r\n // minutes and seconds from utc moment date\r\n const minutesSeconds = moment.utc(duration).format('mm:ss');\r\n\r\n // Math floor in order to avoid floats and get only hours\r\n const hours = Math.floor(moment.duration(duration).asHours());\r\n\r\n return `${addLeftZeroToHours(hours)}:${minutesSeconds}`;\r\n};\r\n\r\n/**\r\n * Function that returns number of values\r\n * validates most of the cases of types\r\n * @param obj Object to get number of values\r\n * @returns Return number of values of 0 as default\r\n */\r\nexport const getNumberOfValues = (obj: unknown) => {\r\n // Validate array\r\n if (Array.isArray(obj)) return obj.length;\r\n\r\n // validate null or undefined\r\n if (isNullOrUndefined(obj)) return 0;\r\n\r\n // case object\r\n if (typeof obj == 'object') return Object.values(obj ?? {}).length;\r\n\r\n return 0;\r\n};\r\n\r\nexport const hasTheSameStructure = (objs: Array): boolean => {\r\n if (isNullOrUndefined(objs)) return false;\r\n if (objs.length <= 0) return false;\r\n const keys: Array = Object.keys(objs[0]);\r\n return objs.every((current) => _.isEqual(Object.keys(current), keys));\r\n};\r\n\r\n/**\r\n * Get Days between date and today\r\n * @param date : string | date\r\n * @returns : string indicating difference between date and today\r\n */\r\nexport const getDaysBetweenDateAndTodayRef = (date: Date | string): string => {\r\n const intl = appIntl();\r\n const startDate = new Date(new Date().toISOString().substr(0, 10));\r\n const endDate: Date = date instanceof Date ? date : new Date(date);\r\n var startYear = startDate.getFullYear();\r\n var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\r\n var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n var yearDiff = endDate.getFullYear() - startYear;\r\n var monthDiff = endDate.getMonth() - startDate.getMonth();\r\n if (monthDiff < 0) {\r\n yearDiff--;\r\n monthDiff += 12;\r\n }\r\n var dayDiff = endDate.getDate() - startDate.getDate();\r\n if (dayDiff < 0) {\r\n if (monthDiff > 0) {\r\n monthDiff--;\r\n } else {\r\n yearDiff--;\r\n monthDiff = 11;\r\n }\r\n dayDiff += daysInMonth[startDate.getMonth()];\r\n }\r\n\r\n var weekDiff = dayDiff >= 7 ? Math.floor(dayDiff / 7) : 0;\r\n dayDiff -= 7 * weekDiff;\r\n\r\n return (\r\n (yearDiff > 0\r\n ? yearDiff > 1\r\n ? `${yearDiff} ${intl.formatMessage({ id: 'common.years' })}`\r\n : `${yearDiff} ${intl.formatMessage({ id: 'common.year' })}`\r\n : '') +\r\n (monthDiff > 0\r\n ? monthDiff > 1\r\n ? ` ${monthDiff} ${intl.formatMessage({ id: 'common.months' })}`\r\n : ` ${monthDiff} ${intl.formatMessage({ id: 'common.month' })}`\r\n : '') +\r\n (weekDiff > 0\r\n ? weekDiff > 1\r\n ? ` ${weekDiff} ${intl.formatMessage({ id: 'common.weeks' })}`\r\n : ` ${weekDiff} ${intl.formatMessage({ id: 'common.week' })}`\r\n : '') +\r\n (dayDiff > 0\r\n ? dayDiff > 1\r\n ? ` ${dayDiff} ${intl.formatMessage({ id: 'common.days2' })}`\r\n : ` ${dayDiff} ${intl.formatMessage({ id: 'common.day' })}`\r\n : '')\r\n );\r\n};\r\n\r\nexport const isHex = (hex: string) => /^#([A-Fa-f0-9]{3}){1,2}$/.test(hex);\r\n\r\nexport const hexToRgbA = (hex: string) => {\r\n if (!isHex(hex)) return 'rgba(0 ,0 ,0 ,0)';\r\n\r\n let c;\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',1)';\r\n};\r\n\r\nexport const getZeroIfNaNOrNullable = (n?: number | undefined): number =>\r\n isNaNOrNullable(n) ? 0 : n ?? 0;\r\n\r\n/**\r\n * Has Database date format\r\n * @param date date as string\r\n * @returns bolean true if has format\r\n */\r\nexport const hasDBDateFormat = (date: string | undefined): boolean => {\r\n if (isNullOrUndefined(date)) return false;\r\n const regex = /[0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2}T[0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2}/;\r\n if (typeof date === 'string') return regex.test(date);\r\n return false;\r\n};\r\n\r\n/**\r\n * Get Date String formatted\r\n * @param date : undefined | null | string | Date | Moment date\r\n * @returns : date YYYY-MM-DD HH:mm or empty string\r\n */\r\nexport const getDateStrFormatted = (date: unknown): string => {\r\n if (isNullOrUndefined(date)) return '';\r\n\r\n // Format for date\r\n const dateFormat = 'YYYY-MM-DD HH:mm';\r\n if (typeof date === 'string' && hasDBDateFormat(date)) return moment(date).format(dateFormat);\r\n if (typeof date === 'string' && date.length > 0) return date;\r\n if (date instanceof Date) return moment(date).format(dateFormat);\r\n if (moment.isMoment(date)) return date.format(dateFormat);\r\n\r\n return '';\r\n};\r\n\r\nexport const getDateAsKey = (date: Date | Moment | undefined | null | string): string => {\r\n const format = 'YYYY-MM-DD';\r\n if (isNullOrUndefined(date)) return '';\r\n if (typeof date === 'string') return moment(date).format(format);\r\n if (date instanceof Date) return moment(date).format(format);\r\n if (moment.isMoment(date)) return date.format(format);\r\n return '';\r\n};\r\n\r\nexport const getIsMobile = (navigator) => /iPhone|iPad|iPod|Android/i?.test(navigator?.userAgent);\r\n\r\nexport const getShortDate = (date: string | Date | Moment | undefined | null): string => {\r\n if (isNullOrUndefined(date)) return '';\r\n if (typeof date === 'string') return moment(new Date(date)).format('MMM DD');\r\n if (date instanceof Date) return moment(date).format('MMM DD');\r\n if (moment.isMoment(date)) return date.format('MMM DD');\r\n return '';\r\n};\r\n\r\n/**\r\n * Recursively transforms object to camel case format\r\n * @param obj Object to transform\r\n * @returns Camel case keys of the object\r\n */\r\nexport const camelize = (obj: any) =>\r\n transform(obj, (acc: any, value, key: string, target) => {\r\n const camelKey = isArray(target) ? key : camelCase(key);\r\n\r\n acc[camelKey] = isObject(value) ? camelize(value) : value;\r\n });\r\n\r\nexport function truncateStr(text: string, limit: number) {\r\n if (text.length > limit) {\r\n for (let i = limit; i > 0; i--) {\r\n if (\r\n text.charAt(i) === ' ' &&\r\n (text.charAt(i - 1) != ',' || text.charAt(i - 1) != '.' || text.charAt(i - 1) != ';')\r\n ) {\r\n return text.substring(0, i) + '...';\r\n }\r\n }\r\n return text.substring(0, limit) + '...';\r\n } else {\r\n return text;\r\n }\r\n}\r\n\r\n/**\r\n * Format number 1234.2334 => 1,234.2334\r\n * @param n number\r\n * @param useSelectedLocale boolean in order to use app intl locale or default\r\n * @returns formatted number\r\n */\r\nexport const formatNumber = (n: number | string, useSelectedLocale: boolean = false): string => {\r\n let numberToValidate = Number(n);\r\n\r\n if (isNaNOrNullable(numberToValidate)) return '0';\r\n // validateNumber\r\n if (typeof n === 'string') {\r\n const regexIsNumber = /^\\d+(\\.\\d+)?$/;\r\n const isNumber = regexIsNumber.test(n);\r\n if (!isNumber) return '0';\r\n }\r\n\r\n const localeToUse = useSelectedLocale ? appIntl().locale : 'en-US';\r\n const newNumberFormatted = numberToValidate.toLocaleString(localeToUse);\r\n return newNumberFormatted;\r\n};\r\n\r\nexport const testIsNumber = (n: unknown) => {\r\n // create regex that test if the string is number\r\n // can be negative and have decimals\r\n // const regexIsNumber = /^-?\\d+\\.?\\d*$/;\r\n const regexIsNumber = /^\\d+(\\.\\d+)?$/;\r\n\r\n switch (typeof n) {\r\n case 'number':\r\n return true;\r\n case 'string':\r\n return regexIsNumber.test(n);\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\nexport const getUseCRM = () => !!parseInt(env.REACT_APP_PRODUCT_CRM ?? '0');\r\n\r\nexport const getUseConsole = () => !!parseInt(env.REACT_APP_PRODUCT_CONSOLE ?? '0');\r\n\r\nexport const getUseLoginext = () => (env.REACT_APP_USE_LOGINEXT === 'true' ? true : false);\r\n\r\nexport const getIsWebtrackUser = (user): boolean => {\r\n const { userName, email } = user;\r\n const webtrackEmail = '@webtrackgps.net';\r\n return (\r\n (typeof userName === 'string' && userName.includes(webtrackEmail)) ||\r\n (typeof email === 'string' && email.includes(webtrackEmail))\r\n );\r\n};\r\n\r\n// function that get time as string with this format '09-00' and return the hour as number 9\r\nexport function getHourFromStringTime(time: string): number {\r\n // validate time\r\n if (isNullOrUndefined(time)) return 0;\r\n\r\n // validate with regex that time has the format '09-00'\r\n const regex = /^[0-9]{2,2}-[0-9]{2,2}$/;\r\n if (!regex.test(time)) return 0;\r\n\r\n const hour = time.split('-')[0];\r\n return parseInt(hour);\r\n}\r\n\r\n// function that get time as string with this format '09-00' and return the minutes as number 0\r\nexport function getMinutesFromStringTime(time: string): number {\r\n // validate time\r\n if (isNullOrUndefined(time)) return 0;\r\n\r\n // validate with regex that time has the format '09-00'\r\n const regex = /^[0-9]{2,2}-[0-9]{2,2}$/;\r\n if (!regex.test(time)) return 0;\r\n\r\n const minutes = time.split('-')[1];\r\n return parseInt(minutes);\r\n}\r\nexport const isEmptyData = (data: unknown) => {\r\n switch (typeof data) {\r\n case 'string':\r\n return data.trim().length === 0;\r\n case 'number':\r\n return isNaNOrNullable(data);\r\n case 'boolean':\r\n return false;\r\n case 'undefined':\r\n return true;\r\n case 'symbol':\r\n return isNotNullOrUndefined(data);\r\n case 'function':\r\n return false;\r\n case 'object':\r\n if (Array.isArray(data)) {\r\n return data.length === 0;\r\n }\r\n if (isNullOrUndefined(data)) {\r\n return true;\r\n }\r\n\r\n // @ts-ignore\r\n // by this line the code has validated if the data is null or undefined\r\n return compareObjectValues(data, {});\r\n default:\r\n isNullOrUndefined(data);\r\n }\r\n};\r\n\r\nexport const isNotEmptyData = (data: unknown) => !isEmptyData(data);\r\n\r\n/**\r\n * generate json without backslash\r\n * @param json\r\n * @returns\r\n */\r\nexport function jsonWithoutBackslash(data: any): string {\r\n const json = JSON.stringify(data ?? {});\r\n return json.replace(/\\\\/g, '');\r\n}\r\n\r\nexport function safeStringify(obj: object) {\r\n const cache = new Set();\r\n const parsed = Object.entries(obj).reduce((acc, [key, value]) => {\r\n if (typeof value === 'object' && value !== null) {\r\n if (cache.has(key)) {\r\n return acc;\r\n }\r\n\r\n acc[key] = value;\r\n cache.add(key);\r\n }\r\n\r\n return acc;\r\n }, {});\r\n\r\n console.log({ parsed });\r\n const data = JSON.stringify(parsed);\r\n\r\n return data;\r\n}\r\n\r\nexport function safeStringifyWithoutBackslash(data: object): string {\r\n const json = safeStringify(data);\r\n return json.replace(/\\\\/g, '');\r\n}\r\n\r\nexport type JoinOptions = 'conjunction' | 'disjunction' | 'unit';\r\nexport const joinTexts = (items: string[], by: JoinOptions = 'conjunction') => {\r\n const intl: IntlShape = appIntl();\r\n return intl.formatList(items, { type: by });\r\n};\r\n\r\nexport const stripHtml = (html: string): string => {\r\n const temp = document.createElement('div');\r\n temp.innerHTML = html;\r\n return temp.textContent ?? '';\r\n};\r\n\r\nexport const roundWithEpsilon = (n?: number) => {\r\n if (!n) {\r\n return null;\r\n }\r\n return Math.round((n + Number.EPSILON) * 100) / 100;\r\n};\r\n\r\nexport const formatHourMeter = (hourMeter?: number | null | undefined) =>\r\n // @ts-ignore unreachable error because of validation\r\n isNotNaNOrNullable(hourMeter) ? parseSecondsToHours(hourMeter) + ' H' : 'N/A';\r\n\r\nexport const getSecondsBetweenDates = ([startDate, endDate]: [string, string]) => {\r\n if (isNullOrUndefined(startDate) || isNullOrUndefined(endDate)) return 0;\r\n const start = moment(startDate);\r\n const end = moment(endDate);\r\n return end.diff(start, 'seconds');\r\n};\r\n\r\nexport const getDeviceInfo = (): DeviceInfo => {\r\n const userAgent = navigator.userAgent;\r\n const isMobile = /Mobile/.test(userAgent);\r\n const isBrowserMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\r\n userAgent\r\n );\r\n\r\n const platform = navigator.platform;\r\n let os: OperatingSystem = OperatingSystem.Unknown;\r\n\r\n if (platform.startsWith('Win')) {\r\n os = OperatingSystem.Windows;\r\n } else if (platform.startsWith('Mac')) {\r\n os = OperatingSystem.MacOS;\r\n } else if (platform.startsWith('Linux')) {\r\n os = OperatingSystem.Linux;\r\n } else if (\r\n platform.includes('iPhone') ||\r\n platform.includes('iPad') ||\r\n platform.includes('iPod')\r\n ) {\r\n os = OperatingSystem.IOS;\r\n } else if (platform.includes('Android')) {\r\n os = OperatingSystem.Android;\r\n }\r\n\r\n const isBrowserChrome = /Chrome/i.test(userAgent);\r\n const isBrowserFirefox = /Firefox/i.test(userAgent);\r\n const isBrowserSafari = /Safari/i.test(userAgent) && !isBrowserChrome;\r\n\r\n let browser: Browser = Browser.Unknown;\r\n\r\n if (isBrowserChrome) {\r\n browser = Browser.Chrome;\r\n } else if (isBrowserFirefox) {\r\n browser = Browser.Firefox;\r\n } else if (isBrowserSafari) {\r\n browser = Browser.Safari;\r\n }\r\n\r\n const deviceType: DeviceType =\r\n isMobile || isBrowserMobile ? DeviceType.Mobile : DeviceType.Desktop;\r\n\r\n return {\r\n os,\r\n browser,\r\n deviceType\r\n };\r\n};\r\n\r\nexport const getKeyboardModifiers = (event: KeyboardEvent): KeyboardModifiers => {\r\n const deviceInfo = getDeviceInfo();\r\n\r\n let ctrl = false;\r\n let alt = false;\r\n let shift = false;\r\n let parsedKey: string | undefined = undefined;\r\n\r\n if (deviceInfo.os === OperatingSystem.MacOS) {\r\n if (event.shiftKey) {\r\n shift = true;\r\n }\r\n if (event.metaKey) {\r\n ctrl = true;\r\n }\r\n\r\n if (\r\n event.altKey ||\r\n (event.key === 'Alt' && event.location === KeyboardEvent.DOM_KEY_LOCATION_RIGHT)\r\n ) {\r\n alt = true;\r\n }\r\n\r\n if (event.key in optionKeySpecialCharacters || event.key in optionShiftSpecialCombinations) {\r\n alt = true;\r\n // if shift is also pressed check the values\r\n parsedKey = shift\r\n ? optionShiftSpecialCombinations[event.key]\r\n : optionKeySpecialCharacters[event.key];\r\n }\r\n } else {\r\n if (event.ctrlKey) {\r\n ctrl = true;\r\n }\r\n if (event.altKey) {\r\n alt = true;\r\n }\r\n }\r\n\r\n return {\r\n ctrl,\r\n alt,\r\n shift,\r\n parsedKey\r\n };\r\n};\r\n\r\nexport const toBit = (data: unknown): 1 | 0 => {\r\n return !!data ? 1 : 0;\r\n};\r\n\r\nexport const scrollDown = () => {\r\n setTimeout(() => {\r\n window.scrollBy({\r\n top: window.innerHeight,\r\n behavior: 'smooth'\r\n });\r\n }, 300);\r\n};\r\n","/* -------------------------------------------------------------------------- */\n/* Reductor de Entities */\n/* -------------------------------------------------------------------------- */\n\nimport { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport union from 'lodash/union';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as entityTypes from '../../../screens/Entities/constants';\nimport * as types from '../types';\nimport * as operatorsTypes from '../../Operators/types';\nimport * as organizationsTypes from '../../Organizations/types';\nimport * as divisionsTypes from '../../Divisions/types';\nimport * as subdivisionsTypes from '../../Subdivisions/types';\nimport * as maintenanceLinesTypes from '../../MaintenanceLines/types';\nimport * as unitsTypes from '../../Units/types';\nimport * as brandsTypes from '../../../../redux/types/static-catalogs/brands';\nimport * as modelsTypes from '../../../../redux/types/models';\nimport * as geofencesTypes from '../../Geofences/types';\nimport * as workplansTypes from '../../Workplans/types/workplans';\n\nimport * as routesTypes from '../../Routes/types/routes';\nimport * as schedulesTypes from '../../Schedules/types';\nimport * as agentsTypes from '../../Agents/types';\nimport * as serviceClassesTypes from '../../ServiceClasses/types';\nimport * as monitoringUsersTypes from '../../Users/types';\nimport * as contactsActions from 'views/screens/Contacts/types';\nimport * as vehicleTypes from '../../Vehicles/types';\nimport * as assetsTypes from '../../Assets/types';\nimport * as locationTypes from '../../Locations/types';\nimport * as officeTypes from '../../Offices/types';\nimport * as driverTypes from '../../Drivers/types';\nimport * as modulesTypes from '../../Modules/types';\nimport * as sensorsTypes from '../../Sensors/types';\nimport * as simsTypes from 'views/screens/SIMs/types';\nimport * as formsTypes from 'views/screens/Forms/types';\nimport * as jobsTypes from 'views/screens/Jobs/types';\nimport * as groupsTypes from 'views/screens/Groups/types';\nimport * as customersTypes from 'views/screens/Customers/types';\nimport * as contractsTypes from 'views/screens/Contracts/types';\nimport * as contractTemplatesTypes from 'views/screens/ContractTemplates/types';\nimport * as notificationTypes from 'views/screens/Notifications/types';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/es/stateReconciler/autoMergeLevel2';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n\n case types.ENTITIES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((entityTypeId) => {\n newState[entityTypeId] = {\n ...state[entityTypeId],\n ...entities[entityTypeId],\n timestamp: Date.parse(entities[entityTypeId].auditDate + 'z') / 1000\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ENTITIES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst userUpdateByEntity = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //USER DATETIME UPDATE BY ENTITIES FETCH\n case unitsTypes.UNITS_FETCH_COMPLETED:\n case unitsTypes.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_UNITS] = {\n entityTypeId: entityTypes.ENTITY_UNITS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case subdivisionsTypes.SUBDIVISIONS_FETCH_COMPLETED:\n case subdivisionsTypes.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SUBDIVISONS] = {\n entityTypeId: entityTypes.ENTITY_SUBDIVISONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case maintenanceLinesTypes.MAINTENANCE_LINES_FETCH_COMPLETED:\n case maintenanceLinesTypes.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_MAINTENANCE_LINES] = {\n entityTypeId: entityTypes.ENTITY_MAINTENANCE_LINES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case vehicleTypes.VEHICLES_FETCH_COMPLETED:\n case vehicleTypes.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_VEHICLES] = {\n entityTypeId: entityTypes.ENTITY_VEHICLES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case modulesTypes.MODULES_FETCH_COMPLETED:\n case modulesTypes.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_MODULES] = {\n entityTypeId: entityTypes.ENTITY_MODULES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case agentsTypes.AGENTS_FETCH_COMPLETED:\n case agentsTypes.AGENTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_AGENTS] = {\n entityTypeId: entityTypes.ENTITY_AGENTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case serviceClassesTypes.SERVICECLASSES_FETCH_COMPLETED:\n case serviceClassesTypes.SERVICECLASSES_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SERVICE_CLASSES] = {\n entityTypeId: entityTypes.ENTITY_SERVICE_CLASSES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case operatorsTypes.OPERATORS_FETCH_COMPLETED:\n case operatorsTypes.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_OPERATORS] = {\n entityTypeId: entityTypes.ENTITY_OPERATORS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case divisionsTypes.DIVISIONS_FETCH_COMPLETED:\n case divisionsTypes.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_DIVISIONS] = {\n entityTypeId: entityTypes.ENTITY_DIVISIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case formsTypes.FORMS_FETCH_COMPLETED:\n case formsTypes.FORMS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_FORMS] = {\n entityTypeId: entityTypes.ENTITY_FORMS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case organizationsTypes.ORGANIZATIONS_FETCH_COMPLETED:\n case organizationsTypes.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ORGANIZATIONS] = {\n entityTypeId: entityTypes.ENTITY_ORGANIZATIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case monitoringUsersTypes.MONITORING_USERS_FETCH_COMPLETED:\n case monitoringUsersTypes.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_USERS] = {\n entityTypeId: entityTypes.ENTITY_USERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case contactsActions.CONTACTS_FETCH_COMPLETED:\n case contactsActions.CONTACTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_CONTACTS] = {\n entityTypeId: entityTypes.ENTITY_CONTACTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case workplansTypes.WORKPLANS_FETCH_COMPLETED:\n case workplansTypes.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_WORKPLANS] = {\n entityTypeId: entityTypes.ENTITY_WORKPLANS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case geofencesTypes.GEOFENCES_FETCH_COMPLETED:\n case geofencesTypes.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_GEOFENCES] = {\n entityTypeId: entityTypes.ENTITY_GEOFENCES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case schedulesTypes.SCHEDULES_FETCH_COMPLETED:\n case schedulesTypes.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SCHEDULES] = {\n entityTypeId: entityTypes.ENTITY_SCHEDULES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case routesTypes.ROUTES_FETCH_COMPLETED:\n case routesTypes.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ROUTES] = {\n entityTypeId: entityTypes.ENTITY_ROUTES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case simsTypes.SIMS_FETCH_COMPLETED:\n case simsTypes.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SIM_CARDS] = {\n entityTypeId: entityTypes.ENTITY_SIM_CARDS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case locationTypes.LOCATIONS_FETCH_COMPLETED:\n case locationTypes.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_LOCATIONS] = {\n entityTypeId: entityTypes.ENTITY_LOCATIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case officeTypes.OFFICES_FETCH_COMPLETED:\n case officeTypes.OFFICES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_OFFICES] = {\n entityTypeId: entityTypes.ENTITY_OFFICES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case driverTypes.DRIVERS_FETCH_COMPLETED:\n case driverTypes.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_DRIVERS] = {\n entityTypeId: entityTypes.ENTITY_DRIVERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case assetsTypes.ASSETS_FETCH_COMPLETED:\n case assetsTypes.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ASSETS] = {\n entityTypeId: entityTypes.ENTITY_ASSETS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case sensorsTypes.SENSORS_FETCH_COMPLETED:\n case sensorsTypes.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SENSORS] = {\n entityTypeId: entityTypes.ENTITY_SENSORS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case jobsTypes.JOBS_BACKLOG_FETCH_COMPLETED:\n case jobsTypes.JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_JOBS_BACKLOG] = {\n entityTypeId: entityTypes.ENTITY_JOBS_BACKLOG,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case groupsTypes.GROUPS_FETCH_COMPLETED:\n case groupsTypes.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_GROUPS] = {\n entityTypeId: entityTypes.ENTITY_GROUPS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n\n case customersTypes.CUSTOMERS_FETCH_COMPLETED:\n case customersTypes.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_CUSTOMERS] = {\n entityTypeId: entityTypes.ENTITY_CUSTOMERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n\n case contractsTypes.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case contractsTypes.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ORGANIZATION_CONTRACTS] = {\n entityTypeId: entityTypes.ENTITY_ORGANIZATION_CONTRACTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case contractTemplatesTypes.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case contractTemplatesTypes.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n newState[entityTypes.ENTITY_CONTRACT_TEMPLATES] = {\n entityTypeId: entityTypes.ENTITY_CONTRACT_TEMPLATES,\n timestamp: Date.now() / 1000 - 60,\n date: new Date().toUTCString()\n };\n return newState;\n }\n\n case notificationTypes.USER_NOTIFICATIONS_FETCH_COMPLETED:\n case notificationTypes.USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n newState[entityTypes.ENTITY_USER_NOTIFICATIONS] = {\n entityTypeId: entityTypes.ENTITY_USER_NOTIFICATIONS,\n timestamp: Date.now() / 1000 - 60,\n date: new Date().toUTCString()\n };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING OR UPDATING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ENTITIES_FETCH_STARTED: {\n return true;\n }\n case types.ENTITIES_FETCH_COMPLETED:\n case types.ENTITIES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchedList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ENTITIES_RESET_IS_FETCHED:\n case types.ENTITIES_FETCH_STARTED: {\n return false;\n }\n case types.ENTITIES_FETCH_COMPLETED:\n case types.ENTITIES_FETCH_FAILED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\n//ERRORS FETCHING OR UPDATING\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ENTITIES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ENTITIES_FETCH_STARTED:\n case types.ENTITIES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst entities: any = combineReducers({\n byId,\n order,\n userUpdateByEntity,\n isFetchingList,\n isFetchedList,\n errorFetchingList\n});\n\nconst entitiesPersistConfig = {\n key: 'entities',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isFetchingList', 'isFetchedList', 'errorFetchingList']\n // blackList: [],\n // whiteList: [],\n};\n\nexport default persistReducer(entitiesPersistConfig, entities);\n\n//Own state\nexport const getOwnState = (state) => state.entities;\n\n//Information\nexport const getEntity = (state, entityTypeId) => getOwnState(state).byId[entityTypeId];\nexport const getUserUpdateByEntityTimestamp = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId].timestamp\n : null;\nexport const getUserUpdateByEntityDate = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId].date\n : null;\nexport const getUserUpdateByEntityOperatorId = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId]?.operatorId\n : null;\nexport const getUserUpdateByEntityOrganizationId = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId]?.organizationId\n : null;\nexport const getEntitiesList = (state) =>\n getOwnState(state).order.map((id) => getEntity(state, id));\n\n/**\n * Is Entity updated\n * @param state Redux State\n * @returns True if is updated, false or null if is not updated\n */\nexport const isEntityUpdated = (state) => (entitiesToUpdate) => {\n return entitiesToUpdate.map((entity) => {\n if (!entity?.entityTypeId) {\n const userUpdateByEntity = getUserUpdateByEntityTimestamp(state, entity);\n if (userUpdateByEntity == null) return null;\n if (userUpdateByEntity < getEntity(state, entity).timestamp) return false;\n return true;\n } else {\n // Vars to validate\n const { operatorId, organizationId, allowNullOrganizationId } =\n authSelectors.getAuthUserMembershipFilters(state, {\n filterOperatorId: entity.operatorId,\n filterOrganizationId: entity.organizationId\n });\n const updateEntityByTimestamp = getUserUpdateByEntityTimestamp(state, entity.entityTypeId);\n const entityTimestamp = getEntity(state, entity.entityTypeId).timestamp;\n const userUpdateEntityOperatorId = getUserUpdateByEntityOperatorId(\n state,\n entity.entityTypeId\n );\n const userUpdateEntityOrganizationId = getUserUpdateByEntityOrganizationId(\n state,\n entity.entityTypeId\n );\n // end Vars to validate\n\n // Entity type is sim\n if (entity.entityTypeId == 4) {\n }\n\n // Return entity as updated because of does not allow organization null\n // Return true in order to don't fetch entity\n if (!entity.allowNullOrganizationId && !allowNullOrganizationId && !organizationId) {\n return true;\n }\n\n // Entity first update, return null in order to update\n if (updateEntityByTimestamp == null) {\n return null;\n }\n\n // Entity is not updated, and return false in order to update\n if (\n updateEntityByTimestamp < entityTimestamp &&\n userUpdateEntityOperatorId === operatorId &&\n userUpdateEntityOrganizationId === organizationId\n ) {\n return false;\n }\n\n // Actualize entity\n if (\n userUpdateEntityOperatorId !== operatorId ||\n userUpdateEntityOrganizationId !== organizationId\n ) {\n return null;\n }\n // Default, does not fetch entity\n return true;\n }\n });\n};\n\nexport const areAllEntitiesUpdated = (state, entitiesToUpdate) => {\n var areUpdated = true;\n entitiesToUpdate.map((entityTypeId) => {\n const timestamp = getUserUpdateByEntityTimestamp(state, entityTypeId);\n if (timestamp == null) areUpdated = false;\n else if (timestamp + 60 < getEntity(state, entityTypeId)?.timestamp) areUpdated = false;\n });\n return areUpdated;\n};\n\n//Status of sagas\nexport const isFetchingListEntities = (state) => getOwnState(state).isFetchingList;\nexport const isFetchedListEntities = (state) => getOwnState(state).isFetchedList;\n\n//Errors\nexport const getFetchingListEntitiesErrors = (state) => getOwnState(state).errorFetchingList;\n","export const CATEGORIES_FETCH_STARTED = 'CATEGORIES_FETCH_STARTED';\nexport const CATEGORIES_FETCH_COMPLETED = 'CATEGORIES_FETCH_COMPLETED';\nexport const CATEGORIES_FETCH_FAILED = 'CATEGORIES_FETCH_FAILED';\n\nexport const CATEGORIES_PARTIAL_FETCH_STARTED = 'CATEGORIES_PARTIAL_FETCH_STARTED';\nexport const CATEGORIES_PARTIAL_FETCH_COMPLETED = 'CATEGORIES_PARTIAL_FETCH_COMPLETED';\nexport const CATEGORIES_PARTIAL_FETCH_FAILED = 'CATEGORIES_PARTIAL_FETCH_FAILED';\n\nexport const CATEGORY_ADD_STARTED = 'CATEGORY_ADD_STARTED';\nexport const CATEGORY_ADD_COMPLETED = 'CATEGORY_ADD_COMPLETED';\nexport const CATEGORY_ADD_FAILED = 'CATEGORY_ADD_FAILED';\n\nexport const CATEGORY_EDIT_STARTED = 'CATEGORY_EDIT_STARTED';\nexport const CATEGORY_EDIT_COMPLETED = 'CATEGORY_EDIT_COMPLETED';\nexport const CATEGORY_EDIT_FAILED = 'CATEGORY_EDIT_FAILED';\n\nexport const CATEGORY_REMOVE_STARTED = 'CATEGORY_REMOVE_STARTED';\nexport const CATEGORY_REMOVE_COMPLETED = 'CATEGORY_REMOVE_COMPLETED';\nexport const CATEGORY_REMOVE_FAILED = 'CATEGORY_REMOVE_FAILED';\n","export const PROVIDERS_FETCH_STARTED2 = 'PROVIDERS_FETCH_STARTED2';\nexport const PROVIDERS_FETCH_COMPLETED2 = 'PROVIDERS_FETCH_COMPLETED2';\nexport const PROVIDERS_FETCH_FAILED2 = 'PROVIDERS_FETCH_FAILED2';\n\nexport const PROVIDERS_PARTIAL_FETCH_STARTED2 = 'PROVIDERS_PARTIAL_FETCH_STARTED2';\nexport const PROVIDERS_PARTIAL_FETCH_COMPLETED2 = 'PROVIDERS_PARTIAL_FETCH_COMPLETED2';\nexport const PROVIDERS_PARTIAL_FETCH_FAILED2 = 'PROVIDERS_PARTIAL_FETCH_FAILED2';\n\nexport const PROVIDER_ADD_STARTED = 'PROVIDER_ADD_STARTED';\nexport const PROVIDER_ADD_COMPLETED = 'PROVIDER_ADD_COMPLETED';\nexport const PROVIDER_ADD_FAILED = 'PROVIDER_ADD_FAILED';\n\nexport const PROVIDER_EDIT_STARTED = 'PROVIDER_EDIT_STARTED';\nexport const PROVIDER_EDIT_COMPLETED = 'PROVIDER_EDIT_COMPLETED';\nexport const PROVIDER_EDIT_FAILED = 'PROVIDER_EDIT_FAILED';\n\nexport const PROVIDER_REMOVE_STARTED = 'PROVIDER_REMOVE_STARTED';\nexport const PROVIDER_REMOVE_COMPLETED = 'PROVIDER_REMOVE_COMPLETED';\nexport const PROVIDER_REMOVE_FAILED = 'PROVIDER_REMOVE_FAILED';\n","export const SPAREPARTS_FETCH_STARTED = 'SPAREPARTS_FETCH_STARTED';\nexport const SPAREPARTS_FETCH_COMPLETED = 'SPAREPARTS_FETCH_COMPLETED';\nexport const SPAREPARTS_FETCH_FAILED = 'SPAREPARTS_FETCH_FAILED';\n\nexport const SPAREPARTS_PARTIAL_FETCH_STARTED = 'SPAREPARTS_PARTIAL_FETCH_STARTED';\nexport const SPAREPARTS_PARTIAL_FETCH_COMPLETED = 'SPAREPARTS_PARTIAL_FETCH_COMPLETED';\nexport const SPAREPARTS_PARTIAL_FETCH_FAILED = 'SPAREPARTS_PARTIAL_FETCH_FAILED';\n\nexport const SPAREPART_ADD_STARTED = 'SPAREPART_ADD_STARTED';\nexport const SPAREPART_ADD_COMPLETED = 'SPAREPART_ADD_COMPLETED';\nexport const SPAREPART_ADD_FAILED = 'SPAREPART_ADD_FAILED';\n\nexport const SPAREPART_EDIT_STARTED = 'SPAREPART_EDIT_STARTED';\nexport const SPAREPART_EDIT_COMPLETED = 'SPAREPART_EDIT_COMPLETED';\nexport const SPAREPART_EDIT_FAILED = 'SPAREPART_EDIT_FAILED';\n\nexport const SPAREPART_REMOVE_STARTED = 'SPAREPART_REMOVE_STARTED';\nexport const SPAREPART_REMOVE_COMPLETED = 'SPAREPART_REMOVE_COMPLETED';\nexport const SPAREPART_REMOVE_FAILED = 'SPAREPART_REMOVE_FAILED';\n\nexport interface SpareParts {\n isSelected: boolean;\n sparePartId: number;\n sparePartName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: null | string;\n categoryName: string;\n categoryId: number;\n categoryIcon: string;\n isConfirmed: boolean;\n}\n","export const WORKMANSHIPS_FETCH_STARTED = 'WORKMANSHIPS_FETCH_STARTED';\nexport const WORKMANSHIPS_FETCH_COMPLETED = 'WORKMANSHIPS_FETCH_COMPLETED';\nexport const WORKMANSHIPS_FETCH_FAILED = 'WORKMANSHIPS_FETCH_FAILED';\n\nexport const WORKMANSHIPS_PARTIAL_FETCH_STARTED = 'WORKMANSHIPS_PARTIAL_FETCH_STARTED';\nexport const WORKMANSHIPS_PARTIAL_FETCH_COMPLETED = 'WORKMANSHIPS_PARTIAL_FETCH_COMPLETED';\nexport const WORKMANSHIPS_PARTIAL_FETCH_FAILED = 'WORKMANSHIPS_PARTIAL_FETCH_FAILED';\n\nexport const WORKMANSHIP_ADD_STARTED = 'WORKMANSHIP_ADD_STARTED';\nexport const WORKMANSHIP_ADD_COMPLETED = 'WORKMANSHIP_ADD_COMPLETED';\nexport const WORKMANSHIP_ADD_FAILED = 'WORKMANSHIP_ADD_FAILED';\n\nexport const WORKMANSHIP_EDIT_STARTED = 'WORKMANSHIP_EDIT_STARTED';\nexport const WORKMANSHIP_EDIT_COMPLETED = 'WORKMANSHIP_EDIT_COMPLETED';\nexport const WORKMANSHIP_EDIT_FAILED = 'WORKMANSHIP_EDIT_FAILED';\n\nexport const WORKMANSHIP_REMOVE_STARTED = 'WORKMANSHIP_REMOVE_STARTED';\nexport const WORKMANSHIP_REMOVE_COMPLETED = 'WORKMANSHIP_REMOVE_COMPLETED';\nexport const WORKMANSHIP_REMOVE_FAILED = 'WORKMANSHIP_REMOVE_FAILED';\n\nexport interface Workmanship {\n isSelected: boolean;\n workmanshipId: number;\n description: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: null | string;\n subdivisionId: number | null;\n subdivisionName: null | string;\n isConfirmed: boolean;\n tempId?: string;\n}\n","export const WORKPLAN_ASSIGNMENT_FETCH_STARTED = 'WORKPLAN_ASSIGNMENT_FETCH_STARTED';\nexport const WORKPLAN_ASSIGNMENT_FETCH_COMPLETED = 'WORKPLAN_ASSIGNMENT_FETCH_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_FETCH_FAILED = 'WORKPLAN_ASSIGNMENT_FETCH_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED';\n\nexport const WORKPLAN_ASSIGNMENT_REMOVE_STARTED = 'WORKPLAN_ASSIGNMENT_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED = 'WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_REMOVE_FAILED = 'WORKPLAN_ASSIGNMENT_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport flattenDeep from 'lodash/flattenDeep';\nimport { DateTime } from 'luxon';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\nimport * as types from '../types';\nimport * as geofenceSelectors from '../../Geofences/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SCHEDULES_FETCH_COMPLETED:\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((scheduleId) => {\n newState[scheduleId] = {\n isSelected: false,\n ...state[scheduleId],\n ...entities[scheduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SCHEDULE_SHIFT_ADD_COMPLETED:\n case types.SCHEDULE_ADD_COMPLETED: {\n const { oldId, schedule } = action.payload;\n const newState = omit(state, oldId);\n newState[schedule.scheduleId] = {\n ...state[oldId],\n ...schedule,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SCHEDULE_SHIFT_EDIT_COMPLETED:\n case types.SCHEDULE_EDIT_COMPLETED: {\n const schedule = action.payload;\n return {\n ...state,\n [schedule.scheduleId]: {\n ...omit(state[schedule.scheduleId], ['oldSchedule']),\n ...omit(schedule, ['oldSchedule']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SCHEDULE_SHIFT_ADD_STARTED:\n case types.SCHEDULE_ADD_STARTED: {\n const schedule = action.payload;\n const newState = { ...state };\n newState[schedule.scheduleId] = {\n isSelected: false,\n ...schedule,\n isConfirmed: false\n };\n return newState;\n }\n case types.SCHEDULE_SHIFT_EDIT_STARTED:\n case types.SCHEDULE_EDIT_STARTED: {\n const schedule = action.payload;\n return {\n ...state,\n [schedule.scheduleId]: {\n ...state[schedule.scheduleId],\n oldSchedule: state[schedule.scheduleId],\n ...schedule,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SCHEDULE_SHIFT_ADD_FAILED:\n case types.SCHEDULE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SCHEDULE_SHIFT_EDIT_FAILED:\n case types.SCHEDULE_EDIT_FAILED: {\n const { oldSchedule } = action.payload;\n return {\n ...state,\n [oldSchedule.scheduleId]: {\n ...omit(state[oldSchedule.scheduleId], ['oldSchedule']),\n ...oldSchedule,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SCHEDULE_REMOVE_COMPLETED: {\n const { scheduleId } = action.payload;\n return omit(state, scheduleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SCHEDULE_SELECTED: {\n const scheduleId = action.payload;\n const newState = {\n ...state,\n [scheduleId]: {\n ...state[scheduleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SCHEDULE_DESELECTED: {\n const scheduleId = action.payload;\n return {\n ...state,\n [scheduleId]: {\n ...state[scheduleId],\n isSelected: false\n }\n };\n }\n\n case types.SCHEDULES_ALL_SELECTED: {\n const scheduleIds = action.payload;\n const newState = { ...state };\n if (scheduleIds.length == 0) {\n forEach(state, (schedule: any, scheduleId) => {\n newState[scheduleId] = {\n ...schedule,\n isSelected: true\n };\n });\n } else {\n scheduleIds.forEach((scheduleId) => {\n newState[scheduleId] = {\n ...state[scheduleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SCHEDULES_ALL_DESELECTED: {\n const scheduleIds = action.payload;\n const newState = { ...state };\n if (scheduleIds.length == 0) {\n forEach(state, (schedule: any, scheduleId) => {\n newState[scheduleId] = {\n ...schedule,\n isSelected: false\n };\n });\n } else {\n scheduleIds.forEach((scheduleId) => {\n newState[scheduleId] = {\n ...state[scheduleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SCHEDULES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SCHEDULE_SHIFT_ADD_COMPLETED:\n case types.SCHEDULE_ADD_COMPLETED: {\n const { oldId, schedule } = action.payload;\n return state.map((scheduleId) => (scheduleId === oldId ? schedule.scheduleId : scheduleId));\n }\n\n case types.SCHEDULE_REMOVE_COMPLETED: {\n const { scheduleId } = action.payload;\n return state.filter((scheduleIdState) => scheduleIdState !== scheduleId);\n }\n\n //CASE ADD STARTED\n case types.SCHEDULE_SHIFT_ADD_STARTED:\n case types.SCHEDULE_ADD_STARTED: {\n const schedule = action.payload;\n return [...state, schedule.scheduleId];\n }\n\n //CASE ADD FAILED\n case types.SCHEDULE_SHIFT_ADD_FAILED:\n case types.SCHEDULE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((scheduleIdState) => scheduleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULES_FETCH_STARTED: {\n return true;\n }\n case types.SCHEDULES_FETCH_COMPLETED:\n case types.SCHEDULES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED:\n case types.SCHEDULES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_ADD_STARTED: {\n return true;\n }\n case types.SCHEDULE_ADD_COMPLETED:\n case types.SCHEDULE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_EDIT_STARTED: {\n return true;\n }\n case types.SCHEDULE_EDIT_COMPLETED:\n case types.SCHEDULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_REMOVE_STARTED: {\n return true;\n }\n case types.SCHEDULE_REMOVE_COMPLETED:\n case types.SCHEDULE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULES_FETCH_STARTED:\n case types.SCHEDULES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULES_PARTIAL_FETCH_STARTED:\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_ADD_STARTED:\n case types.SCHEDULE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_EDIT_STARTED:\n case types.SCHEDULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_REMOVE_STARTED:\n case types.SCHEDULE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst schedules = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default schedules;\n\n//Own state\nexport const getOwnState = (state) => state.schedules;\n\n//Information\nexport const getSchedule = (state, scheduleId) => {\n const intl = appIntl();\n const schedule = getOwnState(state).byId[scheduleId];\n if (schedule) {\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n } else return undefined;\n};\n\nexport const getScheduleByPrivateCode = (state, privateCode) => {\n const intl = appIntl();\n const schedules = getSchedulesList(state);\n const schedule = schedules.find((schedule) => schedule.privateCode === privateCode);\n if (schedule) {\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n } else return undefined;\n};\n\nexport const getScheduleByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n const intl = appIntl();\n const schedules = getScheduleListByMembership(state, membership);\n const schedule = schedules.find((schedule) => schedule.privateCode === privateCode);\n\n if (!schedule) return undefined;\n\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n};\n\nexport const getSchedulesList = (state) =>\n getOwnState(state)\n .order.map((id) => getSchedule(state, id))\n .filter((schedule) => schedule.scheduleStatus > 0);\n\nexport const getScheduleListByMembership = (state, membership: DefaultFilters) =>\n getSchedulesList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getSelectedSchedules = (state) => {\n const selectedSchedules = getSchedulesList(state).filter((schedule) => schedule.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSchedules.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedSchedules.length > 0) return selectedSchedules;\n};\nexport const getTriggersList = (state) =>\n getSchedulesList(state).filter((schedule) => schedule.scheduleType === 1);\nexport const getTriggersListByMembership = (state, membership) =>\n getTriggersList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getShiftsList = (state) =>\n getSchedulesList(state).filter((schedule) => schedule.scheduleType === 2);\n\nexport const getShiftsListByMembership = (state, membership) =>\n getShiftsList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getShiftListByMembershipDetail = (state, membership) =>\n getShiftsListByMembership(state, membership).map((shift) => {\n const shiftTimes = flattenDeep(\n ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'].map(\n (day, index) =>\n shift[day]\n ?.split(' | ')\n .map((time) => ({\n day: index,\n startTime: time.split('-')[0],\n endTime: time.split('-')[1]\n }))\n .filter((day) => day.endTime)\n )\n );\n return { ...shift, shiftTimes };\n });\n\nexport const getSelectedSchedule = (state) => {\n const selectedSchedules = getSchedulesList(state).filter((schedule) => schedule.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSchedules.length === 1) return selectedSchedules[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSchedules = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSchedules = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSchedule = (state) => getOwnState(state).isAdding;\nexport const isEditingSchedule = (state) => getOwnState(state).isEditing;\nexport const isRemovingSchedule = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListSchedulesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSchedulesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingScheduleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingScheduleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingScheduleErrors = (state) => getOwnState(state).errorRemoving;\n","export const ROUTES_EXECUTION_COMMENTS_FETCH_STARTED = 'ROUTES_EXECUTION_COMMENTS_FETCH_STARTED';\nexport const ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED =\n 'ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENTS_FETCH_FAILED = 'ROUTES_EXECUTION_COMMENTS_FETCH_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_ADD_STARTED = 'ROUTES_EXECUTION_COMMENT_ADD_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_ADD_COMPLETED = 'ROUTES_EXECUTION_COMMENT_ADD_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_ADD_FAILED = 'ROUTES_EXECUTION_COMMENT_ADD_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_EDIT_STARTED = 'ROUTES_EXECUTION_COMMENT_EDIT_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED = 'ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_EDIT_FAILED = 'ROUTES_EXECUTION_COMMENT_EDIT_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_STARTED = 'ROUTES_EXECUTION_COMMENT_REMOVE_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED =\n 'ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_FAILED = 'ROUTES_EXECUTION_COMMENT_REMOVE_FAILED';\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport _ from 'lodash';\nimport { CSSProperties, Component, FC, useEffect } from 'react';\nimport { Control, ControllerFieldState, ControllerRenderProps, Field } from 'react-hook-form';\nimport { FormattedMessage, IntlShape } from 'react-intl';\nimport Select, { components, GroupBase, Props as SelectProps } from 'react-select';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport { FormGroup, InputGroup, InputGroupAddon, Label } from 'reactstrap';\nimport { isNotNullOrUndefined } from 'utility/Utils';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst { Option, SingleValue, NoOptionsMessage } = components;\n//Filter option needed to work with formatted messages\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label &&\n _.deburr(candidate.data.label.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n _.deburr(candidate.data.label_intl.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\n\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {props.data.iconSVG && (\n \n )}\n {props.data.label}\n
\n
\n );\n};\n\nconst cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n});\n\nconst MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n};\n\nexport type Options = {\n value: string | number;\n id?: string | number;\n label_intl?: string;\n label?: string | JSX.Element;\n}[];\ninterface Props extends SelectProps {\n id: string;\n field: ControllerRenderProps | any;\n fieldstate: ControllerFieldState | any;\n hasPlaceholder?: boolean;\n options: Options;\n disabled?: boolean;\n label?: string | JSX.Element | null;\n placeholder?: string | Element | JSX.Element;\n isClearable?: boolean;\n intl?: IntlShape;\n isInModal?: boolean;\n errorMessage?: string;\n required?: boolean;\n forceinitialvalue?: string | number | null;\n onClear?: () => void;\n onSelect?: (event) => void;\n additionalonchangefunction?: (value) => void;\n isDisabled?: boolean;\n menuIsOpen?: boolean;\n onInputChange?: (value) => void;\n minWidth?: number;\n prependcomponent?: string | JSX.Element;\n appendcomponent?: string | JSX.Element;\n style?: CSSProperties;\n onFocus?: () => void;\n isLoading?: boolean;\n}\n\nexport type DropdownProps = Props;\n\nconst DropdownInput: FC = (props) => {\n //const [touched, setTouched] = useState(false);\n const {\n field,\n fieldstate,\n hasPlaceholder = true,\n options = [],\n intl,\n isInModal = false,\n errorMessage,\n required,\n forceinitialvalue,\n onClear,\n additionalonchangefunction = (value) => null,\n isDisabled = false,\n menuIsOpen,\n onInputChange,\n minWidth,\n onFocus,\n ...inputProps\n } = props;\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n useEffect(() => {\n if (forceinitialvalue !== undefined) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n useEffect(() => {\n // if options are not an array, return void\n if (!Array.isArray(options)) {\n return;\n }\n const isInArray = options.find((o) => o?.value == forceinitialvalue);\n\n // if element is found in array\n // set as initial value, this code only excecutes itself when\n if (isNotNullOrUndefined(isInArray)) {\n if (forceinitialvalue !== undefined) onChangeFinal(forceinitialvalue);\n return;\n }\n\n // forceinitialvalue has a value\n // is not in the array and is defined\n if (isNotNullOrUndefined(forceinitialvalue)) {\n onChangeFinal(null);\n }\n }, [options?.length]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n return (\n \n {inputProps.label && (\n \n )}\n \n {props.prependcomponent}\n ({ ...styles, zIndex: 91000 }),\n input: (provided, state) => ({\n minWidth: minWidth\n }),\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused\n ? `1px solid ${primary} !important`\n : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n }}\n id={inputProps.id}\n components={{ Option: IconOption, SingleValue: IconSingleValue, MenuList }}\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={\n fieldstate.error != null ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'\n }\n onChange={(event, triggeredAction) => {\n if (triggeredAction.action === 'clear' && onClear) onClear();\n onChangeFinal(event ? event.value : null);\n if (inputProps.onSelect) inputProps.onSelect(event);\n }}\n onBlur={field.onBlur}\n onFocus={onFocus}\n options={options}\n filterOption={filterOption}\n isClearable={inputProps.isClearable}\n isDisabled={isDisabled}\n value={\n options.filter((option) => {\n const fieldValue = String(field.value);\n const optValue = String(option.value);\n const selectedValue = /^\\d+$/.test(fieldValue) ? parseInt(field.value) : field.value;\n const optionValue = /^\\d+$/.test(optValue) ? parseInt(optValue) : option.value;\n return optionValue === selectedValue;\n })[0] || null\n }\n menuIsOpen={menuIsOpen}\n noOptionsMessage={() => appIntl().formatMessage({ id: 'common.noOptions' })}\n maxMenuHeight={250}\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n />\n {props.appendcomponent}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nexport default DropdownInput;\n","/* -------------------------------------------------------------------------- */\n/* Componente TextInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un textfield genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport React, { useEffect, useState } from 'react';\nimport {\n Label,\n Input,\n FormFeedback,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText\n} from 'reactstrap';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\ninterface Props {\n id: any;\n label?: any;\n field: any;\n fieldstate: any;\n type?: any;\n required?: any;\n placeholder?: string;\n errorMessage?: any;\n errorinvalidmessage?: any;\n errorvalidatemessage?: any;\n autocompleteinput?: string;\n topRightComponent?: any;\n prependcomponent?: any;\n appendcomponent?: any;\n forceinitialvalue?: string;\n disabled?: boolean;\n additionalonchangefunction?: Function;\n onFocus?: () => void;\n}\n\nconst TextInput = (props: Props) => {\n const {\n id,\n label,\n required,\n placeholder,\n field,\n fieldstate,\n type = 'text',\n autocompleteinput = 'off',\n topRightComponent,\n prependcomponent,\n appendcomponent,\n disabled,\n errorMessage,\n errorinvalidmessage,\n errorvalidatemessage,\n forceinitialvalue,\n additionalonchangefunction\n } = props;\n\n useEffect(() => {\n if (forceinitialvalue != null) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n \n {label && (\n \n )}\n \n {prependcomponent && (\n \n {prependcomponent}\n \n )}\n {\n onChangeFinal(event.target.value);\n }}\n onFocus={props.onFocus}\n id={id}\n placeholder={placeholder}\n autoComplete={autocompleteinput}\n type={type}\n invalid={fieldstate.error != null}\n disabled={disabled}\n />\n {appendcomponent && (\n \n {appendcomponent}\n \n )}\n \n {fieldstate.error && fieldstate.error.type === 'required' ? (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'pattern' ? (\n
\n {fieldstate.error?.message || errorinvalidmessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'validate' ? (\n
\n {fieldstate.error?.message || errorvalidatemessage || (\n \n )}\n
\n ) : (\n ''\n )}\n
\n );\n};\n\nTextInput.defaultProps = {};\n\nexport default TextInput;\n","export const USER_NOTIFICATIONS_FETCH_STARTED = 'USER_NOTIFICATIONS_FETCH_STARTED';\nexport const USER_NOTIFICATIONS_FETCH_COMPLETED = 'USER_NOTIFICATIONS_FETCH_COMPLETED';\nexport const USER_NOTIFICATIONS_FETCH_FAILED = 'USER_NOTIFICATIONS_FETCH_FAILED';\n\nexport const USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED = 'USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED';\nexport const USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED =\n 'USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED';\nexport const USER_NOTIFICATIONS_PARTIAL_FETCH_FAILED = 'USER_NOTIFICATIONS_PARTIAL_FETCH_FAILED';\n\nexport const USER_NOTIFICATION_READ_STARTED = 'USER_NOTIFICATION_READ_STARTED';\nexport const USER_NOTIFICATION_READ_COMPLETED = 'USER_NOTIFICATION_READ_COMPLETED';\nexport const USER_NOTIFICATION_READ_FAILED = 'USER_NOTIFICATION_READ_FAILED';\n\nexport const USER_NOTIFICATION_SHOWN = 'USER_NOTIFICATION_SHOWN';\nexport const USER_NOTIFICATION_UNSHOWN = 'USER_NOTIFICATION_UNSHOWN';\n\nexport const USER_NOTIFICATION_SELECTED = 'USER_NOTIFICATION_SELECTED';\nexport const USER_NOTIFICATION_DESELECTED = 'SYSTEM_NOTIFICATION_USER_DESELECTED';\nexport const USER_NOTIFICATION_ALL_SELECTED = 'USER_NOTIFICATION_ALL_SELECTED';\nexport const USER_NOTIFICATION_ALL_DESELECTED = 'USER_NOTIFICATION_ALL_DESELECTED';\n\nexport interface UserNotification {\n isSelected: boolean;\n isConfirmed: boolean;\n shownAtLogin: boolean;\n systemNotificationId: number;\n notificationId: number;\n messageType: number;\n messageTitle: number;\n message: string;\n startDate: string;\n endDate: string;\n entityTypeId: number;\n operatorId: number;\n organizationId: number;\n accessLevelId: number;\n userId: number;\n mobileOperatorId: number;\n status: number;\n useToast: boolean;\n toastTime: number;\n isWebtrackNotification: boolean;\n}\n","import moment from 'moment';\nimport {\n ArrowDownCircle,\n BatteryCharging,\n Circle,\n Clock,\n MapPin,\n Navigation,\n PauseCircle,\n PlayCircle,\n Power,\n StopCircle,\n Watch,\n Wifi,\n WifiOff\n} from 'react-feather';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { formatHourMeter } from 'utility/Utils';\nimport { UnitMainState, UnitsMainState } from 'views/screens/Units/types';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport * as deviceActionsSelectors from '../Units/reducers/deviceActions';\nimport * as deviceMetricsSelectors from '../Units/reducers/deviceMetrics';\nimport * as groupsSelectors from '../Units/reducers/groups';\nimport * as imagesSelectors from '../Units/reducers/images';\nimport * as reportsSelectors from '../Units/reducers/reports';\nimport * as sensorsSelectors from '../Units/reducers/sensors';\nimport { Row, Col } from 'reactstrap';\nimport NumericalInput from 'views/formComponents/NumericalInput';\nimport UnitsDropdown from 'views/formComponents/UnitsDropdown';\nimport UsersDropdown from 'views/formComponents/UsersDropdown';\nimport TextInput from 'views/formComponents/TextInput';\nimport DateInput from 'views/formComponents/DateInput';\nimport LocationsDropdownInput from 'views/formComponents/LocationDropDown';\nimport EventsDropdown from 'views/formComponents/EventsDropdown';\n\nexport const MainStateType: UnitsMainState = {\n ONLINE: {\n id: 1000,\n intl: 'units.mainStateId.1000',\n color: '#00D57E',\n textColor: '#75BB5A',\n tooltip: 'units.mainStateId.tooltip.1000',\n shortIntl: 'units.mainStateId.1000'\n },\n OFFLINE: {\n id: 0,\n intl: 'units.mainStateId.0',\n color: '#BA0000',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.0',\n shortIntl: 'units.mainStateId.0'\n },\n OFF: {\n id: 1,\n intl: 'units.mainStateId.1',\n color: '#FFFF00',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.1',\n shortIntl: 'units.mainStateId.1'\n },\n MOVING: {\n id: 2,\n intl: 'units.mainStateId.2',\n color: '#00D57E',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.2',\n shortIntl: 'units.mainStateId.2'\n },\n ON_IDLE: {\n id: 3,\n intl: 'units.mainStateId.3',\n color: '#FF4459',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.3',\n shortIntl: 'units.mainStateId.shortIntl.3'\n },\n ON_STANDBY: {\n id: 4,\n intl: 'units.mainStateId.4',\n color: '#FF7A00',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.4',\n shortIntl: 'units.mainStateId.shortIntl.4'\n },\n ON_STARTED: {\n id: 5,\n intl: 'units.mainStateId.5',\n color: '#00EAD5',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.5',\n shortIntl: 'units.mainStateId.shortIntl.5'\n },\n DOWNTIME: {\n id: 6,\n intl: 'units.mainStateId.6',\n color: '#7B7B74',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.6',\n shortIntl: 'units.mainStateId.6'\n },\n ON_STOPPED: {\n id: 7,\n intl: 'units.mainStateId.7',\n color: '#FFC737',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.7',\n shortIntl: 'units.mainStateId.shortIntl.7'\n },\n ON_MOVING: {\n id: 8,\n intl: 'units.mainStateId.8',\n color: '#00D57E',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.8',\n shortIntl: 'units.mainStateId.shortIntl.8'\n },\n STOPPED: {\n id: 9,\n intl: 'units.mainStateId.9',\n color: '#FDAC34',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.9',\n shortIntl: 'units.mainStateId.9'\n },\n OPPORTUNITY_CHARGE: {\n id: 10,\n intl: 'units.mainStateId.10',\n color: '#7669e8',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.10',\n shortIntl: 'units.mainStateId.shortIntl.10'\n },\n DISCONNECTED: {\n id: 11,\n intl: 'units.mainStateId.11',\n color: '#DD77DD',\n textColor: '#000000',\n tooltip: 'units.mainStateId.tooltip.11',\n shortIntl: 'units.mainStateId.shortIntl.11'\n }\n};\n\n/**\n * Get Icon by state id\n * @param id id of state\n * @returns Icon as JSX element\n */\nexport const getIconByStatId = (id: number): JSX.Element => {\n switch (id) {\n case 1000:\n return ;\n case 0:\n return ;\n case 1:\n return ;\n case 2:\n return ;\n case 3:\n return ;\n case 4:\n return ;\n case 5:\n return ;\n case 6:\n return ;\n case 7:\n return ;\n case 8:\n return ;\n case 9:\n return ;\n case 10:\n return ;\n }\n return ;\n};\n\nexport const GetMainStateById = (id: number): UnitMainState => {\n //console.log('unitLiveStatus.mainStateId==>', id);\n let state = MainStateType.ONLINE;\n switch (id) {\n case 100:\n state = MainStateType.ONLINE;\n break;\n case 0:\n state = MainStateType.OFFLINE;\n break;\n case 1:\n state = MainStateType.OFF;\n break;\n case 2:\n state = MainStateType.MOVING;\n break;\n case 3:\n state = MainStateType.ON_IDLE;\n break;\n case 4:\n state = MainStateType.ON_STANDBY;\n break;\n case 5:\n state = MainStateType.ON_STARTED;\n break;\n case 6:\n state = MainStateType.DOWNTIME;\n break;\n case 7:\n state = MainStateType.ON_STOPPED;\n break;\n case 8:\n state = MainStateType.ON_MOVING;\n break;\n case 9:\n state = MainStateType.STOPPED;\n break;\n case 10:\n state = MainStateType.OPPORTUNITY_CHARGE;\n break;\n case 11:\n state = MainStateType.DISCONNECTED;\n break;\n default:\n state = MainStateType.ONLINE;\n break;\n }\n return state;\n};\n\nexport const GetMainStateStyle = (\n state: UnitMainState\n): {\n backgroundColor: string;\n color: string;\n} => ({\n backgroundColor: state.color,\n color: state.textColor\n});\n\nexport const GetMainStateName = (\n mainState: UnitMainState,\n mainStateTitle: string,\n mainStateDate: string,\n speed: string,\n downTimeReason: string,\n extraMessage: string\n): string =>\n mainStateTitle +\n ([MainStateType.MOVING.id, MainStateType.ON_MOVING.id].includes(mainState.id)\n ? ' - ' + speed\n : mainState.id === MainStateType.DOWNTIME.id\n ? ' - ' + downTimeReason\n : mainState.id === MainStateType.OFFLINE.id\n ? ''\n : mainStateDate\n ? ' - ' + extraMessage\n : '');\n\nexport const getUnitIcon = (themeId: number): string => {\n switch (themeId) {\n case 0:\n return 'Normal';\n case 1:\n return 'Car';\n case 2:\n return 'Buses';\n case 3:\n return 'Motorcycles';\n case 4:\n return 'Trucks';\n case 5:\n return 'Car';\n // return 'Funny'; //Pendiente\n case 6:\n return 'PersonalMale';\n case 7:\n return 'PersonalFemale';\n case 8:\n return 'Panel';\n case 9:\n return 'PickUp';\n case 10:\n return 'MiniMan';\n case 11:\n return 'Container';\n case 12:\n return 'Cab';\n case 13:\n return 'Platform';\n case 14:\n return 'ManHealth';\n case 15:\n return 'WomanHealth';\n case 16:\n return 'Taxis';\n case 17:\n return 'Ship';\n case 18:\n return 'CargoShip';\n case 19:\n return 'Sailboat';\n case 20:\n return 'Excavator';\n case 21:\n return 'Bulldozer';\n case 22:\n return 'LiftTruck';\n case 23:\n return 'Scooter';\n case 24:\n return 'JetSki';\n case 25:\n return 'Ambulances';\n case 26:\n return 'Planes';\n case 27:\n return 'Airplanes';\n case 28:\n return 'Helicopter';\n case 29:\n return 'DumpTruck';\n case 30:\n return 'Steamroller';\n case 31:\n return 'TankerTruck';\n case 32:\n return 'ConcreteMixerTruck';\n case 33:\n return 'CraneTruck';\n case 34:\n return 'DeliveryTruck';\n case 35:\n return 'Tank';\n case 200:\n return 'Special';\n }\n return 'Special';\n};\n\nexport const getUnitActionIcon = (deviceActionId: number): string => {\n switch (deviceActionId) {\n case 0:\n return 'RequestLocation';\n case 1:\n return 'Paralyze';\n case 2:\n return 'Enable';\n case 3:\n return 'OpenDoor';\n case 4:\n return 'OpenDoor2';\n case 5:\n return 'ScriptLoader';\n case 6:\n return 'Geofences1';\n case 8:\n return 'Measurement';\n case 9:\n return 'OpenPadlock';\n case 11:\n return 'RequestMileage';\n case 12:\n return 'ChangeTemperatureLimits';\n case 13:\n return 'ClosePadlock';\n case 20:\n return 'NormalFrequency2m_10m';\n case 21:\n return 'SlowFrequency2h';\n case 22:\n return 'FastFrequency1m_5m';\n case 23:\n return 'SlowFrequency4h_4h';\n case 30:\n return 'Band850'; //Pendiente\n case 31:\n return 'Band900'; //Pendiente\n case 32:\n return 'Band1800'; //Pendiente\n case 33:\n return 'Band1900'; //Pendiente\n case 34:\n return 'Band850_1900GuatemalaNicaragua'; //Pendiente\n case 35:\n return 'Band900_1800CostaRica'; //Pendiente\n case 36:\n return 'Band900_1900'; //Pendiente\n case 50:\n return 'Screenshot';\n case 51:\n return 'StartVideoCameraRecording';\n case 52:\n return 'StopVideoRecording';\n case 53:\n return 'CaptureImageOutdoorCamera';\n case 54:\n return 'StartOutdoorVideoCameraRecording';\n case 55:\n return 'LiveVideo';\n case 56:\n return 'LiveVideoOutdoorCamera';\n case 57:\n return 'StopLiveVideo';\n case 60:\n return 'ActivateMonitoringVoice';\n case 61:\n return 'DisableMonitoringVoice';\n case 70:\n return 'ActivateLapReport';\n case 71:\n return 'TurnOffLapReporting';\n case 80:\n return 'EnableSecurity';\n case 81:\n return 'DisableSecurity';\n case 90:\n return 'ResetUnit';\n case 91:\n return 'ResetGPS';\n case 92:\n return 'FullTank';\n case 93:\n return 'FastFrequency30seg_5m';\n case 100:\n return 'ScriptResponse';\n case 1000:\n return 'SetMaximumSpeed';\n case 1001:\n return 'SetMaximumStopTime';\n case 1002:\n return 'ManualReport';\n case 1003:\n return 'MovementTransmissionFrequency';\n case 1004:\n return 'ParkedTransmissionFrequency';\n case 1005:\n return 'InstantGPSModuleChange';\n case 1006:\n return 'Message';\n case 1007:\n return 'AssignMonitoringUser';\n case 1008:\n return 'UnassignMonitoringUser';\n case 1009:\n return 'TransmissionFrequency';\n case 1010:\n return 'ActivateLongRoutes';\n case 1011:\n return 'DisableLongRoutes';\n case 1200:\n return 'GoToNextSection';\n }\n return 'GoToNextSection';\n};\n\nexport const getUnitMainStateIconAndSize = (mainStateId: number): Array => {\n switch (mainStateId) {\n case 1:\n return ['Alert-12', 30]; //Apagado\n case 2:\n return ['Moving', 30]; //En movimiento\n case 3:\n return ['Idle', 30]; //Ocioso\n case 4:\n return ['Stopped', 30]; //Detenido\n case 5:\n return ['Alert-11', 30]; //Encendido\n default:\n return ['XCircle', 17]; //Fuera de línea\n }\n};\n\nexport const getUnitCommunicationDiagnosticsIcon = (lastCommunicationDate) => {\n if (lastCommunicationDate) {\n const date1 = new Date();\n const date2 = new Date(lastCommunicationDate);\n const hoursDiff = Math.abs(date1.getTime() - date2.getTime()) / 36e5;\n if (hoursDiff <= 1 / 3) return 'CommunicationDiagnosticsGreen';\n else if (hoursDiff <= 24) return 'CommunicationDiagnosticsYellow';\n else return 'CommunicationDiagnosticsRed';\n } else return 'CommunicationDiagnosticsRed';\n};\n\nexport const getUnitHeadingIcon = (heading = 0) => {\n //Norte\n if (heading < 22.5) return 'ArrowUp';\n //Noreste\n else if (heading < 67.5) return 'ArrowUpRight';\n //Este\n else if (heading < 112.5) return 'ArrowRight';\n //Sureste\n else if (heading < 157.5) return 'ArrowDownRight';\n //Sur\n else if (heading < 202.5) return 'ArrowDown';\n //Suroeste\n else if (heading < 247.5) return 'ArrowDownLeft';\n //Oeste\n else if (heading < 292.5) return 'ArrowLeft';\n //Noroeste\n else if (heading < 337.5) return 'ArrowUpLeft';\n};\n\nexport const getUnitHeadingFormat = (heading = 0) => {\n //Norte\n if (heading < 22.5) return 'common.north';\n //Noreste\n else if (heading < 67.5) return 'common.northeast';\n //Este\n else if (heading < 112.5) return 'common.east';\n //Sureste\n else if (heading < 157.5) return 'common.southeast';\n //Sur\n else if (heading < 202.5) return 'common.south';\n //Suroeste\n else if (heading < 247.5) return 'common.southwest';\n //Oeste\n else if (heading < 292.5) return 'common.west';\n //Noroeste\n else return 'common.norwest';\n};\n\nexport const getDatesDifferenceString = (date1, date2, intl) => {\n const [endTime, startTime] =\n new Date(date1).getTime() > new Date(date2).getTime()\n ? [new Date(date1).getTime(), new Date(date2).getTime()]\n : [new Date(date2).getTime(), new Date(date1).getTime()];\n return getTimeDifferenceString(startTime, endTime, intl);\n};\n\nexport const getTimeDifferenceString = (startTime, endTime, intl) => {\n const days = Math.floor(Math.abs(endTime - startTime) / (1000 * 60 * 60 * 24));\n const hours = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60)\n );\n const minutes = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * 60 * (24 * days + hours))) / (1000 * 60)\n );\n const seconds = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * (24 * 60 * days + 60 * hours + minutes))) / 1000\n );\n return (\n (days > 0 ? `${days} ${intl.formatMessage({ id: 'common.days' })} ` : '') +\n (hours > 0 ? `${hours} ${intl.formatMessage({ id: 'common.hours' })} ` : '') +\n (minutes > 0 ? `${minutes} ${intl.formatMessage({ id: 'common.minutes' })} ` : '') +\n (seconds > 0 ? `${seconds} ${intl.formatMessage({ id: 'common.seconds' })} ` : '')\n );\n};\n\nexport const getIconByDatesDifference = (date1, date2) => {\n const endDate = new Date(date1).getTime();\n const startDate = new Date(date2).getTime();\n const minutes = Math.floor(Math.abs(endDate - startDate) / (1000 * 60));\n if (minutes >= 0 && minutes <= 5) {\n return 'Parking01';\n } else if (minutes > 5 && minutes <= 15) {\n return 'Parking02';\n } else if (minutes > 15 && minutes <= 30) {\n return 'Parking03';\n } else if (minutes > 30 && minutes <= 60) {\n return 'Parking04';\n } else if (minutes > 60 && minutes <= 60 * 4) {\n return 'Parking04';\n } else if (minutes > 60 * 4 && minutes <= 60 * 8) {\n return 'Parking06';\n } else if (minutes > 60 * 8) {\n return 'Parking07';\n }\n};\n\nexport const getUnitsCompleteData = (unit, liveUnit, state, selectedOrganizationId?) => {\n const intl = appIntl();\n const {\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder,\n ...unitLiveStatus\n } = liveUnit;\n\n const speedFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(\n unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed\n )\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).speed;\n\n const odometerFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(unitLiveStatus.odometer)\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance;\n\n const speedLimit = authSelectors.getParsers(state).convertKilometersToAuthUserDistanceSystem(240);\n\n const distanceFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(unitLiveStatus?.historicalPositions?.distance || 0)\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance;\n\n const deviceMetrics = deviceMetricsOrder\n ? deviceMetricsOrder.map((id) => deviceMetricsSelectors.getDeviceMetric(state, id))\n : [];\n\n const deviceActions = deviceActionsOrder\n ? deviceActionsOrder.map((id) => deviceActionsSelectors.getDeviceAction(state, id))\n : [];\n\n const groups = groupsOrder ? groupsOrder.map((id) => groupsSelectors.getGroup(state, id)) : [];\n\n const reports = reportsOrder\n ? reportsOrder.map((id) => reportsSelectors.getReport(state, id))\n : [];\n\n const images = imagesOrder ? imagesOrder.map((id) => imagesSelectors.getImage(state, id)) : [];\n\n const sensors = sensorsOrder\n ? sensorsOrder.map((id) => sensorsSelectors.getSensor(state, id))\n : [];\n\n return {\n ...unit,\n ...unitLiveStatus,\n speedLimit,\n odometerFormat,\n hourMeterFormat: formatHourMeter(unitLiveStatus.hourMeter),\n mainStateId: unitLiveStatus.mainStateId || 0,\n mainState: GetMainStateById(unitLiveStatus.mainStateId),\n mainStateName: GetMainStateName(\n GetMainStateById(unitLiveStatus.mainStateId),\n intl.formatMessage({ id: GetMainStateById(unitLiveStatus.mainStateId).intl }),\n unitLiveStatus.mainStateDate,\n speedFormat,\n unitLiveStatus.downtimeReasonDescription,\n moment(unitLiveStatus.mainStateDate).fromNow()\n ),\n speed: unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed,\n speedFormat,\n headingFormat: intl.formatMessage({\n id: getUnitHeadingFormat(unitLiveStatus.heading)\n }),\n historicalPositions: {\n allPositions: unitLiveStatus?.historicalPositions?.allPositions || [],\n distance: unitLiveStatus?.historicalPositions?.distance || 0,\n parkedPositions: unitLiveStatus?.historicalPositions?.parkedPositions || [],\n polyline: unitLiveStatus?.historicalPositions?.polyline || [],\n positions: unitLiveStatus?.historicalPositions?.positions || [],\n distanceFormat: distanceFormat\n },\n deviceMetrics: deviceMetrics,\n deviceActions: deviceActions,\n groups: groups,\n reports: reports,\n images: images,\n sensors: sensors,\n isShownInMap: selectedOrganizationId\n ? selectedOrganizationId === unit.organizationId\n ? true\n : false\n : true\n };\n};\n\nexport const getSpecialFunctionParams = (\n specialFunctionId,\n Controller,\n control,\n initialValues,\n membershipFilters\n) => {\n switch (specialFunctionId) {\n case 2:\n return (\n <>\n \n \n (\n \n )}\n />\n \n \n \n );\n case 6:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction6.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n \n (\n \n )}\n />\n \n \n \n \n (\n \n )}\n />\n \n \n \n );\n case 9:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction9.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n case 11:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction11.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n case 12:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction12.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n case 14:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction14.description' })}\n
\n \n
\n \n \n
\n {appIntl().formatMessage({ id: 'units.specialFunctionsScheduleDescription' })}\n
\n \n
\n \n \n

{appIntl().formatMessage({ id: 'units.specialFunctionsScheduleExample' })}

\n \n
\n \n \n
\n {appIntl().formatMessage({ id: 'units.specialFunctionsScheduleFormat' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n case 15:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction15.description' })}\n
\n \n
\n \n \n
\n {appIntl().formatMessage({ id: 'units.specialFunctionsScheduleDescription' })}\n
\n \n
\n \n \n

{appIntl().formatMessage({ id: 'units.specialFunctionsScheduleExample' })}

\n \n
\n \n \n
\n {appIntl().formatMessage({ id: 'units.specialFunctionsScheduleFormat' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n \n \n (\n \n )}\n />\n \n \n \n );\n case 17:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction17.description' })}\n
\n \n
\n \n \n
\n {appIntl().formatMessage({ id: 'units.specialFunctionsScheduleDescription' })}\n
\n \n
\n \n \n

{appIntl().formatMessage({ id: 'units.specialFunctionsScheduleExample' })}

\n \n
\n \n \n
\n {appIntl().formatMessage({ id: 'units.specialFunctionsScheduleFormat' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n case 19:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction19.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n \n (\n \n )}\n />\n \n \n \n \n (\n \n )}\n />\n \n \n \n );\n case 22:\n return (\n <>\n \n \n (\n \n )}\n />\n \n \n \n );\n case 23:\n return (\n <>\n \n \n
\n {appIntl().formatMessage({ id: 'common.description' })}: \n {appIntl().formatMessage({ id: 'units.specialFunction23.description' })}\n
\n \n
\n \n \n (\n \n )}\n />\n \n \n \n );\n }\n};\n","import * as types from '../types';\n\nexport const startFetchingGeofences = (filters = {}) => ({\n type: types.GEOFENCES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingGeofences = (\n entities,\n order,\n operatorId,\n organizationId,\n showInMap = false\n) => ({\n type: types.GEOFENCES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n showInMap\n }\n});\nexport const failFetchingGeofences = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GEOFENCES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingGeofence = (geofenceId) => ({\n type: types.GEOFENCE_FETCH_STARTED,\n payload: geofenceId\n});\n\nexport const completeFetchingGeofence = (geofence, order) => ({\n type: types.GEOFENCE_FETCH_COMPLETED,\n payload: {\n geofence,\n order\n }\n});\n\nexport const failFetchingGeofence = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GEOFENCE_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingGeofences = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingGeofences = (entities, order, operatorId, organizationId) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingGeofences = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingGeofence = (geofence) => ({\n type: types.GEOFENCE_ADD_STARTED,\n payload: geofence\n});\nexport const completeAddingGeofence = (oldId, geofence) => ({\n type: types.GEOFENCE_ADD_COMPLETED,\n payload: { oldId, geofence }\n});\nexport const failAddingGeofence = (oldId, error) => ({\n type: types.GEOFENCE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingGeofence = (geofence) => ({\n type: types.GEOFENCE_EDIT_STARTED,\n payload: geofence\n});\nexport const completeEditingGeofence = (geofence) => ({\n type: types.GEOFENCE_EDIT_COMPLETED,\n payload: geofence\n});\nexport const failEditingGeofence = (oldGeofence, error) => ({\n type: types.GEOFENCE_EDIT_FAILED,\n payload: {\n oldGeofence,\n error\n }\n});\n\nexport const startRemovingGeofence = (geofenceId) => ({\n type: types.GEOFENCE_REMOVE_STARTED,\n payload: {\n geofenceId\n }\n});\nexport const completeRemovingGeofence = (geofenceId) => ({\n type: types.GEOFENCE_REMOVE_COMPLETED,\n payload: {\n geofenceId\n }\n});\nexport const failRemovingGeofence = (geofenceId, error) => ({\n type: types.GEOFENCE_REMOVE_FAILED,\n payload: {\n geofenceId,\n error\n }\n});\n\nexport const startRemovingGeofenceAssignation = (unitGeofences) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_STARTED,\n payload: {\n unitGeofences\n }\n});\n\nexport const startRemovingAllAssignmentsByGeofences = (geofences) => {\n return {\n type: types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED,\n payload: {\n geofences\n }\n };\n};\n\nexport const startRemovingAllAssignmentsByUnits = (units) => {\n return {\n type: types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED,\n payload: {\n units\n }\n };\n};\n\nexport const completeRemovingGeofenceAssignation = (unitGeofences) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_COMPLETED,\n payload: {\n unitGeofences\n }\n});\nexport const failRemovingGeofenceAssignation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditingGeofenceAssignation = (unitGeofenceInfo) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_STARTED,\n payload: {\n unitGeofenceInfo\n }\n});\nexport const completeEditingGeofenceAssignation = (unitGeofenceInfo) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_COMPLETED,\n payload: {\n unitGeofenceInfo\n }\n});\nexport const failEditingGeofenceAssignation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const selectGeofence = (geofenceId) => ({\n type: types.GEOFENCE_SELECTED,\n payload: geofenceId\n});\n\nexport const selectAllGeofences = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_SELECTED,\n payload: geofenceIds\n});\n\nexport const deselectGeofence = (geofenceId) => ({\n type: types.GEOFENCE_DESELECTED,\n payload: geofenceId\n});\n\nexport const deselectAllGeofences = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_DESELECTED,\n payload: geofenceIds\n});\n\nexport const showGeofenceInMap = (geofenceId) => ({\n type: types.GEOFENCE_SHOW_IN_MAP,\n payload: geofenceId\n});\n\nexport const showAllGeofencesInMap = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_SHOW_IN_MAP,\n payload: geofenceIds\n});\n\nexport const hideGeofenceInMap = (geofenceId) => ({\n type: types.GEOFENCE_HIDE_IN_MAP,\n payload: geofenceId\n});\n\nexport const hideAllGeofencesInMap = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_HIDE_IN_MAP,\n payload: geofenceIds\n});\n\nexport const startAssignUnitsGeofences = (assignation) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitsGeofences = (assignation) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitsGeofences = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","export const ROUTES_ASSIGNMENTS_FETCH_STARTED = 'ROUTES_ASSIGNMENTS_FETCH_STARTED';\nexport const ROUTES_ASSIGNMENTS_FETCH_COMPLETED = 'ROUTES_ASSIGNMENTS_FETCH_COMPLETED';\nexport const ROUTES_ASSIGNMENTS_FETCH_FAILED = 'ROUTES_ASSIGNMENTS_FETCH_FAILED';\n\nexport const ROUTES_ASSIGNMENT_EDIT_STARTED = 'ROUTES_ASSIGNMENT_EDIT_STARTED';\nexport const ROUTES_ASSIGNMENT_EDIT_COMPLETED = 'ROUTES_ASSIGNMENT_EDIT_COMPLETED';\nexport const ROUTES_ASSIGNMENT_EDIT_FAILED = 'ROUTES_ASSIGNMENT_EDIT_FAILED';\n\nexport const ROUTES_ASSIGNMENT_REMOVE_STARTED = 'ROUTES_ASSIGNMENT_REMOVE_STARTED';\nexport const ROUTES_ASSIGNMENT_REMOVE_COMPLETED = 'ROUTES_ASSIGNMENT_REMOVE_COMPLETED';\nexport const ROUTES_ASSIGNMENT_REMOVE_FAILED = 'ROUTES_ASSIGNMENT_REMOVE_FAILED';\n\nexport const ROUTES_ASSIGNMENTS_IMPORT_STARTED = 'ROUTES_ASSIGNMENTS_IMPORT_STARTED';\nexport const ROUTES_ASSIGNMENTS_IMPORT_COMPLETED = 'ROUTES_ASSIGNMENTS_IMPORT_COMPLETED';\nexport const ROUTES_ASSIGNMENTS_IMPORT_FAILED = 'ROUTES_ASSIGNMENTS_IMPORT_FAILED';\n","export const WORKPLANS_EXECUTION_LOCATION_ADD_STARTED = 'WORKPLANS_EXECUTION_LOCATION_ADD_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_ADD_FAILED = 'WORKPLANS_EXECUTION_LOCATION_ADD_FAILED';\n\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED =\n 'WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED = 'WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED';\n","export const WORKPLAN_COMMENTS_FETCH_STARTED = 'WORKPLAN_COMMENTS_FETCH_STARTED';\nexport const WORKPLAN_COMMENTS_FETCH_COMPLETED = 'WORKPLAN_COMMENTS_FETCH_COMPLETED';\nexport const WORKPLAN_COMMENTS_FETCH_FAILED = 'WORKPLAN_COMMENTS_FETCH_FAILED';\n\nexport const WORKPLAN_COMMENT_ADD_STARTED = 'WORKPLAN_COMMENT_ADD_STARTED';\nexport const WORKPLAN_COMMENT_ADD_COMPLETED = 'WORKPLAN_COMMENT_ADD_COMPLETED';\nexport const WORKPLAN_COMMENT_ADD_FAILED = 'WORKPLAN_COMMENT_ADD_FAILED';\n\nexport const WORKPLAN_COMMENT_REMOVE_STARTED = 'WORKPLAN_COMMENT_REMOVE_STARTED';\nexport const WORKPLAN_COMMENT_REMOVE_COMPLETED = 'WORKPLAN_COMMENT_REMOVE_COMPLETED';\nexport const WORKPLAN_COMMENT_REMOVE_FAILED = 'WORKPLAN_COMMENT_REMOVE_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport { persistReducer } from 'redux-persist';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.GEOFENCES_FETCH_COMPLETED: {\n const { entities, order, showInMap } = action.payload;\n const newState = {};\n order.forEach((geofenceId) => {\n newState[geofenceId] = {\n isSelected: false,\n isShowInMap: showInMap,\n ...state[geofenceId],\n ...entities[geofenceId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.GEOFENCE_FETCH_COMPLETED: {\n const { geofence } = action.payload;\n return {\n ...state,\n [geofence.geofenceId]: {\n ...state[geofence.geofenceId],\n ...geofence,\n isConfirmed: false,\n isShownInMap: false,\n isSelected: true\n }\n };\n }\n\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((geofenceId) => {\n newState[geofenceId] = {\n isSelected: false,\n isShowInMap: false,\n ...state[geofenceId],\n ...entities[geofenceId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.GEOFENCE_ADD_COMPLETED: {\n const { oldId, geofence } = action.payload;\n const newState = omit(state, oldId);\n newState[geofence.geofenceId] = {\n isShowInMap: false,\n ...state[oldId],\n ...geofence,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.GEOFENCE_EDIT_COMPLETED: {\n const geofence = action.payload;\n return {\n ...state,\n [geofence.geofenceId]: {\n isShowInMap: false,\n ...omit(state[geofence.geofenceId], ['oldGeofence']),\n ...omit(geofence, ['oldGeofence']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n const newState = { ...state };\n newState[geofence.geofenceId] = {\n isShowInMap: false,\n isSelected: false,\n ...geofence,\n isConfirmed: false\n };\n return newState;\n }\n case types.GEOFENCE_EDIT_STARTED: {\n const geofence = action.payload;\n return {\n ...state,\n [geofence.geofenceId]: {\n isShowInMap: false,\n ...state[geofence.geofenceId],\n oldGeofence: state[geofence.geofenceId],\n ...geofence,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.GEOFENCE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.GEOFENCE_EDIT_FAILED: {\n const { oldGeofence } = action.payload;\n return {\n ...state,\n [oldGeofence.geofenceId]: {\n isShowInMap: false,\n ...omit(state[oldGeofence.geofenceId], ['oldGeofence']),\n ...oldGeofence,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.GEOFENCE_REMOVE_COMPLETED: {\n const { geofenceId } = action.payload;\n return omit(state, geofenceId);\n }\n\n //TYPES SHOW AND HIDE GEOFENCES IN MAP\n case types.GEOFENCE_SHOW_IN_MAP: {\n const geofenceId = action.payload;\n const newState = {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.GEOFENCE_HIDE_IN_MAP: {\n const geofenceId = action.payload;\n return {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isShownInMap: false\n }\n };\n }\n\n case types.GEOFENCES_ALL_SHOW_IN_MAP: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isShownInMap: true\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GEOFENCES_ALL_HIDE_IN_MAP: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isShownInMap: false\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.GEOFENCE_SELECTED: {\n const geofenceId = action.payload;\n const newState = {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.GEOFENCE_DESELECTED: {\n const geofenceId = action.payload;\n return {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isSelected: false\n }\n };\n }\n\n case types.GEOFENCES_ALL_SELECTED: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isSelected: true\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GEOFENCES_ALL_DESELECTED: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isSelected: false\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.GEOFENCES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.GEOFENCE_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GEOFENCE_ADD_COMPLETED: {\n const { oldId, geofence } = action.payload;\n return state.map((geofenceId) => (geofenceId === oldId ? geofence.geofenceId : geofenceId));\n }\n\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n return [...state, geofence.geofenceId];\n }\n\n case types.GEOFENCE_REMOVE_COMPLETED: {\n const { geofenceId } = action.payload;\n return state.filter((geofenceIdState) => geofenceIdState !== geofenceId);\n }\n\n //CASE ADD STARTED\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n return [...state, geofence.geofenceId];\n }\n\n //CASE ADD FAILED\n case types.GEOFENCE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((geofenceIdState) => geofenceIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCES_FETCH_STARTED: {\n return true;\n }\n case types.GEOFENCES_FETCH_COMPLETED:\n case types.GEOFENCES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingGeofence = (state = false, action) => {\n switch (action.type) {\n case types.GEOFENCE_FETCH_STARTED: {\n return true;\n }\n case types.GEOFENCE_FETCH_COMPLETED:\n case types.GEOFENCE_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED:\n case types.GEOFENCES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ADD_STARTED: {\n return true;\n }\n case types.GEOFENCE_ADD_COMPLETED:\n case types.GEOFENCE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ASSIGNATION_EDIT_STARTED:\n case types.GEOFENCE_EDIT_STARTED: {\n return true;\n }\n case types.GEOFENCE_EDIT_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_EDIT_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_EDIT_FAILED:\n case types.GEOFENCE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ASSIGNATION_REMOVE_STARTED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED:\n case types.GEOFENCE_REMOVE_STARTED: {\n return true;\n }\n case types.GEOFENCE_ASSIGNATION_REMOVE_COMPLETED:\n case types.GEOFENCE_REMOVE_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_FAILED:\n case types.GEOFENCE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCES_FETCH_STARTED:\n case types.GEOFENCES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCES_PARTIAL_FETCH_STARTED:\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_ADD_STARTED:\n case types.GEOFENCE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_EDIT_STARTED:\n case types.GEOFENCE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_REMOVE_STARTED:\n case types.GEOFENCE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst geofences: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n isFetchingGeofence\n});\n\nconst geofencesPersistedConfig = {\n key: 'geofences',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(geofencesPersistedConfig, geofences);\n\n//Own state\nexport const getOwnState = (state) => state.geofences;\n\n//Information\nexport const getGeofence = (state, geofenceId) => {\n const geofence = getOwnState(state).byId[geofenceId];\n if (geofence) {\n const organization = geofence.organizationId\n ? organizationSelectors.getOrganization(state, geofence.organizationId)\n : undefined;\n const division = geofence.divisionId\n ? divisionSelectors.getDivision(state, geofence.divisionId)\n : undefined;\n const subdivision = geofence.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, geofence.subdivisionId)\n : undefined;\n return {\n ...geofence,\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.geofenceStatus > 0);\nexport const getParentGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.isParentGeofence);\nexport const getSubGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.isParentGeofence === false && geofence.parentGeofenceId != null);\n\nexport const getGeofenceByPrivateCode = (satate, privateCode) => {\n return getGeofencesList(satate).find((geofence) => geofence.privateCode === privateCode);\n};\nexport const getGeofencesListByMembership = (state, membership, geofencesList: any = null) => {\n if (!geofencesList) geofencesList = getGeofencesList(state);\n return geofencesList.filter(\n (geofence) =>\n membership &&\n (!membership.operatorId || membership.operatorId === geofence.operatorId) &&\n (!membership.organizationId || membership.organizationId === geofence.organizationId) &&\n (!membership.divisionId || membership.divisionId === geofence.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === geofence.subdivisionId) &&\n (!membership.groupId ||\n geofence.groups?.split(',').includes(String(membership.groupId)) ||\n membership.groupId + '' === geofence.groups)\n );\n};\nexport const getGeofenceByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n return getGeofencesListByMembership(state, membership).find(\n (geofence) => geofence.privateCode === privateCode\n );\n};\nexport const getParentGeofencesListByMembership = (state, membership) =>\n getGeofencesListByMembership(state, membership, getParentGeofencesList(state));\nexport const getSubGeofencesListByMembership = (state, membership) =>\n getGeofencesListByMembership(state, membership, getSubGeofencesList(state));\nexport const getSelectedGeofences = (state) => {\n const selectedGeofences = getGeofencesList(state).filter((geofence) => geofence.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedGeofences.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedGeofences.length > 0) return selectedGeofences;\n};\n\nexport const getSelectedGeofence = (state) => {\n const selectedGeofences = getGeofencesList(state).filter((geofence) => geofence.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedGeofences.length === 1) return selectedGeofences[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListGeofences = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListGeofences = (state) => getOwnState(state).isFetchingList;\nexport const isAddingGeofence = (state) => getOwnState(state).isAdding;\nexport const isEditingGeofence = (state) => getOwnState(state).isEditing;\nexport const isRemovingGeofence = (state) => getOwnState(state).isRemoving;\nexport const isFetchingGeofenceById = (state) => getOwnState(state).isFetchingGeofence;\n\n//Errors\nexport const getPartialFetchingListGeofencesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListGeofencesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingGeofenceErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingGeofenceErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingGeofenceErrors = (state) => getOwnState(state).errorRemoving;\n","/* -------------------------------------------------------------------------- */\n/* Componente NumericInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un NumericInput genérico que se utiliza en muchas pantallas de la aplicación.\n// Incluye fechas para aumentar la cantidad en incrementos de 1\n\nimport { useState, useEffect, FC } from 'react';\nimport { useSelector } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { Label, FormGroup, InputGroup, InputGroupAddon, Input } from 'reactstrap';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport { isNotNullOrUndefined, isNullOrUndefined, testIsNumber } from 'utility/Utils';\nimport { ControllerFieldState, ControllerRenderProps } from 'react-hook-form';\n\ninterface Props {\n id: string | number | symbol;\n label?: string | JSX.Element;\n field: ControllerRenderProps | any;\n fieldstate: ControllerFieldState | any;\n required?: boolean;\n errorMessage?: string;\n placeholder?: string;\n autoCompleteInput?: any;\n prependcomponent?: string | any;\n appendcomponent?: string | any;\n metric?:\n | 'distance'\n | 'distance2'\n | 'fuel'\n | 'fuel2'\n | 'speed'\n | 'temperature'\n | 'capacity'\n | 'volume';\n min?: number;\n max?: number;\n step?: number;\n allowUndefined?: boolean;\n useNumberSpinner?: boolean;\n disabled?: boolean;\n allowDecimals?: boolean;\n decimalsPrecision?: number;\n additionalonchangefunction?: (value: number | undefined) => void;\n forceinitialvalue?: number;\n topRightComponent?: any;\n style?: any;\n allowZero?: boolean;\n forceShowDecimals?: boolean;\n onFocus?: (event) => void;\n readonly?: boolean;\n}\n\nconst NumericalInput: FC = ({\n id,\n label,\n required,\n field,\n fieldstate,\n errorMessage,\n min,\n max,\n step = '1',\n useNumberSpinner,\n allowUndefined = true,\n metric,\n prependcomponent,\n appendcomponent,\n placeholder,\n allowDecimals,\n decimalsPrecision = 10,\n additionalonchangefunction,\n forceinitialvalue,\n autoCompleteInput,\n topRightComponent,\n disabled = false,\n style = {},\n allowZero,\n forceShowDecimals,\n onFocus\n}) => {\n const [fieldValue, setInputValue] = useState(field.value);\n\n const { authSystems } = useSelector((state) => ({\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n const handleChangeNumber = (newValue) => {\n const validate = () => {\n const isEmptyString =\n typeof newValue === 'string' && // is a string\n newValue === '';\n const isNumber = !isNaN(Number(newValue));\n const hasNumberFormat = testIsNumber(newValue);\n\n return (\n isEmptyString || // regex that test number\n isNumber || // is not NaN\n hasNumberFormat // is a number\n );\n };\n\n if (validate()) {\n setInputValue(newValue);\n }\n };\n\n const onChangeFinal = (value) => {\n if (value) {\n let newValue: number | string = Math.max(Number(min), Math.min(Number(max), Number(value)));\n if (!allowDecimals) {\n newValue = Math.round(newValue);\n } else if (allowDecimals && forceShowDecimals) {\n newValue = Number(newValue).toFixed(decimalsPrecision);\n } else {\n newValue = Number(newValue.toFixed(decimalsPrecision));\n }\n handleChangeNumber(newValue);\n field.onChange(newValue);\n if (additionalonchangefunction) {\n additionalonchangefunction(Number(newValue));\n }\n } else if ((value === 0 || value === '0') && allowZero) {\n let newValue: string | number = Math.max(Number(min), Math.min(Number(max), Number(value)));\n if (!allowDecimals) {\n newValue = Math.round(newValue);\n } else if (allowDecimals && forceShowDecimals) {\n newValue = Number(newValue).toFixed(decimalsPrecision);\n } else {\n newValue = Number(newValue.toFixed(decimalsPrecision));\n }\n handleChangeNumber(newValue);\n field.onChange(newValue);\n if (additionalonchangefunction) {\n additionalonchangefunction(Number(newValue));\n }\n } else {\n field.onChange(undefined);\n if (additionalonchangefunction) {\n additionalonchangefunction(undefined);\n }\n }\n };\n\n const handleKeyDown = (event) => {\n if (allowDecimals) {\n if (event.key === '+' || event.key === 'e' || event.key === 'E') {\n event.preventDefault();\n }\n } else {\n if (event.key === '+' || event.key === 'e' || event.key === 'E' || event.key === '.') {\n event.preventDefault();\n }\n }\n\n if (event.key === '-' && min && min > 0) {\n event.preventDefault();\n }\n\n // avoid double dash\n if (event.target.value.length == 0 && event?.key === '-') {\n event.target.value = '';\n }\n if (event.target.value.length > 0 && event?.key === '-') {\n event.preventDefault();\n }\n // avoid double dash\n };\n\n useEffect(() => {\n handleChangeNumber(field.value);\n onChangeFinal(field.value);\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue) handleChangeNumber(forceinitialvalue);\n if (forceinitialvalue) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n return (\n \n \n\n \n {prependcomponent && (\n {prependcomponent}\n )}\n\n {\n onChangeFinal(fieldValue);\n }}\n min={min}\n max={max}\n invalid={fieldstate.error != null}\n type=\"number\"\n step={allowDecimals ? 'any' : step}\n onKeyDown={handleKeyDown}\n onChange={(event) => {\n handleChangeNumber(event.target.value);\n }}\n value={fieldValue ?? ''}\n placeholder={placeholder}\n autoComplete={autoCompleteInput}\n onFocus={onFocus}\n />\n {(appendcomponent || metric) && (\n \n {metric ? authSystems[metric] : appendcomponent}\n \n )}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nNumericalInput.defaultProps = {\n min: -10000000000,\n max: 100000000000,\n step: 1,\n allowDecimals: false,\n decimalsPrecision: 2,\n useNumberSpinner: false,\n readonly: false\n};\n\nexport default NumericalInput;\n","/* -------------------------------------------------------------------------- */\n/* Acciones del reductor Auth */\n/* -------------------------------------------------------------------------- */\n\nimport * as types from '../../types/auth';\n\nexport const startLogin = ({ username, password }) => ({\n type: types.AUTHENTICATION_STARTED,\n payload: { username, password }\n});\n\nexport const completeLogin = (token) => ({\n type: types.AUTHENTICATION_COMPLETED,\n payload: { token }\n});\n\nexport const failLogin = (error) => ({\n type: types.AUTHENTICATION_FAILED,\n payload: { error }\n});\n\nexport const clearLoginError = () => ({\n type: types.AUTHENTICATION_FAILED_CLEAR\n});\n\nexport const logout = () => ({\n type: types.AUTHENTICATION_IDENTITY_CLEARED\n});\n\nexport const setSessionMembership = (membership = {}) => ({\n type: types.AUTHENTICATION_SET_MEMBERSHIP,\n payload: membership\n});\n\nexport const authenticationUserInformationStarted = () => ({\n type: types.AUTHENTICATION_USER_INFORMATION_STARTED\n});\n\nexport const authenticationUserInformationCompleted = (user) => ({\n type: types.AUTHENTICATION_USER_INFORMATION_COMPLETED,\n payload: { user }\n});\n\nexport const startRefreshToken = () => ({\n type: types.TOKEN_REFRESH_STARTED\n});\n\nexport const startForceRefreshToken = () => ({\n type: types.TOKEN_REFRESH_FORCE_STARTED\n});\n\nexport const completeRefreshToken = (newToken) => ({\n type: types.TOKEN_REFRESH_COMPLETED,\n payload: { newToken }\n});\n\nexport const failRefreshToken = (error) => ({\n type: types.TOKEN_REFRESH_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileGeneralInformation = (values) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfileGeneralInformation = (values) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfileGeneralInformation = (error) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfilePassword = (values) => ({\n type: types.PROFILE_UPDATE_PASSWORD_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfilePassword = (values) => ({\n type: types.PROFILE_UPDATE_PASSWORD_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfilePassword = (error) => ({\n type: types.PROFILE_UPDATE_PASSWORD_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfilePicture = (values) => ({\n type: types.PROFILE_UPDATE_PICTURE_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfilePicture = (values) => ({\n type: types.PROFILE_UPDATE_PICTURE_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfilePicture = (error) => ({\n type: types.PROFILE_UPDATE_PICTURE_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileHomeScreen = (homeScreenId) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_STARTED,\n payload: homeScreenId\n});\n\nexport const completeUpdatingProfileHomeScreen = (homeScreenId) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED,\n payload: homeScreenId\n});\n\nexport const failUpdatingProfileHomeScreen = (error) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_FAILED,\n payload: { error }\n});\n\nexport const startChangingProduct = (productId) => ({\n type: types.PROFILE_CHANGE_PRODUCT_STARTED,\n payload: productId\n});\n\nexport const completeChangingProduct = (productId) => ({\n type: types.PROFILE_CHANGE_PRODUCT_COMPLETED,\n payload: productId\n});\n\nexport const failChangingProduct = (error) => ({\n type: types.PROFILE_CHANGE_PRODUCT_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileMapOptions = (values) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfileMapOptions = (values) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfileMapOptions = (error) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingMapSettingsConfiguration = (values) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED,\n payload: values\n});\n\nexport const completeUpdatingMapSettingsConfiguration = (values) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingMapSettingsConfiguration = (error) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingMapFilterTabPinned = (mapEntitiesFilterTab) => ({\n type: types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED,\n payload: mapEntitiesFilterTab\n});\n\nexport const completeUpdatingMapFilterTabPinned = (mapEntitiesFilterTab) => ({\n type: types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED,\n payload: mapEntitiesFilterTab\n});\n\nexport const failUpdatingMapFilterTabPinned = (error) => ({\n type: types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED,\n payload: error\n});\n\nexport const setCatalogFilters = (catalog, filters, initialValues) => ({\n type: types.PROFILE_SET_CATALOGS_FILTERS,\n payload: {\n catalog,\n filters,\n initialValues\n }\n});\n","import { combineReducers } from 'redux';\nimport moment from 'moment';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as deviceMetricsSelectors from '../deviceMetrics';\nimport * as deviceActionsSelectors from '../deviceActions';\nimport * as groupsSelectors from '../groups';\nimport * as reportsSelectors from '../reports';\nimport * as imagesSelectors from '../images';\nimport * as sensorsSelectors from '../sensors';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { getUnitHeadingFormat } from '../../utils';\nimport { GetMainStateById, GetMainStateName } from 'views/screens/Units/utils';\nimport { UnitLiveStatus } from '../../types/UnitLiveStatusTypes';\nimport { formatHourMeter, numberWithCommas, roundWithEpsilon } from 'utility/Utils';\n\nconst fetchDate = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n return date.toISOString();\n }\n case types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED: {\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n return date.toISOString();\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizationId = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { organizationId } = action.payload;\n return organizationId;\n }\n case types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED: {\n const { organizationId } = action.payload;\n return organizationId;\n }\n default: {\n return state;\n }\n }\n};\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNITS_LIVE_STATUS_FETCH_COMPLETED\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n ...entities[unitId]\n };\n });\n return newState;\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const {\n unitId,\n unitData,\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder\n } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n ...unitData,\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder\n };\n return newState;\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED: {\n const { unitId, distance, parkedPositions, polyline, positions } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n historicalPositions: {\n allPositions: [...(positions || []), ...(parkedPositions || [])],\n distance,\n parkedPositions,\n polyline,\n positions\n }\n };\n return newState;\n }\n case types.UNIT_TRAJECTORY_FETCH_COMPLETED: {\n const { unitId, distance, parkedPositions, polyline, positions } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n trajectory: {\n allPositions: [...(positions || []), ...(parkedPositions || [])],\n distance,\n parkedPositions,\n polyline,\n positions\n }\n };\n return newState;\n }\n case types.UNIT_ACKNOWLEDGE_COMPLETED: {\n const { unitId } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n eventId: 0,\n eventName: 'Normal',\n eventParam: null,\n eventTextColor: null,\n eventColor: 'BBFFAA'\n };\n return newState;\n }\n\n case types.UNIT_EDIT_COMPLETED: {\n const unit = action.payload;\n const oldUnit = state[unit.unitId];\n return {\n ...state,\n [unit.unitId]: {\n ...oldUnit,\n unitName: unit?.unitName ?? oldUnit?.unitName,\n themeId: unit?.themeId ?? oldUnit?.themeId\n }\n };\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNITS_LIVE_STATUS_FETCH_COMPLETED\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { unitId } = action.payload;\n return uniq([...state, unitId]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingLiveStatusList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_LIVE_STATUS_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED:\n case types.UNITS_LIVE_STATUS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingInformation = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_INFORMATION_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED:\n case types.UNIT_INFORMATION_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingPositions = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_POSITIONS_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED:\n case types.UNIT_POSITIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingTrajectory = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_TRAJECTORY_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_TRAJECTORY_FETCH_COMPLETED:\n case types.UNIT_TRAJECTORY_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAcknowledgeEvent = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_ACKNOWLEDGE_STARTED: {\n return true;\n }\n case types.UNIT_ACKNOWLEDGE_COMPLETED:\n case types.UNIT_ACKNOWLEDGE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchedPosition = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.UNIT_POSITIONS_FETCH_STARTED: {\n const { unitId } = action.payload;\n const newState = { ...state };\n return { [unitId]: newState[unitId] ?? false };\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED: {\n const { unitId } = action.payload;\n return { [unitId]: true };\n }\n case types.UNIT_POSITIONS_FETCH_FAILED:\n case types.UNIT_POSITIONS_RESET_IS_FETCHED: {\n return {};\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingLiveStatusList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_LIVE_STATUS_FETCH_STARTED:\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingInformation = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_INFORMATION_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_INFORMATION_FETCH_STARTED:\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingInformation = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_ACTIVE_STARTED:\n case types.UNITS_ASSIGN_DRIVER_STARTED:\n case types.UNIT_EDIT_STARTED: {\n return true;\n }\n case types.UNITS_ACTIVE_COMPLETED:\n case types.UNIT_EDIT_COMPLETED:\n case types.UNITS_ASSIGN_DRIVER_COMPLETED:\n case types.UNITS_ACTIVE_FAILED:\n case types.UNIT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingInformation = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_EDIT_STARTED:\n case types.UNIT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst unitLiveStatus = combineReducers({\n fetchDate,\n organizationId,\n byId,\n order,\n isFetchingLiveStatusList,\n isFetchingInformation,\n isFetchingPositions,\n isAcknowledgeEvent,\n isFetchedPosition,\n errorFetchingLiveStatusList,\n errorFetchingInformation,\n errorEditingInformation,\n isFetchingTrajectory\n});\n\nexport default unitLiveStatus;\n\n//Own state\nexport const getOwnState = (state) => state.units.unitLiveStatus;\n\n//Information\nexport const getFetchDate = (state, organizationId) =>\n getOwnState(state).organizationId === organizationId ? getOwnState(state).fetchDate : undefined;\nexport const getUnit = (state, unitId): UnitLiveStatus | null => {\n const intl = appIntl();\n const unit = getOwnState(state).byId[unitId];\n if (unit) {\n const {\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder,\n ...unitLiveStatus\n } = unit;\n const speedFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(\n unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed\n )\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).speed;\n\n const odometerFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(unitLiveStatus.odometer)\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance;\n return {\n ...unitLiveStatus,\n speedLimit: authSelectors.getParsers(state).convertKilometersToAuthUserDistanceSystem(240),\n odometerFormat,\n hourMeterFormat: formatHourMeter(unitLiveStatus.hourMeter),\n mainStateId: unitLiveStatus.mainStateId || 0,\n mainState: GetMainStateById(unitLiveStatus.mainStateId),\n mainStateName: GetMainStateName(\n GetMainStateById(unitLiveStatus.mainStateId),\n intl.formatMessage({ id: GetMainStateById(unitLiveStatus.mainStateId).intl }),\n unitLiveStatus.mainStateDate,\n speedFormat,\n unitLiveStatus.downtimeReasonDescription,\n moment(unitLiveStatus.mainStateDate).fromNow()\n ),\n speed: unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed,\n speedFormat,\n headingFormat: intl.formatMessage({\n id: getUnitHeadingFormat(unitLiveStatus.heading)\n }),\n historicalPositions: {\n allPositions: unitLiveStatus?.historicalPositions?.allPositions || [],\n distance: unitLiveStatus?.historicalPositions?.distance || 0,\n parkedPositions: unitLiveStatus?.historicalPositions?.parkedPositions || [],\n polyline: unitLiveStatus?.historicalPositions?.polyline || [],\n positions: unitLiveStatus?.historicalPositions?.positions || [],\n distanceFormat:\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(\n unitLiveStatus?.historicalPositions?.distance || 0\n )\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance\n },\n deviceMetrics: deviceMetricsOrder\n ? deviceMetricsOrder.map((id) => deviceMetricsSelectors.getDeviceMetric(state, id))\n : [],\n deviceActions: deviceActionsOrder\n ? deviceActionsOrder.map((id) => deviceActionsSelectors.getDeviceAction(state, id))\n : [],\n groups: groupsOrder ? groupsOrder.map((id) => groupsSelectors.getGroup(state, id)) : [],\n reports: reportsOrder ? reportsOrder.map((id) => reportsSelectors.getReport(state, id)) : [],\n images: imagesOrder ? imagesOrder.map((id) => imagesSelectors.getImage(state, id)) : [],\n sensors: sensorsOrder ? sensorsOrder.map((id) => sensorsSelectors.getSensor(state, id)) : []\n };\n } else return null;\n};\nexport const getUnitsList = (state): UnitLiveStatus[] =>\n getOwnState(state).order.map((id) => getUnit(state, id));\n\n//Status of sagas\nexport const isFetchingListUnitsLiveStatus = (state) => getOwnState(state).isFetchingLiveStatusList;\nexport const isFetchingUnitInformation = (state) => getOwnState(state).isFetchingInformation;\nexport const isFetchingUnitPositions = (state) => getOwnState(state).isFetchingPositions;\nexport const isFetchingUnitTrajectory = (state) => getOwnState(state).isFetchingTrajectory;\nexport const isAcknowledgeUnitEvent = (state) => getOwnState(state).isAcknowledgeEvent;\nexport const isFetchedUnitPosition = (state, unitId) =>\n getOwnState(state).isFetchedPosition[unitId] ?? false;\n\n//Errors\nexport const getFetchingListUnitsLiveStatusErrors = (state) =>\n getOwnState(state).errorFetchingLiveStatusList;\nexport const getFetchingUnitInformationErrors = (state) =>\n getOwnState(state).errorFetchingInformation;\n","import forEach from 'lodash/forEach';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\nimport { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport localforage from 'localforage';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport unitLiveStatus, * as selectorsUnitLiveStatus from './unitLiveStatus';\nimport deviceMetrics from './deviceMetrics';\nimport deviceActions from './deviceActions';\nimport groups from './groups';\nimport reports from './reports';\nimport images from './images';\nimport sensors from './sensors';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport { areNotNullOrUndefined } from 'utility/Utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.UNITS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.UNIT_FETCH_COMPLETED: {\n const { unit } = action.payload;\n return {\n ...state,\n [unit.unitId]: {\n ...state[unit.unitId],\n ...unit,\n isConfirmed: false,\n isShownInMap: false,\n isSelected: true\n }\n };\n }\n\n case types.UNIT_ADD_COMPLETED: {\n const { oldId, unit } = action.payload;\n const newState = omit(state, oldId);\n newState[unit.unitId] = {\n isShownInMap: false,\n ...state[oldId],\n ...unit,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.UNITS_ACTIVE_COMPLETED: {\n const units = action.payload;\n const newState = { ...state };\n units.forEach((unit) => {\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...unit,\n isConfirmed: false\n };\n });\n return newState;\n }\n\n case types.UNIT_EDIT_COMPLETED: {\n const unit = action.payload;\n return {\n ...state,\n [unit.unitId]: {\n isShownInMap: false,\n ...omit(state[unit.unitId], ['oldUnit']),\n ...omit(unit, ['oldUnit']),\n isConfirmed: true\n }\n };\n }\n\n case types.UNITS_ASSIGN_DRIVER_COMPLETED: {\n const units = action.payload;\n const newState = { ...state };\n units.forEach((unit) => {\n newState[unit.unitId] = {\n ...state[unit.unitId],\n driverId: unit.driverId\n };\n });\n return newState;\n }\n\n case types.UNIT_START_DOWNTIME_COMPLETED: {\n const { unitId, reasonId, reasonDescription } = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n downtimeReasonId: reasonId,\n downtimeReasonDescription: reasonDescription\n }\n };\n }\n\n case types.UNIT_END_DOWNTIME_COMPLETED: {\n const { unitId, mainStateId } = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n downtimeReasonId: null,\n downtimeReasonDescription: null\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.UNIT_ADD_TO_STATE: {\n const unit = action.payload;\n const newState = { ...state };\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...newState[unit.unitId],\n ...unit,\n isConfirmed: true\n };\n return newState;\n }\n case types.UNIT_ADD_STARTED: {\n const unit = action.payload;\n const newState = { ...state };\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...unit,\n isConfirmed: false\n };\n return newState;\n }\n case types.UNIT_EDIT_STARTED: {\n const unit = action.payload;\n return {\n ...state,\n [unit.unitId]: {\n isShownInMap: false,\n ...state[unit.unitId],\n oldUnit: state[unit.unitId],\n ...unit,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.UNIT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.UNIT_EDIT_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n // EDIT DEVICE\n case types.UNIT_UPDATE_DEVICE_STARTED: {\n const { unitId } = action.payload;\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n oldUnit: state[unitId],\n isConfirmed: false\n }\n };\n }\n\n case types.UNIT_UPDATE_DEVICE_COMPLETED: {\n const { unitId, deviceId, deviceModelName, deviceIdentifier, brandName } = action.payload;\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n deviceModelName: deviceModelName,\n deviceIdentifier: deviceIdentifier,\n brandName: brandName,\n deviceId,\n isConfirmed: true\n }\n };\n }\n\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n // update sim\n case types.UNIT_UPDATE_SIM_STARTED: {\n const { unitId, simId } = action.payload;\n\n const newUnit: types.ReduxUnit = {\n ...state[unitId],\n oldUnit: state[unitId],\n simCardId: simId,\n isConfirmed: false\n };\n\n return {\n ...state,\n [unitId]: newUnit\n };\n }\n\n case types.UNIT_UPDATE_SIM_COMPLETED: {\n const changes = action.payload?.changes;\n\n const unitId = changes?.unitId ?? null;\n const unitPublicId = changes?.unitPublicId ?? null;\n const simCardId = changes?.simCardId;\n const imsi = changes?.imsi ?? null;\n const cellularNumber = changes?.cellularNumber ?? null;\n const mobileOperatorId = changes?.mobileOperatorId ?? null;\n const mobileOperatorName = changes?.mobileOperatorName ?? null;\n\n if (unitId === null) {\n return {\n ...state\n };\n }\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n unitPublicId,\n simCardId,\n imsi,\n cellularNumber,\n mobileOperatorId,\n mobileOperatorName,\n isConfirmed: true\n }\n };\n }\n\n case types.UNIT_UPDATE_SIM_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.UNIT_REMOVE_COMPLETED: {\n const unitBody = action.payload;\n const newState = { ...state };\n unitBody?.units?.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n unitStatus: 0,\n unitStatusName: 'Desactivado'\n };\n });\n return newState;\n }\n\n //TYPES SHOW AND HIDE UNITS IN MAP\n case types.UNIT_SHOW_IN_MAP: {\n const unitId = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.UNIT_HIDE_IN_MAP: {\n const unitId = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n isShownInMap: false\n }\n };\n }\n\n case types.UNITS_ALL_SHOW_IN_MAP: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isShownInMap: true\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.UNITS_ALL_HIDE_IN_MAP: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isShownInMap: false\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n case types.SET_DATE_RANGE: {\n const { unitId, dateRange } = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n dateRange: dateRange\n }\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.UNIT_SELECTED: {\n const unitId = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.UNIT_DESELECTED: {\n const unitId = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n isSelected: false\n }\n };\n }\n\n case types.UNITS_ALL_SELECTED: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isSelected: true\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.UNITS_ALL_DESELECTED: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isSelected: false\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.UNITS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.UNIT_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.UNIT_ADD_COMPLETED: {\n const { oldId, unit } = action.payload;\n return state\n .map((unitId) => (unitId === oldId ? unit.unitId : unitId))\n .filter((unitId) => unitId !== null);\n }\n\n case types.UNITS_ACTIVE_COMPLETED: {\n const units = action.payload;\n return [...state, ...units.map((unit) => unit.unitId)];\n }\n\n case types.UNIT_REMOVE_COMPLETED: {\n const unitBody = action.payload;\n //return state.filter((unitIdState) => unitBody.units.map((unitId) => unitIdState !== unitId));\n return state;\n }\n\n case types.UNIT_ADD_TO_STATE: {\n const unit = action.payload;\n return [...state.filter((unitId) => unitId !== unit.unitId), unit.unitId];\n }\n\n //CASE ADD STARTED\n case types.UNIT_ADD_STARTED: {\n const unit = action.payload;\n return [...state, unit.unitId];\n }\n\n //CASE ADD FAILED\n case types.UNIT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((unitIdState) => unitIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_FETCH_COMPLETED:\n case types.UNITS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingUnit = (state = false, action) => {\n switch (action.type) {\n case types.UNIT_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_FETCH_COMPLETED:\n case types.UNIT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_PARTIAL_FETCH_COMPLETED:\n case types.UNITS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_ADD_STARTED: {\n return true;\n }\n case types.UNIT_ADD_COMPLETED:\n case types.UNIT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingDevice = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_UPDATE_DEVICE_STARTED: {\n return true;\n }\n case types.UNIT_UPDATE_DEVICE_COMPLETED:\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingSimCard = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_UPDATE_SIM_STARTED: {\n return true;\n }\n case types.UNIT_UPDATE_SIM_COMPLETED:\n case types.UNIT_UPDATE_SIM_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_ACTIVE_STARTED: {\n return true;\n }\n case types.UNITS_ASSIGN_DRIVER_STARTED:\n case types.UNIT_EDIT_STARTED: {\n return true;\n }\n case types.UNITS_ACTIVE_COMPLETED:\n case types.UNIT_EDIT_COMPLETED:\n case types.UNITS_ASSIGN_DRIVER_COMPLETED:\n case types.UNITS_ACTIVE_FAILED:\n case types.UNIT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingDowntime = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_START_DOWNTIME_STARTED:\n case types.UNIT_END_DOWNTIME_STARTED: {\n return true;\n }\n case types.UNIT_START_DOWNTIME_COMPLETED:\n case types.UNIT_START_DOWNTIME_FAILED:\n case types.UNIT_END_DOWNTIME_COMPLETED:\n case types.UNIT_END_DOWNTIME_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_REMOVE_STARTED: {\n return true;\n }\n case types.UNIT_REMOVE_COMPLETED:\n case types.UNIT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCreatingSharedLink = (state = false, action) => {\n switch (action.type) {\n case types.UNIT_CREATE_SHARE_LINK_STARTED: {\n return true;\n }\n case types.UNIT_CREATE_SHARE_LINK_COMPLETED:\n case types.UNIT_CREATE_SHARE_LINK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sharedLink = (state = '', action) => {\n switch (action.type) {\n case types.UNIT_CLEAR_SHARE_LINK:\n case types.UNIT_CREATE_SHARE_LINK_FAILED:\n case types.UNIT_CREATE_SHARE_LINK_STARTED: {\n return '';\n }\n case types.UNIT_CREATE_SHARE_LINK_COMPLETED: {\n return action.payload;\n }\n default: {\n return state;\n }\n }\n};\n\nconst oldMainStateIds = (state = [], action) => {\n switch (action.type) {\n case types.UNIT_END_DOWNTIME_FAILED:\n case types.UNIT_END_DOWNTIME_STARTED: {\n return [];\n }\n case types.UNIT_END_DOWNTIME_COMPLETED: {\n return [\n {\n unitId: action.payload?.unitId,\n mainStateId: action.payload?.mainStateId,\n mainStateDate: action.payload?.mainStateDate\n }\n ];\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_FETCH_STARTED:\n case types.UNITS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_PARTIAL_FETCH_STARTED:\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_ADD_STARTED:\n case types.UNIT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorUpdatingDevice = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_UPDATE_DEVICE_STARTED:\n case types.UNIT_UPDATE_DEVICE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_EDIT_STARTED:\n case types.UNIT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_REMOVE_STARTED:\n case types.UNIT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst units: any = combineReducers({\n byId,\n order,\n unitLiveStatus,\n deviceMetrics,\n deviceActions,\n groups,\n reports,\n images,\n sensors,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isEditingDowntime,\n isRemoving,\n isCreatingSharedLink,\n sharedLink,\n oldMainStateIds,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched,\n errorUpdatingDevice,\n isUpdatingDevice,\n isFetchingUnit,\n isUpdatingSimCard\n});\n\nconst unitsPersistedConfig = {\n key: 'units',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'deviceMetrics',\n 'deviceActions',\n 'groups',\n 'reports',\n 'images',\n 'sensors',\n 'isPartialFetchingList',\n 'isFetchingList',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isCreatingSharedLink',\n 'sharedLink',\n 'errorPartialFetchingList',\n 'errorFetchingList',\n 'errorAdding',\n 'errorEditing',\n 'errorRemoving',\n 'hasAlreadyFetched'\n ],\n whitelist: ['byId', 'order', 'unitLiveStatus']\n // blackList: [],\n};\nexport default persistReducer(unitsPersistedConfig, units);\n\n//Own state\nexport const getOwnState = (state) => state.units;\n\nexport const isCreatingSharedLinkUnit = (state) => getOwnState(state).isCreatingSharedLink;\n\nexport const sharedLinkUnit = (state) => getOwnState(state).sharedLink;\n\nexport const oldUnitMainStateIds = (state) => getOwnState(state).oldMainStateIds;\n\n//Information\nexport const getUnit = (state, unitId): types.ReduxUnit | undefined => {\n const unit = getOwnState(state).byId[unitId];\n if (unit) {\n const operator = unit.operatorId\n ? operatorSelectors.getOperator(state, unit.operatorId)\n : undefined;\n const organization = unit.organizationId\n ? organizationSelectors.getOrganization(state, unit.organizationId)\n : undefined;\n const division = unit.divisionId\n ? divisionSelectors.getDivision(state, unit.divisionId)\n : undefined;\n const subdivision = unit.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, unit.subdivisionId)\n : undefined;\n const unitLiveStatus = unit.unitId ? getUnitLiveStatus(state, unit.unitId) : {};\n return {\n ...unit,\n ...unitLiveStatus,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getUnitsList = (state): types.ReduxUnit[] =>\n getOwnState(state).order.map((id) => getUnit(state, id));\nexport const getUnitsSpecificList = (state, list) => list.map((id) => getUnit(state, id));\nexport const getActiveUnitsList = (state) =>\n getOwnState(state)\n .order.map((id) => getUnit(state, id))\n .filter((unit) => unit.unitStatus > 0);\nexport const getActiveUnitsListByMembership = (state, membership) => {\n return getUnitsList(state).filter(\n (unit) =>\n membership &&\n (!membership.operatorId || membership.operatorId === unit.operatorId) &&\n (!membership.organizationId || membership.organizationId === unit.organizationId) &&\n (!membership.divisionId || membership.divisionId === unit.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === unit.subdivisionId) &&\n unit.unitStatus > 0\n );\n};\nexport const getActiveUnitsListByPartialMembership = (state, membership: DefaultFilters) => {\n if (Object.values(membership).length < 0 || areNotNullOrUndefined(...Object.values(membership))) {\n return [];\n }\n\n const useOperator = !!membership.operatorId;\n const useOrganization = !!membership?.organizationId;\n const useDivision = !!membership.divisionId;\n const useSubdivision = !!membership.subdivisionId;\n\n const filterUnit = (unit: types.ReduxUnit) => {\n if (useOperator) {\n const validOrganization = unit.operatorId === membership.operatorId;\n if (!validOrganization) return false;\n }\n\n if (useOrganization) {\n const validOrganization = unit.organizationId === membership.organizationId;\n if (!validOrganization) return false;\n }\n\n if (useDivision) {\n const validDivision = unit.divisionId === membership.divisionId;\n if (!validDivision) return false;\n }\n\n if (useSubdivision) {\n const validSubdivision = unit.subdivisionId === membership.subdivisionId;\n if (!validSubdivision) return false;\n }\n\n const isActive = unit.unitStatus > 0;\n\n return isActive;\n };\n\n return getUnitsList(state).filter(filterUnit);\n};\nexport const getSelectedUnits = (state) => {\n const selectedUnits = getUnitsList(state).filter((unit) => unit.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedUnits.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedUnits.length > 0) return selectedUnits;\n};\nexport const getUnitByPrivateCode = (state: any, privateCode: string) => {\n const unit = getUnitsList(state).find((unit) => unit?.privateCode === privateCode);\n if (unit) {\n const operator = unit.operatorId\n ? operatorSelectors.getOperator(state, unit.operatorId)\n : undefined;\n const organization = unit.organizationId\n ? organizationSelectors.getOrganization(state, unit.organizationId)\n : undefined;\n const division = unit.divisionId\n ? divisionSelectors.getDivision(state, unit.divisionId)\n : undefined;\n const subdivision = unit.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, unit.subdivisionId)\n : undefined;\n const unitLiveStatus = unit.unitId ? getUnitLiveStatus(state, unit.unitId) : {};\n return {\n ...unit,\n ...unitLiveStatus,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getUnitByIdOrPrivateCode = (state: any, unitId: number, privateCode: string) => {\n if (unitId !== null && unitId !== undefined) {\n const unit = getUnit(state, unitId);\n if (unit) return { ...unit, privateCode: unit?.privateCode ?? '' };\n }\n\n if (\n privateCode !== null &&\n privateCode !== undefined &&\n privateCode !== '' &&\n !/^\\s*$/.test(privateCode)\n ) {\n const unit = getUnitByPrivateCode(state, privateCode);\n if (unit) return { ...unit };\n }\n};\n\nexport const getSelectedUnit = (state) => {\n const selectedUnits = getUnitsList(state).filter((unit) => unit.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedUnits.length === 1) return selectedUnits[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListUnits = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListUnits = (state) => getOwnState(state).isFetchingList;\nexport const haveUnitsBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingUnit = (state) => getOwnState(state).isAdding;\nexport const isEditingUnit = (state) => getOwnState(state).isEditing;\nexport const isEditingUnitDowntime = (state) => getOwnState(state).isEditingDowntime;\nexport const isRemovingUnit = (state) => getOwnState(state).isRemoving;\nexport const isFetchingUnitById = (state) => getOwnState(state).isFetchingUnit;\nexport const isEditingSimCard = (state) => getOwnState(state).isUpdatingSimCard;\nexport const isEditingDevice = (state) => getOwnState(state).isUpdatingDevice;\n\n//Errors\nexport const getPartialFetchingListUnitsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListUnitsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingUnitErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingUnitErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingUnitErrors = (state) => getOwnState(state).errorRemoving;\n\n/* -------------------------------------------------------------------------- */\n/* UNIT LIVE STATUS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getUnitLiveFetchDate = (state, organizationId) =>\n selectorsUnitLiveStatus.getFetchDate(state, organizationId);\nexport const getUnitLiveStatus = (state, unitId) => selectorsUnitLiveStatus.getUnit(state, unitId);\nexport const getUnitsLiveStatusList = (state) => selectorsUnitLiveStatus.getUnitsList(state);\n\n//Status of sagas\nexport const isFetchingListUnitsLiveStatus = (state) =>\n selectorsUnitLiveStatus.isFetchingListUnitsLiveStatus(state);\nexport const isFetchingUnitInformation = (state) =>\n selectorsUnitLiveStatus.isFetchingUnitInformation(state);\nexport const isFetchingUnitPositions = (state) =>\n selectorsUnitLiveStatus.isFetchingUnitPositions(state);\nexport const isAcknowledgeUnitEvent = (state) =>\n selectorsUnitLiveStatus.isAcknowledgeUnitEvent(state);\nexport const isFetchedUnitPosition = (state, unitId) =>\n selectorsUnitLiveStatus.isFetchedUnitPosition(state, unitId);\nexport const isFetchingUnitTrajectory = (state) =>\n selectorsUnitLiveStatus.isFetchingUnitTrajectory(state);\n\n//Errors\nexport const getFetchingListUnitsLiveStatusErrors = (state) =>\n selectorsUnitLiveStatus.getFetchingListUnitsLiveStatusErrors(state);\nexport const getFetchingUnitInformationErrors = (state) =>\n selectorsUnitLiveStatus.getFetchingUnitInformationErrors(state);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/unit';\n\ninterface UnitFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n}\n\ninterface DeviceActionParametersRequest {\n unitId: number;\n deviceActionId: number;\n}\n\ninterface HistoricalPositionsReportRequest {\n unitId: number;\n reportType: number | undefined;\n startDate: Date | string;\n endDate: Date | string;\n idleSpeed: number | undefined;\n}\n\ninterface PublicUnitHistoricalPositionsRequest {\n token: string;\n sharedLinkId: number;\n unitId: number;\n routeAssignmentId: number;\n startDate: Date | string;\n endDate: Date | string;\n}\n\ninterface UnitTrajectoryRequest {\n unitId: number;\n limit: number | undefined;\n}\n\ninterface ExecuteDeviceActionRequest {\n unitId: number;\n deviceActionId: number;\n parameters: string;\n}\n\ninterface UnitInformation {\n unitId?: number;\n startDate?: string;\n endDate?: string;\n}\n\ninterface FleetFilters {\n unitName?: string;\n deviceIdentifier?: string;\n membership?: any;\n brandId?: number;\n}\ninterface DeviceActionsRequest {\n unitId: number;\n}\n\ninterface ChangeUnitSubState {\n unitId: number;\n subStateId: number;\n}\n\ninterface RouteAssignments {\n unitId: number;\n}\ninterface SharedLinkUnitRequest {\n sharedLinkId: number;\n token: string;\n}\n\nexport const getUnitsListService = (request: UnitFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getDisabledUnitsListService = (request: UnitFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDisabled`, request);\n};\n\nexport const changeUnitSubState = (\n request: ChangeUnitSubState,\n customMessage,\n customMessageError,\n configActions?: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessage,\n customMessageError,\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n //httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/ChangeUnitSubState`, request);\n};\n\nexport const getRouteAssignments = (request: RouteAssignments, configActions?: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getRouteAssignments`, request);\n};\n\nexport const getFleetService = (request: FleetFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getFleet`, request);\n};\n\nexport const getUnitsLiveStatusListService = (\n request: UnitFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitsLiveStatus`, request);\n};\n\nexport const getUnitInformationService = (\n request: UnitInformation,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'SingularFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitInformation`, request);\n};\n\nexport const getUnitDeviceActionParametersService = (request: DeviceActionParametersRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.parametersFetchErrorMessage'\n })\n });\n return httpWebtrack.post(`${baseUrl}/getUnitDeviceActionParameters`, request);\n};\nexport const getUnitDeviceActionsService = (\n request: DeviceActionsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.parametersFetchErrorMessage'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitDeviceActions`, request);\n};\n\nexport const getUnitHistoricalPositionsReportService = (\n request: HistoricalPositionsReportRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.unitHistoricalPositionsErrorMessage'\n })\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitPositionHistory`, request);\n};\n\nexport const getPublicUnitHistoricalPositionsReportService = (\n request: PublicUnitHistoricalPositionsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.unitHistoricalPositionsErrorMessage'\n })\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getPublicUnitPositionHistory`, request);\n};\n\nexport const getUnitTrajectoryService = (\n request: UnitTrajectoryRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.unitTrajectoryErrorMessage'\n })\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitTrajectory`, request);\n};\n\nexport const executeDeviceActionService = (\n request: ExecuteDeviceActionRequest,\n configActions?: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'units.executeDeviceActionMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'units.executeDeviceActionErrorMessage'\n })\n });\n if (configActions) {\n httpWebtrack.setConfigActions(configActions);\n }\n return httpWebtrack.post(`${baseUrl}/executeDeviceAction`, request);\n};\n\nexport const acknowledgeUnitEventService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/acknowledgeEvent`, request);\n};\n\nexport const getUnitRunningTimeByHour = (\n request: UnitInformation,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'reports.reports',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitRunningTimeByHour`, request);\n};\n\nexport const getUnitScriptHistory = (request: UnitInformation, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'reports.reports',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitScriptHistory`, request);\n};\n\nexport const getUnitTemperatureHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getTemperatureSensorReport`, request);\n};\n\nexport const getUnitFuelHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getFuelSensorReportPro`, request);\n};\n\nexport const getAssetFuelHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAssetFuelSensorReport`, request);\n};\n\nexport const getUnitFuelSamples = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelSamples`, request);\n};\n\nexport const getUnitFuelInformation = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelInformation`, request);\n};\n\nexport const getUnitFuelEvents = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelEvents`, request);\n};\n\nexport const getDowntimeBinnacleService = (\n request: UnitInformation,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDowntimeBinnacle`, request);\n};\n\nexport const getUserAssignedUnits = (\n request: { userIdRequest: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUserAssignedUnits`, request);\n};\n\nexport const removeUserAssignedUnits = (\n request: { userIdRequest: number; unitsIds: number[] },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removeUserAssignedUnits`, request);\n};\n\nexport const addUserAssignedUnits = (\n request: { userIdRequest: number; unitIds: number[] },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addUserAssignedUnits`, request);\n};\n\nexport const updateOdometer = (\n request: { unitId: number; newOdometer: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateOdometer`, request);\n};\n\nexport const updateHourmeter = (\n request: { unitId: number; newHourmeter: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateHourmeter`, request);\n};\n\nexport const updateDeviceService = (\n request: { unitId: number; deviceId: number | null },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.trackingUnit',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateDevice`, request);\n};\n\nexport const updateSimCardService = (\n request: { unitId: number; simCard: number | null },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.trackingUnit',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateSimCard`, request);\n};\n\nexport const getUnitsListByFiltersService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getByFilters`, request);\n};\n\nexport const getUnitByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n\nexport const getUnitAssetsService = (\n request: DeviceActionsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitAssets`, request);\n};\n\nexport const getUnitScriptsSerivice = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'reports.reports',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitScripts`, request);\n};\n\nexport const insertUnitScriptService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.sendScripts',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/sendScript`, request);\n};\n\nexport const getSharedLinkUnitService = (\n request: SharedLinkUnitRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getSharedLinkUnit`, request);\n};\n\nexport const getUnitSpecialFunctionsService = (\n request: DeviceActionsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitSpecialFunctions`, request);\n};\n\nexport const getSpecialFunctionsDropdownService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getSpecialFunctions`, request);\n};\n\nexport const updateUnitSpecialFunctionService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignSpecialFunction`, request);\n};\n\nexport const deleteUnitSpecialFunctionService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteSpecialFunction`, request);\n};\n","import * as types from '../types';\n\nexport const startFetchingQuotations = (filters = {}) => ({\n type: types.QUOTATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingQuotations = (entities, order, operatorId, organizationId) => ({\n type: types.QUOTATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingQuotations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.QUOTATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingQuotations = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n allowNullOrganizationId\n) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId, allowNullOrganizationId }\n});\nexport const completePartialFetchingQuotations = (entities, order, operatorId, organizationId) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingQuotations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingQuotation = (quotation, isSelected = false) => ({\n type: types.QUOTATIONS_ADD_STARTED,\n payload: { quotation, isSelected }\n});\nexport const completeAddingQuotation = (oldId, quotation) => ({\n type: types.QUOTATIONS_ADD_COMPLETED,\n payload: { oldId, quotation }\n});\nexport const failAddingQuotation = (oldId, error) => ({\n type: types.QUOTATIONS_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingQuotation = (quotation) => ({\n type: types.QUOTATIONS_EDIT_STARTED,\n payload: quotation\n});\nexport const completeEditingQuotation = (quotation) => ({\n type: types.QUOTATIONS_EDIT_COMPLETED,\n payload: quotation\n});\nexport const failEditingQuotation = (oldQuotation, error) => ({\n type: types.QUOTATIONS_EDIT_FAILED,\n payload: {\n oldQuotation,\n error\n }\n});\n\nexport const startSchedulingQuotation = (quotation) => ({\n type: types.QUOTATIONS_SCHEDULE_STARTED,\n payload: quotation\n});\nexport const completeSchedulingQuotation = (quotation) => ({\n type: types.QUOTATIONS_SCHEDULE_COMPLETED,\n payload: quotation\n});\nexport const failSchedulingQuotation = (error) => ({\n type: types.QUOTATIONS_EDIT_FAILED,\n payload: {\n error\n }\n});\n\nexport const startCheckingQuotationScheduling = (quotationId, quotationLink) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_STARTED,\n payload: { quotationId, quotationLink }\n});\nexport const completeCheckingQuotationScheduling = (quotation) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED,\n payload: quotation\n});\nexport const failCheckingQuotationScheduling = (error) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_FAILED,\n payload: { error }\n});\n\nexport const startApprovingDenyingQuotationManagement = (quotation) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED,\n payload: quotation\n});\nexport const completeApprovingDenyingQuotationManagement = (quotation) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED,\n payload: quotation\n});\nexport const failApprovingDenyingQuotationManagement = (error) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAcceptingDenyingQuotationCustomer = (quotation) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED,\n payload: quotation\n});\nexport const completeAcceptingDenyingQuotationCustomer = (quotation) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED,\n payload: quotation\n});\nexport const failAcceptingDenyingQuotationCustomer = (error) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED,\n payload: {\n error\n }\n});\n\nexport const startSettingTimesupQuotation = (quotation, showAlerts = true) => ({\n type: types.QUOTATIONS_SET_TIMESUP_STARTED,\n payload: { quotation, showAlerts }\n});\nexport const completeSettingTimesupQuotation = (quotation) => ({\n type: types.QUOTATIONS_SET_TIMESUP_COMPLETED,\n payload: quotation\n});\nexport const failSettingTimesupQuotation = (error) => ({\n type: types.QUOTATIONS_SET_TIMESUP_FAILED,\n payload: {\n error\n }\n});\n\nexport const startRemovingQuotation = (quotationId) => ({\n type: types.QUOTATIONS_REMOVE_STARTED,\n payload: {\n quotationId\n }\n});\nexport const completeRemovingQuotation = (quotationId) => ({\n type: types.QUOTATIONS_REMOVE_COMPLETED,\n payload: {\n quotationId\n }\n});\nexport const failRemovingQuotation = (quotationId, error) => ({\n type: types.QUOTATIONS_REMOVE_FAILED,\n payload: {\n quotationId,\n error\n }\n});\n\nexport const changeQuotationOrganization = (quotation, organization) => ({\n type: types.QUOTATIONS_SELECTED,\n payload: { quotation, organization }\n});\n\nexport const selectQuotation = (quotationId) => ({\n type: types.QUOTATIONS_SELECTED,\n payload: quotationId\n});\n\nexport const selectAllQuotations = (\n quotationIds = [] //List of quotationIds\n) => ({\n type: types.QUOTATIONS_ALL_SELECTED,\n payload: quotationIds\n});\n\nexport const deselectQuotation = (quotationId) => ({\n type: types.QUOTATIONS_DESELECTED,\n payload: quotationId\n});\n\nexport const deselectAllQuotations = (\n quotationIds = [] //List of quotationIds\n) => ({\n type: types.QUOTATIONS_ALL_DESELECTED,\n payload: quotationIds\n});\n\nexport const startCopyingQuotation = (quotation) => ({\n type: types.QUOTATION_COPY_STARTED,\n payload: { quotation }\n});\nexport const completeCopyingQuotation = (quotation) => ({\n type: types.QUOTATION_COPY_COMPLETED,\n payload: { quotation }\n});\nexport const failCopyingQuotation = (quotationId, error) => ({\n type: types.QUOTATION_COPY_FAILED,\n payload: {\n quotationId,\n error\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingSchedules = (filters = {}) => ({\n type: types.SCHEDULES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingSchedules = (entities, order) => ({\n type: types.SCHEDULES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingSchedules = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SCHEDULES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSchedules = (entityTypeId) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingSchedules = (entities, order) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingSchedules = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSchedule = (schedule) => ({\n type: types.SCHEDULE_ADD_STARTED,\n payload: schedule\n});\nexport const completeAddingSchedule = (oldId, schedule) => ({\n type: types.SCHEDULE_ADD_COMPLETED,\n payload: { oldId, schedule }\n});\nexport const failAddingSchedule = (oldId, error) => ({\n type: types.SCHEDULE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startAddingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_ADD_STARTED,\n payload: schedule\n});\nexport const completeAddingShift = (oldId, schedule) => ({\n type: types.SCHEDULE_SHIFT_ADD_COMPLETED,\n payload: { oldId, schedule }\n});\nexport const failAddingShift = (oldId, error) => ({\n type: types.SCHEDULE_SHIFT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSchedule = (schedule) => ({\n type: types.SCHEDULE_EDIT_STARTED,\n payload: schedule\n});\nexport const completeEditingSchedule = (schedule) => ({\n type: types.SCHEDULE_EDIT_COMPLETED,\n payload: schedule\n});\nexport const failEditingSchedule = (oldSchedule, error) => ({\n type: types.SCHEDULE_EDIT_FAILED,\n payload: {\n oldSchedule,\n error\n }\n});\nexport const startEditingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_EDIT_STARTED,\n payload: schedule\n});\nexport const completeEditingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_EDIT_COMPLETED,\n payload: schedule\n});\nexport const failEditingShift = (oldSchedule, error) => ({\n type: types.SCHEDULE_SHIFT_EDIT_FAILED,\n payload: {\n oldSchedule,\n error\n }\n});\n\nexport const startRemovingSchedule = (scheduleId) => ({\n type: types.SCHEDULE_REMOVE_STARTED,\n payload: {\n scheduleId\n }\n});\nexport const completeRemovingSchedule = (scheduleId) => ({\n type: types.SCHEDULE_REMOVE_COMPLETED,\n payload: {\n scheduleId\n }\n});\nexport const failRemovingSchedule = (scheduleId, error) => ({\n type: types.SCHEDULE_REMOVE_FAILED,\n payload: {\n scheduleId,\n error\n }\n});\n\nexport const selectSchedule = (scheduleId) => ({\n type: types.SCHEDULE_SELECTED,\n payload: scheduleId\n});\n\nexport const selectAllSchedules = (\n scheduleIds = [] //List of ScheduleIds\n) => ({\n type: types.SCHEDULES_ALL_SELECTED,\n payload: scheduleIds\n});\n\nexport const deselectSchedule = (scheduleId) => ({\n type: types.SCHEDULE_DESELECTED,\n payload: scheduleId\n});\n\nexport const deselectAllSchedules = (\n scheduleIds = [] //List of ScheduleIds\n) => ({\n type: types.SCHEDULES_ALL_DESELECTED,\n payload: scheduleIds\n});\n","const permissions = {\n //permisos catalogos\n sparepartsCatalog: 'MV006',\n workshopCatalog: 'MV005',\n categoriesCatalog: 'MV024',\n providersCatalog: 'MV020',\n\n //permisos add\n addSpareparts: 'MV012',\n addWorkshop: 'MV015',\n addCategories: 'MV025',\n addProviders: 'MV021',\n\n //permisos edit\n editSpareparts: 'MV013',\n editWorkshop: 'MV016',\n editCategories: 'MV026',\n editProviders: 'MV022',\n\n //permisos remove\n removeSpareparts: 'MV014',\n removeWorkshop: 'MV017',\n removeCategories: 'MV027',\n removeProviders: 'MV023',\n\n //reportes\n generalReport: 'MV003',\n byCategoryReport: 'MV006',\n byUnitReport: 'MV006',\n byWorkShopReport: 'MV006',\n\n //tickets\n importTicket: 'MV002',\n addTickets: 'MV032',\n\n //maintenanceLines\n maintenanceLines: 'MV028',\n maintenanceLineAdd: 'MV029',\n maintenanceLineEdit: 'MV030',\n maintenanceLineRemove: 'MV031',\n\n //preventiveNotices\n preventiveNotices: 'MV007',\n addPreventiveNotices: 'MV008',\n editPreventiveNotices: 'MV009',\n removePreventiveNotices: 'MV011',\n reschedulePreventiveNotice: 'MV010',\n totalNotices: 'MV006',\n expiredNotices: 'MV006',\n activeNotices: 'MV006'\n};\n\nexport default permissions;\n","export const COUNTRIES_FETCH_STARTED = 'COUNTRIES_FETCH_STARTED';\nexport const COUNTRIES_FETCH_COMPLETED = 'COUNTRIES_FETCH_COMPLETED';\nexport const COUNTRIES_FETCH_FAILED = 'COUNTRIES_FETCH_FAILED';\n\nexport const COUNTRIES_PARTIAL_FETCH_STARTED = 'COUNTRIES_PARTIAL_FETCH_STARTED';\nexport const COUNTRIES_PARTIAL_FETCH_COMPLETED = 'COUNTRIES_PARTIAL_FETCH_COMPLETED';\nexport const COUNTRIES_PARTIAL_FETCH_FAILED = 'COUNTRIES_PARTIAL_FETCH_FAILED';\n\nexport const COUNTRY_FETCH_STARTED = 'COUNTRY_FETCH_STARTED';\nexport const COUNTRY_FETCH_COMPLETED = 'COUNTRY_FETCH_COMPLETED';\nexport const COUNTRY_FETCH_FAILED = 'COUNTRY_FETCH_FAILED';\n\nexport const COUNTRY_SELECTED = 'COUNTRY_SELECTED';\nexport const COUNTRIES_ALL_SELECTED = 'COUNTRIES_ALL_SELECTED';\nexport const COUNTRY_DESELECTED = 'COUNTRY_DESELECTED';\nexport const COUNTRIES_ALL_DESELECTED = 'COUNTRIES_ALL_DESELECTED';\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED IMPORT\n case types.LOCATIONS_IMPORT_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((id) => {\n newState[id] = {\n isSelected: false,\n isShownInMap: false,\n ...state[id],\n ...entities[id],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED IMPORT\n case types.LOCATIONS_IMPORT_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst isImporting = (state = false, action) => {\n switch (action.type) {\n case types.LOCATIONS_IMPORT_STARTED: {\n return true;\n }\n case types.LOCATIONS_IMPORT_COMPLETED:\n case types.LOCATIONS_IMPORT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorImporting = (state = null, action) => {\n switch (action.type) {\n case types.LOCATIONS_IMPORT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_IMPORT_STARTED:\n case types.LOCATIONS_IMPORT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst importedLocations = combineReducers({\n byId,\n order,\n isImporting,\n errorImporting\n});\n\nexport default importedLocations;\n// export default locations;\n\n//Own state\nexport const getOwnState = (state) => state.locations.importedLocations;\n\n//Information\nexport const getLocation = (state, id) => getOwnState(state).byId[id];\n\nexport const getLocationsList = (state) =>\n getOwnState(state).order.map((id) => getLocation(state, id));\n\n//Status of sagas\nexport const isImportingLocations = (state) => getOwnState(state).isImporting;\n\n//Errors\nexport const getImportingLocationsErrors = (state) => getOwnState(state).errorImporting;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport importedLocations, * as importedLocationsSelectors from './importedLocations';\nimport * as officeSelectors from 'views/screens/Offices/reducers';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.LOCATIONS_FETCH_COMPLETED: {\n const { entities, order, showInMap, restartState } = action.payload;\n const newState = restartState ? {} : { ...state };\n order.forEach((locationId) => {\n newState[locationId] = {\n isSelected: false,\n isShownInMap: showInMap,\n ...state[locationId],\n ...entities[locationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.LOCATION_FETCH_COMPLETED: {\n const { location } = action.payload;\n return {\n ...state,\n [location.locationId]: {\n ...state[location.locationId],\n ...location,\n isConfirmed: false,\n isShownInMap: false,\n isSelected: true\n }\n };\n }\n\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((locationId) => {\n newState[locationId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[locationId],\n ...entities[locationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.LOCATION_ADD_COMPLETED: {\n const { oldId, location } = action.payload;\n const newState = omit(state, oldId);\n newState[location.locationId] = {\n isShownInMap: false,\n ...state[oldId],\n ...location,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.LOCATION_EDIT_COMPLETED: {\n const location = action.payload;\n return {\n ...state,\n [location.locationId]: {\n isShownInMap: false,\n ...omit(state[location.locationId], ['oldLocation']),\n ...omit(location, ['oldLocation']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.LOCATION_ADD_STARTED: {\n const location = action.payload;\n const newState = { ...state };\n newState[location.locationId] = {\n isShownInMap: false,\n isSelected: false,\n ...location,\n isConfirmed: false\n };\n return newState;\n }\n case types.LOCATION_EDIT_STARTED: {\n const location = action.payload;\n return {\n ...state,\n [location.locationId]: {\n isShownInMap: false,\n ...state[location.locationId],\n oldLocation: state[location.locationId],\n ...omit(location, 'isShownInMap'),\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.LOCATION_EDIT_FAILED: {\n const { oldLocation } = action.payload;\n return {\n ...state,\n [oldLocation.locationId]: {\n isShownInMap: false,\n ...omit(state[oldLocation.locationId], ['oldLocation']),\n ...oldLocation,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.LOCATION_REMOVE_COMPLETED: {\n const { locationId } = action.payload;\n return omit(state, locationId);\n }\n\n //TYPES SHOW AND HIDE LOCATIONS IN MAP\n case types.LOCATION_SHOW_IN_MAP: {\n const locationId = action.payload;\n const newState = {\n ...state,\n [locationId]: {\n ...state[locationId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.LOCATION_HIDE_IN_MAP: {\n const locationId = action.payload;\n return {\n ...state,\n [locationId]: {\n ...state[locationId],\n isShownInMap: false\n }\n };\n }\n\n case types.LOCATIONS_ALL_SHOW_IN_MAP: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isShownInMap: true\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.LOCATIONS_ALL_HIDE_IN_MAP: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isShownInMap: false\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.LOCATION_SELECTED: {\n const locationId = action.payload;\n const newState = {\n ...state,\n [locationId]: {\n ...state[locationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.LOCATION_DESELECTED: {\n const locationId = action.payload;\n return {\n ...state,\n [locationId]: {\n ...state[locationId],\n isSelected: false\n }\n };\n }\n\n case types.LOCATIONS_ALL_SELECTED: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isSelected: true\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.LOCATIONS_ALL_DESELECTED: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isSelected: false\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.LOCATIONS_FETCH_COMPLETED: {\n const { order, restartState } = action.payload;\n return restartState ? union(order) : uniq([...state, ...order]);\n }\n\n case types.LOCATION_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.LOCATION_ADD_COMPLETED: {\n const { oldId, location } = action.payload;\n return state.map((locationId) => (locationId === oldId ? location.locationId : locationId));\n }\n\n case types.LOCATION_REMOVE_COMPLETED: {\n const { locationId } = action.payload;\n return state.filter((locationIdState) => locationIdState !== locationId);\n }\n\n //CASE ADD STARTED\n case types.LOCATION_ADD_STARTED: {\n const location = action.payload;\n return [...state, location.locationId];\n }\n\n //CASE ADD FAILED\n case types.LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((locationIdState) => locationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_FETCH_STARTED: {\n return true;\n }\n case types.LOCATIONS_FETCH_COMPLETED:\n case types.LOCATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingLocation = (state = false, action) => {\n switch (action.type) {\n case types.LOCATION_FETCH_STARTED: {\n return true;\n }\n case types.LOCATION_FETCH_COMPLETED:\n case types.LOCATION_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED:\n case types.LOCATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_ADD_STARTED: {\n return true;\n }\n case types.LOCATION_ADD_COMPLETED:\n case types.LOCATION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_EDIT_STARTED: {\n return true;\n }\n case types.LOCATION_EDIT_COMPLETED:\n case types.LOCATION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_REMOVE_STARTED: {\n return true;\n }\n case types.LOCATION_REMOVE_COMPLETED:\n case types.LOCATION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_FETCH_STARTED:\n case types.LOCATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_PARTIAL_FETCH_STARTED:\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_ADD_STARTED:\n case types.LOCATION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_EDIT_STARTED:\n case types.LOCATION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_REMOVE_STARTED:\n case types.LOCATION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst locations: any = combineReducers({\n byId,\n order,\n importedLocations,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched,\n isFetchingLocation\n});\n\nconst locationsPersistedConfig = {\n key: 'locations',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'importedLocations',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isFetchingList',\n 'isPartialFetchingList'\n ],\n whitelist: ['byId', 'order']\n // blackList: [],\n};\n\nexport default persistReducer(locationsPersistedConfig, locations);\n// export default locations;\n\n//Own state\nexport const getOwnState = (state) => state.locations;\n\n//Information\nexport const getLocation = (state, locationId) => {\n return getOwnState(state).byId[locationId];\n};\n\nexport const getLocationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getLocation(state, id))\n .filter((location) => location.locationStatus > 0);\n\nexport const getLocationByPrivateCode = (state, privateCode) => {\n const location = getOwnState(state)\n .order.map((id) => getLocation(state, id))\n .find((location) => location.privateCode === privateCode);\n\n return location || undefined;\n};\n\nexport const getLocationByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n return getLocationsListByMembership(state, membership).find(\n (location) => location?.privateCode === privateCode\n );\n};\n\nexport const getLocationByGooglePlaceId = (state, googlePlaceId) => {\n if (googlePlaceId) {\n const locationsList = getLocationsList(state).filter(\n (location) => location?.googleLocation?.googlePlaceId == googlePlaceId\n );\n if (locationsList.length === 1) return locationsList[0];\n }\n return undefined;\n};\n\nexport const getLocationsListByOrganization = (state, organizationId) =>\n organizationId != null\n ? getLocationsList(state).filter((location) => location.organizationId == organizationId)\n : getLocationsList(state);\n\nexport const getLocationsListByLocationClassId = (state, locationClassId) =>\n locationClassId != null\n ? getLocationsList(state).filter((location) => location.locationClassId == locationClassId)\n : getLocationsList(state);\n\nexport const getLocationsListByMembership = (state, membership) => {\n //Se filtra por membership\n return getLocationsList(state).filter(\n (location) =>\n membership &&\n (!membership.operatorId || membership.operatorId === location.operatorId) &&\n (!membership.organizationId || membership.organizationId === location.organizationId) &&\n (!membership.divisionId || membership.divisionId === location.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === location.subdivisionId) &&\n (!membership.groupId ||\n location.groups?.split(',').includes(String(membership.groupId)) ||\n membership.groupId + '' === location.groups)\n );\n};\n\nexport const getLocationsListByMapBounds = (state, bounds) => {\n return getLocationsList(state).filter(\n (location) =>\n bounds &&\n location.latitude >= bounds.minLat &&\n location.latitude <= bounds.maxLat &&\n location.longitude >= bounds.minLng &&\n location.longitude <= bounds.maxLng\n );\n};\n\nexport const getLocationOffice = (state, locationId, useOnlyOffices) => {\n const location = getOwnState(state).byId[locationId];\n if (location) {\n const office = officeSelectors.getOffice(state, location.officeId) ?? {};\n if (!useOnlyOffices || office?.officeId)\n return {\n ...location,\n ...omit(office, ['privateCode', 'isConfirmed', 'isSelected']),\n officePrivateCode: office?.privateCode\n };\n } else return undefined;\n};\n\nexport const getLocationsOfficesList = (state, useOnlyOffices) =>\n getOwnState(state)\n .order.map((id) => getLocationOffice(state, id, useOnlyOffices))\n .filter((location) => location && location.locationStatus > 0);\n\nexport const getLocationsOfficesListByMembership = (state, membership, useOnlyOffices) => {\n //Se filtra por membership\n return getLocationsOfficesList(state, useOnlyOffices).filter(\n (location) =>\n membership &&\n (!membership.operatorId || membership.operatorId === location.operatorId) &&\n (!membership.organizationId || membership.organizationId === location.organizationId) &&\n (!membership.divisionId || membership.divisionId === location.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === location.subdivisionId)\n );\n};\nexport const getSelectedLocations = (state) => {\n const selectedLocations = getLocationsList(state).filter((location) => location.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedLocations.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedLocations.length > 0) return selectedLocations;\n};\n\nexport const getSelectedLocation = (state) => {\n const selectedLocations = getLocationsList(state).filter((location) => location.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedLocations.length === 1) return selectedLocations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListLocations = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListLocations = (state) => getOwnState(state).isFetchingList;\nexport const haveLocationsBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingLocation = (state) => getOwnState(state).isAdding;\nexport const isEditingLocation = (state) => getOwnState(state).isEditing;\nexport const isRemovingLocation = (state) => getOwnState(state).isRemoving;\nexport const isCopyingLocation = (state) => getOwnState(state).isCopying;\nexport const isAssigningGeofenceLocation = (state) => getOwnState(state).isAssigningGeofence;\nexport const isFetchingLocationById = (state) => getOwnState(state).isFetchingLocation;\n\n//Errors\nexport const getPartialFetchingListLocationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListLocationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingLocationErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingLocationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingLocationErrors = (state) => getOwnState(state).errorRemoving;\n\n/* -------------------------------------------------------------------------- */\n/* IMPORTED LOCATIONS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getImportedLocationsList = (state) =>\n importedLocationsSelectors.getLocationsList(state);\n\nexport const getImportedLocation = (state, locationId) =>\n importedLocationsSelectors.getLocation(state, locationId);\n\nexport const getImportedLocationsByPrivateCode = (state, privateCode) => {\n const importedLocations = getImportedLocationsList(state);\n return importedLocations.find((location) => location?.privateCode === privateCode);\n};\n\n//Status of sagas\nexport const isImportingLocations = (state) =>\n importedLocationsSelectors.isImportingLocations(state);\n\n//Errors\nexport const getImportingLocationsErrors = (state) =>\n importedLocationsSelectors.getImportingLocationsErrors(state);\n","import * as types from 'views/screens/Contacts/types';\n\nexport const startFetchingContacts = (query: any = {}) => ({\n type: types.CONTACTS_FETCH_STARTED,\n payload: { query }\n});\nexport const completeFetchingContacts = (entities, order) => ({\n type: types.CONTACTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingContacts = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.CONTACTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingContacts = (entityTypeId) => ({\n type: types.CONTACTS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId }\n});\nexport const completePartialFetchingContacts = (entities, order) => ({\n type: types.CONTACTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingContacts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CONTACTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingContact = (contact) => ({\n type: types.CONTACT_ADD_STARTED,\n payload: contact\n});\nexport const completeAddingContact = (oldId, contact) => ({\n type: types.CONTACT_ADD_COMPLETED,\n payload: { oldId, contact }\n});\nexport const failAddingContact = (oldId, error) => ({\n type: types.CONTACT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingContact = (contact) => ({\n type: types.CONTACT_EDIT_STARTED,\n payload: contact\n});\nexport const completeEditingContact = (contact) => ({\n type: types.CONTACT_EDIT_COMPLETED,\n payload: contact\n});\nexport const failEditingContact = (oldContact, error) => ({\n type: types.CONTACT_EDIT_FAILED,\n payload: {\n oldContact,\n error\n }\n});\n\nexport const startRemovingContact = (contacts, contactsName) => ({\n type: types.CONTACT_REMOVE_STARTED,\n payload: {\n contacts,\n contactsName\n }\n});\nexport const completeRemovingContact = (contacts, contactsName) => ({\n type: types.CONTACT_REMOVE_COMPLETED,\n payload: {\n contacts,\n contactsName\n }\n});\nexport const failRemovingContact = (contacts, error) => ({\n type: types.CONTACT_REMOVE_FAILED,\n payload: {\n contacts,\n error\n }\n});\n\nexport const selectContact = (contactId) => ({\n type: types.CONTACT_SELECTED,\n payload: contactId\n});\n\nexport const deselectContact = (contactId) => ({\n type: types.CONTACT_DESELECTED,\n payload: contactId\n});\n\nexport const deselectAllContacts = (\n contactIds = [] //List of ContactIds\n) => ({\n type: types.CONTACTS_ALL_DESELECTED,\n payload: contactIds\n});\n","import * as types from '../types';\n\nexport const startFetchingLocations = (filters = {}) => ({\n type: types.LOCATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingLocations = (\n entities,\n order,\n operatorId,\n organizationId,\n showInMap = false,\n restartState = true\n) => ({\n type: types.LOCATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n showInMap,\n restartState\n }\n});\nexport const failFetchingLocations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.LOCATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingLocation = (locationId) => ({\n type: types.LOCATION_FETCH_STARTED,\n payload: locationId\n});\n\nexport const completeFetchingLocation = (location, order) => ({\n type: types.LOCATION_FETCH_COMPLETED,\n payload: {\n location,\n order\n }\n});\n\nexport const failFetchingLocation = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.LOCATION_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingLocations = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingLocations = (entities, order, operatorId, organizationId) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingLocations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingLocation = (location) => ({\n type: types.LOCATION_ADD_STARTED,\n payload: location\n});\nexport const completeAddingLocation = (oldId, location) => ({\n type: types.LOCATION_ADD_COMPLETED,\n payload: { oldId, location }\n});\nexport const failAddingLocation = (oldId, error) => ({\n type: types.LOCATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingLocation = (location) => ({\n type: types.LOCATION_EDIT_STARTED,\n payload: location\n});\nexport const completeEditingLocation = (location) => ({\n type: types.LOCATION_EDIT_COMPLETED,\n payload: location\n});\nexport const failEditingLocation = (oldLocation, error) => ({\n type: types.LOCATION_EDIT_FAILED,\n payload: {\n oldLocation,\n error\n }\n});\n\nexport const startRemovingLocation = (locationId) => ({\n type: types.LOCATION_REMOVE_STARTED,\n payload: {\n locationId\n }\n});\nexport const completeRemovingLocation = (locationId) => ({\n type: types.LOCATION_REMOVE_COMPLETED,\n payload: {\n locationId\n }\n});\nexport const failRemovingLocation = (locationId, error) => ({\n type: types.LOCATION_REMOVE_FAILED,\n payload: {\n locationId,\n error\n }\n});\n\nexport const startImportingLocations = (organizationId, divisionId, subdivisionId, locations) => ({\n type: types.LOCATIONS_IMPORT_STARTED,\n payload: {\n organizationId,\n divisionId,\n subdivisionId,\n locations\n }\n});\nexport const completeImportingLocations = (entities, order) => ({\n type: types.LOCATIONS_IMPORT_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failImportingLocations = (error) => ({\n type: types.LOCATIONS_IMPORT_FAILED,\n payload: {\n error\n }\n});\n\nexport const selectLocation = (locationId) => ({\n type: types.LOCATION_SELECTED,\n payload: locationId\n});\n\nexport const selectAllLocations = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_SELECTED,\n payload: locationIds\n});\n\nexport const deselectLocation = (locationId) => ({\n type: types.LOCATION_DESELECTED,\n payload: locationId\n});\n\nexport const deselectAllLocations = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_DESELECTED,\n payload: locationIds\n});\n\nexport const showLocationInMap = (locationId) => ({\n type: types.LOCATION_SHOW_IN_MAP,\n payload: locationId\n});\n\nexport const showAllLocationsInMap = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_SHOW_IN_MAP,\n payload: locationIds\n});\n\nexport const hideLocationInMap = (locationId) => ({\n type: types.LOCATION_HIDE_IN_MAP,\n payload: locationId\n});\n\nexport const hideAllLocationsInMap = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_HIDE_IN_MAP,\n payload: locationIds\n});\n","import * as types from '../../types/backlog';\n\nexport const startFetchingJobsBacklog = (filters = {}) => ({\n type: types.JOBS_BACKLOG_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingJobsBacklog = (entities, order) => ({\n type: types.JOBS_BACKLOG_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingJobsBacklog = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOBS_BACKLOG_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingJobsBacklog = (entityTypeId) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingJobsBacklog = (entities, order) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingJobsBacklog = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_ADD_STARTED,\n payload: jobBacklog\n});\nexport const completeAddingJobBacklog = (oldId, jobBacklog) => ({\n type: types.JOB_BACKLOG_ADD_COMPLETED,\n payload: { oldId, jobBacklog }\n});\nexport const failAddingJobBacklog = (oldId, error) => ({\n type: types.JOB_BACKLOG_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_EDIT_STARTED,\n payload: jobBacklog\n});\nexport const completeEditingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_EDIT_COMPLETED,\n payload: jobBacklog\n});\nexport const failEditingJobBacklog = (oldJobBacklog, error) => ({\n type: types.JOB_BACKLOG_EDIT_FAILED,\n payload: {\n oldJobBacklog,\n error\n }\n});\n\nexport const selectJobBacklog = (jobId) => ({\n type: types.JOB_BACKLOG_SELECTED,\n payload: jobId\n});\n\nexport const selectAllJobsBacklog = (\n jobIds = [] //List of JobBacklogIds\n) => ({\n type: types.JOBS_BACKLOG_ALL_SELECTED,\n payload: jobIds\n});\n\nexport const deselectJobBacklog = (jobId) => ({\n type: types.JOB_BACKLOG_DESELECTED,\n payload: jobId\n});\n\nexport const deselectAllJobsBacklog = (\n jobIds = [] //List of JobBacklogIds\n) => ({\n type: types.JOBS_BACKLOG_ALL_DESELECTED,\n payload: jobIds\n});\n\nexport const startRemovingJobsBacklog = (jobs) => ({\n type: types.JOBS_BACKLOG_REMOVE_STARTED,\n payload: {\n jobs\n }\n});\n\nexport const completeRemovingJobsBacklog = (jobs) => ({\n type: types.JOBS_BACKLOG_REMOVE_COMPLETED,\n payload: {\n jobs\n }\n});\n\nexport const failRemovingJobsBacklog = (jobs, error) => ({\n type: types.JOBS_BACKLOG_REMOVE_FAILED,\n payload: {\n jobs,\n error\n }\n});\n\nexport const startChangeStatusJobs = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_STARTED,\n payload: { jobs, jobStatus, comment }\n});\nexport const completeChangeStatusJobs = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobStatus, comment }\n});\nexport const failChangeStatusJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeJobTypeJobs = (jobs, jobTypeId) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_STARTED,\n payload: { jobs, jobTypeId }\n});\nexport const completeChangeJobTypeJobs = (jobs, jobTypeId) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobTypeId }\n});\nexport const failChangeJobTypeJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangePriorityJobs = (jobs, jobPriority) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_STARTED,\n payload: { jobs, jobPriority }\n});\nexport const completeChangePriorityJobs = (jobs, jobPriority) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED,\n payload: { jobs, jobPriority }\n});\nexport const failChangePriorityJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeStartDateJobs = (jobs, startDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_STARTED,\n payload: { jobs, startDate }\n});\nexport const completeChangeStartDateJobs = (jobs, startDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED,\n payload: { jobs, startDate }\n});\nexport const failChangeStartDateJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeDueDateJobs = (jobs, dueDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED,\n payload: { jobs, dueDate }\n});\nexport const completeChangeDueDateJobs = (jobs, dueDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED,\n payload: { jobs, dueDate }\n});\nexport const failChangeDueDateJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeMinMaxTimeJobs = (jobs, maxTime) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED,\n payload: { jobs, maxTime }\n});\nexport const completeChangeMinMaxTimeJobs = (jobs, maxTime) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED,\n payload: { jobs, maxTime }\n});\nexport const failChangeMinMaxTimeJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignUsersJobs = (jobs, userNames, users) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_STARTED,\n payload: { jobs, userNames, users }\n});\nexport const completeAssignUsersJobs = (jobs, userNames, users) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_COMPLETED,\n payload: { jobs, userNames, users }\n});\nexport const failAssignUsersJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignFormsJobs = (jobs, formIds, forms) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_STARTED,\n payload: { jobs, formIds, forms }\n});\nexport const completeAssignFormsJobs = (jobs, formIds, forms) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED,\n payload: { jobs, formIds, forms }\n});\nexport const failAssignFormsJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignFilesJobs = (jobs, fileIds) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_STARTED,\n payload: { jobs, fileIds }\n});\nexport const completeAssignFilesJobs = (jobs, order) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_COMPLETED,\n payload: { jobs, order }\n});\nexport const failAssignFilesJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startRescheduleJobs = (jobs, startDate, dueDate, comment) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED,\n payload: { jobs, startDate, dueDate, comment }\n});\nexport const completeRescheduleJobs = (jobs, startDate, dueDate, comment) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED,\n payload: { jobs, startDate, dueDate, comment }\n});\nexport const failRescheduleJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startImportingJobs = (organizationId, divisionId, subdivisionId, jobs) => ({\n type: types.JOBS_BACKLOG_IMPORT_STARTED,\n payload: {\n organizationId,\n divisionId,\n subdivisionId,\n jobs\n }\n});\nexport const completeImportingJobs = (entities, order) => ({\n type: types.JOBS_BACKLOG_IMPORT_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failImportingJobs = (error) => ({\n type: types.JOBS_BACKLOG_IMPORT_FAILED,\n payload: {\n error\n }\n});\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ORGANIZATIONS_FETCH_COMPLETED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((organizationId) => {\n newState[organizationId] = {\n isSelected: false,\n ...state[organizationId],\n ...entities[organizationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ORGANIZATION_ADD_COMPLETED: {\n const { oldId, organization } = action.payload;\n const newState = omit(state, oldId);\n newState[organization.organizationId] = {\n ...state[oldId],\n ...organization,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ORGANIZATION_EDIT_COMPLETED: {\n const organization = action.payload;\n return {\n ...state,\n [organization.organizationId]: {\n ...omit(state[organization.organizationId], ['oldOrganization']),\n ...omit(organization, ['oldOrganization']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ORGANIZATION_ADD_STARTED: {\n const { organization, isSelected } = action.payload;\n const newState = { ...state };\n newState[organization.organizationId] = {\n isSelected,\n ...omit(organization, ['quotationId', 'baseQuotationId', 'membership']),\n isConfirmed: false\n };\n return newState;\n }\n case types.ORGANIZATION_EDIT_STARTED: {\n const organization = action.payload;\n return {\n ...state,\n [organization.organizationId]: {\n ...state[organization.organizationId],\n oldOrganization: state[organization.organizationId],\n ...organization,\n isConfirmed: false\n }\n };\n }\n\n case types.ORGANIZATION_CODE_ASSIGN_COMPLETED: {\n const {\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n } = action.payload;\n return {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ORGANIZATION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ORGANIZATION_EDIT_FAILED: {\n const { oldOrganization } = action.payload;\n return {\n ...state,\n [oldOrganization.organizationId]: {\n ...omit(state[oldOrganization.organizationId], ['oldOrganization']),\n ...oldOrganization,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n const { organizationId } = action.payload;\n return omit(state, organizationId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ORGANIZATION_SELECTED: {\n const organizationId = action.payload;\n const newState = {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ORGANIZATION_DESELECTED: {\n const organizationId = action.payload;\n return {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n isSelected: false\n }\n };\n }\n\n case types.ORGANIZATIONS_ALL_SELECTED: {\n const organizationIds = action.payload;\n const newState = { ...state };\n if (organizationIds.length == 0) {\n forEach(state, (organization: any, organizationId) => {\n newState[organizationId] = {\n ...organization,\n isSelected: true\n };\n });\n } else {\n organizationIds.forEach((organizationId) => {\n newState[organizationId] = {\n ...state[organizationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ORGANIZATIONS_ALL_DESELECTED: {\n const organizationIds = action.payload;\n const newState = { ...state };\n if (organizationIds.length == 0) {\n forEach(state, (organization: any, organizationId) => {\n newState[organizationId] = {\n ...organization,\n isSelected: false\n };\n });\n } else {\n organizationIds.forEach((organizationId) => {\n newState[organizationId] = {\n ...state[organizationId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ORGANIZATIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(state, order);\n }\n\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ORGANIZATION_ADD_COMPLETED: {\n const { oldId, organization } = action.payload;\n return state.map((organizationId) =>\n organizationId === oldId ? organization.organizationId : organizationId\n );\n }\n\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n const { organizationId } = action.payload;\n return state.filter((organizationIdState) => organizationIdState !== organizationId);\n }\n\n //CASE ADD STARTED\n case types.ORGANIZATION_ADD_STARTED: {\n const { organization } = action.payload;\n return [...state, organization.organizationId];\n }\n\n //CASE ADD FAILED\n case types.ORGANIZATION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((organizationIdState) => organizationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATIONS_FETCH_COMPLETED:\n case types.ORGANIZATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_ADD_COMPLETED:\n case types.ORGANIZATION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAddingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_EDIT_COMPLETED:\n case types.ORGANIZATION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_REMOVE_COMPLETED:\n case types.ORGANIZATION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemovingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATIONS_FETCH_STARTED:\n case types.ORGANIZATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATIONS_PARTIAL_FETCH_STARTED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_ADD_STARTED:\n case types.ORGANIZATION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAddingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_EDIT_STARTED:\n case types.ORGANIZATION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_REMOVE_STARTED:\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemovingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CODE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ORGANIZATION_CODE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizations = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isAddingDowntimeReason,\n isEditing,\n isEditingDowntimeReason,\n isRemoving,\n isRemovingDowntimeReason,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorAddingDowntimeReason,\n errorEditing,\n errorEditingDowntimeReason,\n errorRemoving,\n errorRemovingDowntimeReason,\n validCode\n});\n\nexport default organizations;\n\n//Own state\nexport const getOwnState = (state) => state.organizations;\n\n//Information\nexport const getOrganizationOperator = (state, organizationId) =>\n getOwnState(state).byId[organizationId]?.operatorId;\nexport const getOrganizationOperatorName = (state, organizationId) =>\n getOwnState(state).byId[organizationId]?.operatorName;\nexport const getOrganization = (state, organizationId) => getOwnState(state).byId[organizationId];\nexport const getOrganizationName = (state, organizationId) =>\n getOrganization(state, organizationId)?.organizationName;\nexport const getOrganizationLoginextParams = (state, organizationId) => {\n return {\n organizationId: getOrganization(state, organizationId)?.organizationId,\n loginextEffectiveVisitingTime:\n getOrganization(state, organizationId)?.loginextEffectiveVisitingTime / 60,\n loginextDeliveryDelay: getOrganization(state, organizationId)?.loginextDeliveryDelay / 60\n };\n};\nexport const getOrganizationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getOrganization(state, id))\n .filter((organization) => organization.organizationStatus > 0);\nexport const getOrganizationsListByMembership = (state, membership) => {\n //Se filtra por operatorId\n if (membership.operatorId)\n return getOrganizationsList(state).filter(\n (organization) => organization.operatorId === membership.operatorId\n );\n //Si no se ha seleccionado un operador se devuelvela lista completa\n return getOrganizationsList(state);\n};\nexport const getOrganizationsListBySelectedOperator = (state, membership) => {\n //Se filtra por operatorId\n if (membership.operatorId)\n return getOrganizationsList(state).filter(\n (organization) => organization.operatorId === membership.operatorId\n );\n //Si no se ha seleccionado un operador se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedOrganizations = (state) => {\n const selectedOrganizations = getOrganizationsList(state).filter(\n (organization) => organization.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedOrganizations.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedOrganizations.length > 0) return selectedOrganizations;\n};\n\nexport const getSelectedOrganization = (state) => {\n const selectedOrganizations = getOrganizationsList(state).filter(\n (organization) => organization.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOrganizations.length === 1) return selectedOrganizations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOrganizations = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOrganizations = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOrganization = (state) => getOwnState(state).isAdding;\nexport const isEditingOrganization = (state) => getOwnState(state).isEditing;\nexport const isRemovingOrganization = (state) => getOwnState(state).isRemoving;\n\nexport const isAddingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isAddingDowntimeReason;\nexport const isEditingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isEditingDowntimeReason;\nexport const isRemovingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isRemovingDowntimeReason;\n\n//Errors\nexport const getPartialFetchingListOrganizationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOrganizationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingOrganizationErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOrganizationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingOrganizationErrors = (state) => getOwnState(state).errorRemoving;\n\nexport const getAddingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorAddingDowntimeReason;\nexport const getEditingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorEditingDowntimeReason;\nexport const getRemovingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorRemovingDowntimeReason;\n\n//Valid code\nexport const isValidCode = (state) => getOwnState(state).validCode;\n","import * as types from '../types';\n\nexport const startFetchingGroups = (filters = {}) => ({\n type: types.GROUPS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingGroups = (entities, order, operatorId, organizationId) => ({\n type: types.GROUPS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingGroups = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GROUPS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingGroup = (groupId) => ({\n type: types.GROUP_FETCH_STARTED,\n payload: groupId\n});\nexport const completeFetchingGroup = (entities, order, groupId) => ({\n type: types.GROUP_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n groupId\n }\n});\nexport const failFetchingGroup = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GROUP_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingGroups = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.GROUPS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingGroups = (entities, order, operatorId, organizationId) => ({\n type: types.GROUPS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingGroups = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GROUPS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingAllEntitiesGroups = (groupId) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_STARTED,\n payload: groupId\n});\nexport const completeFetchingAllEntitiesGroups = (entities, groupId) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED,\n payload: {\n entities,\n groupId\n }\n});\nexport const failFetchingAllEntitiesGroups = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingGroup = (group, users, userInSession, additionalOnSave?: () => void) => ({\n type: types.GROUP_ADD_STARTED,\n payload: { group, users, additionalOnSave }\n});\nexport const completeAddingGroup = (oldId, group) => ({\n type: types.GROUP_ADD_COMPLETED,\n payload: { oldId, group }\n});\nexport const failAddingGroup = (oldId, error) => ({\n type: types.GROUP_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startAddingGroupWithEntities = (\n group,\n userInSession,\n entityType,\n entities,\n params\n) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_STARTED,\n payload: { group, userInSession, entityType, entities, params }\n});\nexport const completeAddingGroupWithEntities = (oldId, group) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_COMPLETED,\n payload: { oldId, group }\n});\nexport const failAddingGroupWithEntities = (oldId, error) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingGroup = (group) => ({\n type: types.GROUP_EDIT_STARTED,\n payload: group\n});\nexport const completeEditingGroup = (group) => ({\n type: types.GROUP_EDIT_COMPLETED,\n payload: group\n});\nexport const failEditingGroup = (oldGroup, error) => ({\n type: types.GROUP_EDIT_FAILED,\n payload: {\n oldGroup,\n error\n }\n});\n\nexport const startRemovingGroup = (groupId) => ({\n type: types.GROUP_REMOVE_STARTED,\n payload: {\n groupId\n }\n});\nexport const completeRemovingGroup = (groupId) => ({\n type: types.GROUP_REMOVE_COMPLETED,\n payload: {\n groupId\n }\n});\nexport const failRemovingGroup = (groupId, error) => ({\n type: types.GROUP_REMOVE_FAILED,\n payload: {\n groupId,\n error\n }\n});\n\nexport const startLeavingGroup = (groupId, isAsesor, asesorUsername) => ({\n type: types.GROUP_LEAVE_STARTED,\n payload: {\n groupId,\n isAsesor,\n asesorUsername\n }\n});\nexport const completeLeavingGroup = (groupId, isAsesor, asesorUsername) => ({\n type: types.GROUP_LEAVE_COMPLETED,\n payload: {\n groupId,\n isAsesor,\n asesorUsername\n }\n});\nexport const failLeavingGroup = (groupId, error) => ({\n type: types.GROUP_LEAVE_FAILED,\n payload: {\n groupId,\n error\n }\n});\n\nexport const startEditingNotificationsConfigurationGroup = (group) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED,\n payload: group\n});\nexport const completeEditingNotificationsConfigurationGroup = (group) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED,\n payload: group\n});\nexport const failEditingNotificationsConfigurationGroup = (oldGroup, error) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED,\n payload: {\n oldGroup,\n error\n }\n});\n\nexport const startRemovingEntitiesFromGroup = (group, entityType, entities) => ({\n type: types.GROUP_REMOVE_ENTITIES_STARTED,\n payload: { group, entityType, entities }\n});\nexport const completeRemovingEntitiesFromGroup = (groupId, entityType, entities) => ({\n type: types.GROUP_REMOVE_ENTITIES_COMPLETED,\n payload: { groupId, entityType, entities }\n});\n\nexport const startAddingEntitiesToGroup = (group, entityType, entities, params) => ({\n type: types.GROUP_ADD_ENTITIES_STARTED,\n payload: { group, entityType, entities, params }\n});\nexport const completeAddingEntitiesToGroup = (group, entityType, entities, params) => ({\n type: types.GROUP_ADD_ENTITIES_COMPLETED,\n payload: { group, entityType, entities, params }\n});\n\nexport const startEditingUserProfileInGroup = (\n groupId,\n userName,\n userNameInSession,\n profileId\n) => ({\n type: types.GROUP_USER_PROFILE_EDIT_STARTED,\n payload: { groupId, userName, userNameInSession, profileId }\n});\nexport const completeEditingUserProfileInGroup = (\n groupId,\n userName,\n userNameInSession,\n profileId\n) => ({\n type: types.GROUP_USER_PROFILE_EDIT_COMPLETED,\n payload: { groupId, userName, userNameInSession, profileId }\n});\n\nexport const selectGroup = (groupId) => ({\n type: types.GROUP_SELECTED,\n payload: groupId\n});\n\nexport const selectAllGroups = (\n groupIds = [] //List of GroupIds\n) => ({\n type: types.GROUPS_ALL_SELECTED,\n payload: groupIds\n});\n\nexport const deselectGroup = (groupId) => ({\n type: types.GROUP_DESELECTED,\n payload: groupId\n});\n\nexport const deselectAllGroups = (\n groupIds = [] //List of GroupIds\n) => ({\n type: types.GROUPS_ALL_DESELECTED,\n payload: groupIds\n});\n","import * as types from '../types';\n\nexport const startFetchingOrganizations = (filters = {}) => ({\n type: types.ORGANIZATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOrganizations = (entities, order) => ({\n type: types.ORGANIZATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingOrganizations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ORGANIZATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOrganizations = (entityTypeId) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingOrganizations = (entities, order) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingOrganizations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOrganization = (organization, isSelected = false) => ({\n type: types.ORGANIZATION_ADD_STARTED,\n payload: { organization, isSelected }\n});\nexport const completeAddingOrganization = (oldId, organization) => ({\n type: types.ORGANIZATION_ADD_COMPLETED,\n payload: { oldId, organization }\n});\nexport const failAddingOrganization = (oldId, error) => ({\n type: types.ORGANIZATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOrganization = (organization) => ({\n type: types.ORGANIZATION_EDIT_STARTED,\n payload: organization\n});\nexport const completeEditingOrganization = (organization) => ({\n type: types.ORGANIZATION_EDIT_COMPLETED,\n payload: organization\n});\nexport const failEditingOrganization = (oldOrganization, error) => ({\n type: types.ORGANIZATION_EDIT_FAILED,\n payload: {\n oldOrganization,\n error\n }\n});\n\nexport const startSavingConsolidableEvents = (organization, consolidableEvents) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED,\n payload: { organization, consolidableEvents }\n});\nexport const completeSavingConsolidableEvents = (organizationId, consolidableEvents) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED,\n payload: { organizationId, consolidableEvents }\n});\nexport const failSavingConsolidableEvents = (oldOrganization, error) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED,\n payload: {\n oldOrganization,\n error\n }\n});\n\nexport const startRemovingOrganization = (organizationId) => ({\n type: types.ORGANIZATION_REMOVE_STARTED,\n payload: {\n organizationId\n }\n});\nexport const completeRemovingOrganization = (organizationId) => ({\n type: types.ORGANIZATION_REMOVE_COMPLETED,\n payload: {\n organizationId\n }\n});\nexport const failRemovingOrganization = (organizationId, error) => ({\n type: types.ORGANIZATION_REMOVE_FAILED,\n payload: {\n organizationId,\n error\n }\n});\n\nexport const selectOrganization = (organizationId) => ({\n type: types.ORGANIZATION_SELECTED,\n payload: organizationId\n});\n\nexport const selectAllOrganizations = (\n organizationIds = [] //List of OrganizationIds\n) => ({\n type: types.ORGANIZATIONS_ALL_SELECTED,\n payload: organizationIds\n});\n\nexport const deselectOrganization = (organizationId) => ({\n type: types.ORGANIZATION_DESELECTED,\n payload: organizationId\n});\n\nexport const deselectAllOrganizations = (\n organizationIds = [] //List of OrganizationIds\n) => ({\n type: types.ORGANIZATIONS_ALL_DESELECTED,\n payload: organizationIds\n});\n\nexport const startCheckingCode = (organizationId, code) => ({\n type: types.ORGANIZATION_CODE_CHECK_STARTED,\n payload: {\n organizationId,\n code\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.ORGANIZATION_CODE_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.ORGANIZATION_CODE_CHECK_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAssigningCode = (\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_STARTED,\n payload: {\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n }\n});\nexport const completeAssigningCode = (\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_COMPLETED,\n payload: {\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n }\n});\nexport const failAssigningCode = (error) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAddingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED,\n payload: downtimeReason\n});\nexport const completeAddingOrganizationDowntimeReason = (oldId, downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED,\n payload: { oldId, downtimeReason }\n});\nexport const failAddingOrganizationDowntimeReason = (oldId, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED,\n payload: downtimeReason\n});\nexport const completeEditingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED,\n payload: downtimeReason\n});\nexport const failEditingOrganizationDowntimeReason = (oldDowntimeReason, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED,\n payload: {\n oldDowntimeReason,\n error\n }\n});\n\nexport const startRemovingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED,\n payload: downtimeReason\n});\nexport const completeRemovingOrganizationDowntimeReason = (reasonId) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED,\n payload: {\n reasonId\n }\n});\nexport const failRemovingOrganizationDowntimeReason = (reasonId, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED,\n payload: {\n reasonId,\n error\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Groups */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const group = new schema.Entity('groups', {}, { idAttribute: 'groupId' });\nexport const groups = new schema.Array(group);\n\nexport const user = new schema.Entity('users', {}, { idAttribute: 'userName' });\nexport const users = new schema.Array(user);\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n\nexport const workplan = new schema.Entity('workplans', {}, { idAttribute: 'workPlanId' });\nexport const workplans = new schema.Array(workplan);\n\nexport const unit = new schema.Entity('units', {}, { idAttribute: 'unitId' });\nexport const units = new schema.Array(unit);\n\nexport const geofence = new schema.Entity('geofences', {}, { idAttribute: 'geofenceId' });\nexport const geofences = new schema.Array(geofence);\n\nexport const driver = new schema.Entity('drivers', {}, { idAttribute: 'driverId' });\nexport const drivers = new schema.Array(driver);\n","import * as types from '../../types/workplans';\n\nexport const startFetchingWorkplans = (filters = {}) => ({\n type: types.WORKPLANS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplans = (entities, order, operatorId, organizationId) => ({\n type: types.WORKPLANS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingWorkplans = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKPLANS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingWorkplans = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.WORKPLANS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingWorkplans = (entities, order, operatorId, organizationId) => ({\n type: types.WORKPLANS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingWorkplans = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const completeFetchingWorkplanLocations = (workplanId, locations) => ({\n type: types.WORKPLAN_LOCATIONS_FETCH_COMPLETED,\n payload: {\n workplanId,\n locations\n }\n});\nexport const failFetchingWorkplanLocations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLAN_LOCATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingWorkplan = (workplan) => ({\n type: types.WORKPLAN_ADD_STARTED,\n payload: workplan\n});\nexport const completeAddingWorkplan = (oldId, workplan) => ({\n type: types.WORKPLAN_ADD_COMPLETED,\n payload: { oldId, workplan }\n});\nexport const failAddingWorkplan = (oldId, error) => ({\n type: types.WORKPLAN_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingWorkplan = (workplan) => ({\n type: types.WORKPLAN_EDIT_STARTED,\n payload: workplan\n});\nexport const completeEditingWorkplan = (workplan) => ({\n type: types.WORKPLAN_EDIT_COMPLETED,\n payload: workplan\n});\nexport const failEditingWorkplan = (oldWorkplan, error) => ({\n type: types.WORKPLAN_EDIT_FAILED,\n payload: {\n oldWorkplan,\n error\n }\n});\n\nexport const startRemovingWorkplan = (workplanId) => ({\n type: types.WORKPLAN_REMOVE_STARTED,\n payload: {\n workplanId\n }\n});\nexport const completeRemovingWorkplan = (workplanId) => ({\n type: types.WORKPLAN_REMOVE_COMPLETED,\n payload: {\n workplanId\n }\n});\nexport const failRemovingWorkplan = (workplanId, error) => ({\n type: types.WORKPLAN_REMOVE_FAILED,\n payload: {\n workplanId,\n error\n }\n});\n\nexport const selectWorkplan = (workplanId) => ({\n type: types.WORKPLAN_SELECTED,\n payload: workplanId\n});\n\nexport const selectAllWorkplans = (\n workplanIds = [] //List of WorkplanIds\n) => ({\n type: types.WORKPLANS_ALL_SELECTED,\n payload: workplanIds\n});\n\nexport const deselectWorkplan = (workplanId) => ({\n type: types.WORKPLAN_DESELECTED,\n payload: workplanId\n});\n\nexport const deselectAllWorkplans = (\n workplanIds = [] //List of WorkplanIds\n) => ({\n type: types.WORKPLANS_ALL_DESELECTED,\n payload: workplanIds\n});\n\nexport const startCopyWorkplan = (\n workplanId,\n newWorkplanName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.WORKPLAN_COPY_STARTED,\n payload: { workplanId, newWorkplanName, organizationId, divisionId, subdivisionId }\n});\nexport const completeCopyWorkplan = (\n workplanId,\n newWorkplanId,\n newWorkplanName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.WORKPLAN_COPY_COMPLETED,\n payload: { workplanId, newWorkplanId, newWorkplanName, organizationId, divisionId, subdivisionId }\n});\nexport const failCopyWorkplan = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKPLAN_COPY_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignOriginGeofenceWorkplan = (\n workplanIds,\n originGeofenceId,\n originExitWindow,\n originValidationWindow\n) => ({\n type: types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED,\n payload: { workplanIds, originGeofenceId, originExitWindow, originValidationWindow }\n});\nexport const completeAssignOriginGeofenceWorkplan = (\n workplanIds,\n originGeofenceId,\n originGeofenceName,\n originExitWindow,\n originValidationWindow\n) => ({\n type: types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED,\n payload: {\n workplanIds,\n originGeofenceId,\n originGeofenceName,\n originExitWindow,\n originValidationWindow\n }\n});\nexport const failAssignOriginGeofenceWorkplan = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignWorkGeofenceWorkplan = (\n workplanIds,\n workGeofenceId,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n) => ({\n type: types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED,\n payload: {\n workplanIds,\n workGeofenceId,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n }\n});\nexport const completeAssignWorkGeofenceWorkplan = (\n workplanIds,\n workGeofenceId,\n workGeofenceName,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n) => ({\n type: types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED,\n payload: {\n workplanIds,\n workGeofenceId,\n workGeofenceName,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n }\n});\nexport const failAssignWorkGeofenceWorkplan = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignDestinationGeofenceWorkplan = (workplanIds, destinationGeofenceId) => ({\n type: types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED,\n payload: { workplanIds, destinationGeofenceId }\n});\nexport const completeAssignDestinationGeofenceWorkplan = (\n workplanIds,\n destinationGeofenceId,\n destinationGeofenceName\n) => ({\n type: types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED,\n payload: { workplanIds, destinationGeofenceId, destinationGeofenceName }\n});\nexport const failAssignDestinationGeofenceWorkplan = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingForms = (filters = {}) => ({\n type: types.FORMS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingForms = (entities, order) => ({\n type: types.FORMS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingForms = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.FORMS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingForms = (filters = {}) => ({\n type: types.FORMS_PARTIAL_FETCH_STARTED,\n payload: filters\n});\nexport const completePartialFetchingForms = (entities, order) => ({\n type: types.FORMS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingForms = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.FORMS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingFormSections = (formId) => ({\n type: types.FORM_SECTIONS_FETCH_STARTED,\n payload: formId\n});\n\nexport const completeFetchingFormSections = (entities, order, formId) => ({\n type: types.FORM_SECTIONS_FETCH_COMPLETED,\n payload: { entities, order, formId }\n});\n\nexport const failFetchingFormSections = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.FORM_SECTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingFormQuestions = (formId) => ({\n type: types.FORM_QUESTIONS_FETCH_STARTED,\n payload: formId\n});\n\nexport const completeFetchingFormQuestions = (entities, order, formId) => ({\n type: types.FORM_QUESTIONS_FETCH_COMPLETED,\n payload: { entities, order, formId }\n});\n\nexport const failFetchingFormQuestions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.FORM_QUESTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingForm = (\n formName: string,\n formDescription: string,\n organizationFormCategoryId: number,\n useBarCodes: boolean = false,\n requireSignature: boolean = false,\n copyToCustomer: boolean = false,\n formTypeId: number,\n organizationId: number,\n sections: any[],\n formUrl: string = '',\n organizationFormId?: number,\n divisionId?: number,\n subdivisionId?: number,\n notificationEmails?: string\n) => ({\n type: types.FORM_ADD_STARTED,\n payload: {\n organizationFormId,\n organizationId,\n divisionId,\n subdivisionId,\n formName,\n formDescription,\n notificationEmails,\n organizationFormCategoryId,\n formUrl,\n useBarCodes,\n requireSignature,\n copyToCustomer,\n formTypeId,\n sections\n }\n});\nexport const completeAddingForm = (oldId, form) => ({\n type: types.FORM_ADD_COMPLETED,\n payload: { oldId, form }\n});\nexport const failAddingForm = (oldId, error) => ({\n type: types.FORM_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startAddingExternal = (\n formName: string,\n formDescription: string,\n organizationFormCategoryId: number,\n useBarCodes: boolean = false,\n requireSignature: boolean = false,\n copyToCustomer: boolean,\n formTypeId: number,\n organizationId: number,\n sections?: any[],\n formUrl: string = '',\n organizationFormId?: any,\n divisionId?: number,\n subdivisionId?: number,\n notificationEmails?: string\n) => ({\n type: types.FORM_EXTERNAL_ADD_STARTED,\n payload: {\n organizationFormId,\n organizationId,\n divisionId,\n subdivisionId,\n formName,\n formDescription,\n notificationEmails,\n organizationFormCategoryId,\n formUrl,\n useBarCodes,\n requireSignature,\n copyToCustomer,\n formTypeId,\n sections\n }\n});\n\nexport const startEditingExternal = (\n formName: string,\n formDescription: string,\n organizationFormCategoryId: number,\n useBarCodes: boolean = false,\n requireSignature: boolean = false,\n copyToCustomer: boolean,\n formTypeId: number,\n organizationId: number,\n sections?: any[],\n formUrl: string = '',\n organizationFormId?: number,\n divisionId?: number,\n subdivisionId?: number,\n notificationEmails?: string\n) => ({\n type: types.FORM_EXTERNAL_EDIT_STARTED,\n payload: {\n organizationFormId,\n organizationId,\n divisionId,\n subdivisionId,\n formName,\n formDescription,\n notificationEmails,\n organizationFormCategoryId,\n formUrl,\n useBarCodes,\n requireSignature,\n copyToCustomer,\n formTypeId,\n sections\n }\n});\n\nexport const startEditingForm = (\n formName: string,\n formDescription: string,\n organizationFormCategoryId: number,\n useBarCodes: boolean = false,\n requireSignature: boolean = false,\n copyToCustomer: boolean = false,\n formTypeId: number,\n organizationId: number,\n sections: any[],\n formUrl: string = '',\n organizationFormId?: number,\n divisionId?: number,\n subdivisionId?: number,\n notificationEmails?: string\n) => ({\n type: types.FORM_EDIT_STARTED,\n payload: {\n organizationFormId,\n organizationId,\n divisionId,\n subdivisionId,\n formName,\n formDescription,\n notificationEmails,\n organizationFormCategoryId,\n formUrl,\n useBarCodes,\n requireSignature,\n copyToCustomer,\n formTypeId,\n sections\n }\n});\nexport const completeEditingForm = (form) => ({\n type: types.FORM_EDIT_COMPLETED,\n payload: form\n});\nexport const failEditingForm = (oldForm, error) => ({\n type: types.FORM_EDIT_FAILED,\n payload: {\n oldForm,\n error\n }\n});\n\nexport const startAddingSection = (sections: any[]) => ({\n type: types.FORM_SECTION_ADD_STARTED,\n payload: { sections }\n});\n\nexport const startRemovingForm = (formId) => ({\n type: types.FORM_REMOVE_STARTED,\n payload: {\n formId\n }\n});\nexport const completeRemovingForm = (formId) => ({\n type: types.FORM_REMOVE_COMPLETED,\n payload: {\n formId\n }\n});\nexport const failRemovingForm = (formId, error) => ({\n type: types.FORM_REMOVE_FAILED,\n payload: {\n formId,\n error\n }\n});\n\nexport const selectForm = (formId) => ({\n type: types.FORM_SELECTED,\n payload: formId\n});\n\nexport const selectAllForms = (\n formIds = [] //List of FormIds\n) => ({\n type: types.FORMS_ALL_SELECTED,\n payload: formIds\n});\n\nexport const deselectForm = (formId) => ({\n type: types.FORM_DESELECTED,\n payload: formId\n});\n\nexport const deselectAllForms = (\n formIds = [] //List of FormIds\n) => ({\n type: types.FORMS_ALL_DESELECTED,\n payload: formIds\n});\n\nexport const startAddingResponse = (\n organizationFormId,\n responses,\n tableResponses,\n responseDate\n) => ({\n type: types.FORM_RESPONSE_SAVE_STARTED,\n payload: {\n organizationFormId,\n responses,\n tableResponses,\n responseDate\n }\n});\n\nexport const completeAddingResponse = () => ({\n type: types.FORM_RESPONSE_SAVE_COMPLETED,\n payload: {}\n});\n\nexport const failAddingResponse = () => ({\n type: types.FORM_RESPONSE_SAVE_FAILED,\n payload: {}\n});\n\nexport const addSection = (sectionType, position, sectionId) => ({\n type: types.FORM_SECTION_ADDED,\n payload: { sectionType, position, sectionId }\n});\n\nexport const changeSectionCollapsed = (sectionId) => ({\n type: types.FORM_SECTION_CHANGE_COLLAPSED,\n payload: { sectionId }\n});\n\nexport const moveSection = (startingPosition, endingPosition) => ({\n type: types.FORM_SECTION_MOVED,\n payload: { startingPosition, endingPosition }\n});\n\nexport const editSectionName = (sectionId, sectionName) => ({\n type: types.FORM_SECTION_NAME_EDITED,\n payload: { sectionId, sectionName }\n});\n\nexport const deleteSection = (sectionId) => ({\n type: types.FORM_SECTION_DELETED,\n payload: sectionId\n});\n\nexport const copySection = (sectionId, newSectionId, newSection) => ({\n type: types.FORM_SECTION_COPIED,\n payload: { sectionId, newSectionId, newSection }\n});\n\nexport const setSections = (sectionsOrder, sectionsId) => ({\n type: types.FORM_SECTIONS_SET,\n payload: { sectionsOrder, sectionsId }\n});\n\nexport const addRow = (sectionId, rowId, name) => ({\n type: types.FORM_ROW_ADDED,\n payload: { sectionId, rowId, name }\n});\n\nexport const moveRow = (sectionId, startingPosition, endingPosition) => ({\n type: types.FORM_ROW_MOVED,\n payload: { sectionId, startingPosition, endingPosition }\n});\n\nexport const editRowName = (sectionId, rowId, name) => ({\n type: types.FORM_ROW_NAME_EDITED,\n payload: { sectionId, rowId, name }\n});\n\nexport const deleteRow = (sectionId, rowId) => ({\n type: types.FORM_ROW_DELETED,\n payload: { sectionId, rowId }\n});\n\nexport const addQuestion = (sectionId, position, questionType, questionId) => ({\n type: types.FORM_QUESTION_ADDED,\n payload: { sectionId, position, questionType, questionId }\n});\n\nexport const moveQuestion = (sectionId, startingPosition, endingPosition) => ({\n type: types.FORM_QUESTION_MOVED,\n payload: { sectionId, startingPosition, endingPosition }\n});\n\nexport const deleteQuestion = (sectionId, questionId) => ({\n type: types.FORM_QUESTION_DELETED,\n payload: { sectionId, questionId }\n});\n\nexport const copyQuestion = (sectionId, questionId, newQuestion) => ({\n type: types.FORM_QUESTION_COPIED,\n payload: { sectionId, questionId, newQuestion }\n});\n\nexport const setQuestion = (sectionId, question) => ({\n type: types.FORM_QUESTION_SET,\n payload: { sectionId, question }\n});\n\nexport const editQuestionName = (sectionId, questionId, questionName) => ({\n type: types.FORM_QUESTION_NAME_EDITED,\n payload: { sectionId, questionId, questionName }\n});\n\nexport const editQuestionHeight = (sectionId, questionId, height) => ({\n type: types.FORM_QUESTION_HEIGHT_EDITED,\n payload: { sectionId, questionId, height }\n});\n\nexport const changeQuestionCollapsed = (sectionId, questionId) => ({\n type: types.FORM_QUESTION_CHANGE_COLLAPSED,\n payload: { sectionId, questionId }\n});\n\nexport const startFetchingResponse = (organizationFormId, startDate, endDate) => ({\n type: types.FORM_RESPONSE_FETCH_STARTED,\n payload: { organizationFormId, startDate, endDate }\n});\n\nexport const completeFetchingResponse = (entities, order, formId) => ({\n type: types.FORM_RESPONSE_FETCH_COMPLETED,\n payload: { entities, order, formId }\n});\n\nexport const failFetchingResponse = (formId) => ({\n type: types.FORM_RESPONSE_FETCH_FAILED,\n payload: formId\n});\n\nexport const startResendingResponse = (organizationFormId, responseIds) => ({\n type: types.FORM_RESPONSE_RESEND_STARTED,\n payload: { organizationFormId, responseIds }\n});\n\nexport const completeResendingResponse = (organizationFormId, responseIds) => ({\n type: types.FORM_RESPONSE_RESEND_COMPLETED,\n payload: { organizationFormId, responseIds }\n});\n\nexport const failResendingResponse = (organizationFormId, responseIds) => ({\n type: types.FORM_RESPONSE_RESEND_FAILED,\n payload: { organizationFormId, responseIds }\n});\n\nexport const selectAnswer = (responseId) => ({\n type: types.FORM_ANSWER_SELECTED,\n payload: responseId\n});\n\nexport const deselectAnswer = () => ({\n type: types.FORM_ANSWER_DESELECTED,\n payload: {}\n});\n\nexport const moveAnswer = (sectionId, questionId, startingPosition, endingPosition) => ({\n type: types.FORM_ANSWER_MOVED,\n payload: { sectionId, questionId, startingPosition, endingPosition }\n});\n\nexport const addAnswer = (sectionId, questionId, answerId, answer) => ({\n type: types.FORM_ANSWER_ADDED,\n payload: { sectionId, questionId, answerId, answer }\n});\n\nexport const deleteAnswer = (sectionId, questionId, position) => ({\n type: types.FORM_ANSWER_DELETED,\n payload: { sectionId, questionId, position }\n});\n\nexport const editAnswer = (sectionId, questionId, position, answer) => ({\n type: types.FORM_ANSWER_EDITED,\n payload: { sectionId, questionId, position, answer }\n});\n\nexport const clearResponses = (formId) => ({\n type: types.FORM_RESPONSES_CLEARED,\n payload: formId\n});\n\nexport const clearQuestions = (formId) => ({\n type: types.FORM_QUESTIONS_CLEARED,\n payload: formId\n});\n\nexport const clearAllFormQuestions = (\n formIds = [] //List of FormIds\n) => ({\n type: types.FORMS_ALL_QUESTIONS_CLEARED,\n payload: formIds\n});\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport routesComments from '../routesComments';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesExecutions';\nimport permissions from '../../permissions';\nimport { getRouteExecutionInformation } from '../../utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.ROUTE_EXECUTION_EDIT_COMPLETED: {\n const routeExecution = action.payload;\n const newState = { ...state };\n newState[routeExecution.routeAssignmentId] = {\n isSelected: false,\n ...state[routeExecution.routeAssignmentId],\n ...routeExecution,\n isConfirmed: true\n };\n return newState;\n }\n case types.ROUTES_EXECUTION_CANCEL_COMPLETED: {\n const { visitId } = action.payload;\n return omit(state, visitId);\n }\n case types.ROUTES_EXECUTION_FINALIZE_COMPLETED: {\n const { visitId } = action.payload;\n const newState = { ...state };\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n executionStatus: 5,\n isConfirmed: true\n };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n case types.ROUTES_EXECUTION_CANCEL_COMPLETED: {\n const { visitId } = action.payload;\n return state.filter((id) => id !== visitId);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingExecutions = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTIONS_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED:\n case types.ROUTES_EXECUTIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCancelingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_CANCEL_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_CANCEL_COMPLETED:\n case types.ROUTES_EXECUTION_CANCEL_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_EXECUTION_EDIT_STARTED: {\n return true;\n }\n case types.ROUTE_EXECUTION_EDIT_COMPLETED:\n case types.ROUTE_EXECUTION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFinalizingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_FINALIZE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_FINALIZE_COMPLETED:\n case types.ROUTES_EXECUTION_FINALIZE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCompletingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMPLETE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMPLETE_COMPLETED:\n case types.ROUTES_EXECUTION_COMPLETE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemovingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_REMOVE_COMPLETED:\n case types.ROUTES_EXECUTION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPausingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_PAUSE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_PAUSE_COMPLETED:\n case types.ROUTES_EXECUTION_PAUSE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isStartingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_START_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_START_COMPLETED:\n case types.ROUTES_EXECUTION_START_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingManualTransitExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED:\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isSharingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_SHARE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_SHARE_COMPLETED:\n case types.ROUTES_EXECUTION_SHARE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isChangingToAlternateRoute = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED: {\n return true;\n }\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED:\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingExecutions = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTIONS_FETCH_STARTED:\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_EXECUTION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_EXECUTION_EDIT_STARTED:\n case types.ROUTE_EXECUTION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCancelingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_CANCEL_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_CANCEL_STARTED:\n case types.ROUTES_EXECUTION_CANCEL_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFinalizingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_FINALIZE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_FINALIZE_STARTED:\n case types.ROUTES_EXECUTION_FINALIZE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCompletingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMPLETE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMPLETE_STARTED:\n case types.ROUTES_EXECUTION_COMPLETE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemovingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_REMOVE_STARTED:\n case types.ROUTES_EXECUTION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPausingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_PAUSE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_PAUSE_STARTED:\n case types.ROUTES_EXECUTION_PAUSE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorStartingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_START_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_START_STARTED:\n case types.ROUTES_EXECUTION_START_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorUpdatingManualTransitExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED:\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorSharingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_SHARE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_SHARE_STARTED:\n case types.ROUTES_EXECUTION_SHARE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorChangingToAlternateRoute = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED:\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesExecutions = combineReducers({\n byId,\n order,\n routesComments,\n indicators,\n isFetchingExecutions,\n isEditingExecution,\n isCancelingExecution,\n isFinalizingExecution,\n isCompletingExecution,\n isRemovingExecution,\n isSharingExecution,\n isPausingExecution,\n isStartingExecution,\n isUpdatingManualTransitExecution,\n isChangingToAlternateRoute,\n errorFetchingExecutions,\n errorEditingExecution,\n errorCancelingExecution,\n errorFinalizingExecution,\n errorCompletingExecution,\n errorRemovingExecution,\n errorPausingExecution,\n errorStartingExecution,\n errorUpdatingManualTransitExecution,\n errorSharingExecution,\n errorChangingToAlternateRoute\n});\n\nexport default routesExecutions;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesExecutions;\n\n//Information\nexport const getRoutesExecution = (state, visitId) => {\n const routeExecution = getOwnState(state).byId[visitId];\n return getRouteExecutionInformation(state, routeExecution);\n};\nexport const getRoutesExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesExecution(state, id));\nexport const getIndicatorsInformation = (state) => {\n const indicators = getOwnState(state).indicators;\n const correctRunning =\n indicators.onOrigin + indicators.onDestination + indicators.onRoute + indicators.atCheckpoint;\n const incorrectRunning =\n indicators.paused + indicators.offRoute + indicators.eao + indicators.unauthorizedReturn;\n const running = correctRunning + incorrectRunning;\n const total =\n indicators.scheduled +\n indicators.scheduledBySchedule +\n indicators.finalized +\n indicators.canceled +\n running;\n return {\n ...indicators,\n total,\n correctRunning,\n incorrectRunning,\n running\n };\n};\nexport const getTotalNotShown = (state) => getOwnState(state).indicators.totalNotShown ?? 0;\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getIndicatorsInformation(state);\n return [\n {\n title: intl.formatMessage({\n id: 'routes.total'\n }),\n permissions: [permissions.viewTotalIndicator, permissions.viewScheduledIndicator],\n bigIndicator: indicators.total || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'routes.onTime'\n }) +\n ': ' +\n parseInt(indicators.onTime || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.late'\n }) +\n ': ' +\n parseInt(indicators.late || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.canceled'\n }) +\n ': ' +\n parseInt(indicators.canceled || 0)\n },\n {\n id: 'scheduled',\n popoverTitle: intl.formatMessage({\n id: 'routes.scheduled'\n }),\n popoverBody:\n intl.formatMessage({\n id: 'routes.assignmentByDate'\n }) +\n ' | ' +\n intl.formatMessage({\n id: 'routes.assignmentBySchedule'\n }),\n info:\n intl.formatMessage({\n id: 'routes.scheduled'\n }) +\n ': ' +\n parseInt(indicators.scheduled || 0) +\n ' | ' +\n parseInt(indicators.scheduledBySchedule || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'routes.correctExecution'\n }),\n permissions: [permissions.viewRunningIndicator],\n bigIndicator: indicators.correctRunning || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'routes.atOrigin'\n }) +\n ': ' +\n parseInt(indicators.onOrigin || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.onRoute'\n }) +\n ': ' +\n parseInt(indicators.onRoute || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.atCheckpoint'\n }) +\n ': ' +\n parseInt(indicators.atCheckpoint || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.atDestination'\n }) +\n ': ' +\n parseInt(indicators.onDestination || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'routes.incorrectExecution'\n }),\n permissions: [permissions.viewRunningIndicator],\n bigIndicator: indicators.incorrectRunning || 0,\n details: [\n {\n popoverTitle: intl.formatMessage({\n id: 'routes.eao'\n }),\n popoverBody: intl.formatMessage({\n id: 'routes.eaoInfo'\n }),\n info:\n intl.formatMessage({\n id: 'routes.eao'\n }) +\n ': ' +\n parseInt(indicators.eao || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.paused'\n }) +\n ': ' +\n parseInt(indicators.paused || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.offRoute'\n }) +\n ': ' +\n parseInt(indicators.offRoute || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.unauthorizedReturn'\n }) +\n ': ' +\n parseInt(indicators.unauthorizedReturn || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'routes.finalized'\n }),\n bigIndicator: indicators.finalized || 0\n }\n ];\n};\nexport const getExecutionsStatus = (state) => {\n const intl = appIntl();\n const indicators = getIndicatorsInformation(state);\n var labels: any[] = [];\n var series: any[] = [];\n if (\n indicators.scheduled > 0 ||\n indicators.finalized > 0 ||\n indicators.canceled > 0 ||\n indicators.running > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'routes.scheduled'\n }),\n intl.formatMessage({\n id: 'routes.finalized'\n }),\n intl.formatMessage({\n id: 'routes.canceled'\n }),\n intl.formatMessage({\n id: 'routes.running'\n })\n ];\n series = [indicators.scheduled, indicators.finalized, indicators.canceled, indicators.running];\n }\n return {\n title: intl.formatMessage({\n id: 'routes.routeStatus'\n }),\n permissions: [permissions.viewRouteByStatusGraph],\n labels: labels,\n values: [[18], [6], [8], [1, 2, 3, 5, 7, 10, 15, 16]],\n series: series\n };\n};\nexport const getRunningStatus = (state) => {\n const intl = appIntl();\n const indicators = getIndicatorsInformation(state);\n const colors = [\n '#44ABFF', // on origin\n '#00D57E', // on destination\n '#00EAD5', // on route\n '#e3e3e4', // old color '#FF7A00', // paused\n '#FF4459', // off route\n '#7669E8', // at checkpoint\n '#490002', // eao\n '#BA0000' // Unauthorized return\n ];\n var labels: any[] = [];\n var series: any[] = [];\n if (\n indicators.onOrigin > 0 ||\n indicators.onDestination > 0 ||\n indicators.onRoute > 0 ||\n indicators.paused > 0 ||\n indicators.offRoute > 0 ||\n indicators.atCheckpoint > 0 ||\n indicators.eao > 0 ||\n indicators.unauthorizedReturn > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'routes.atOrigin'\n }),\n intl.formatMessage({\n id: 'routes.atDestination'\n }),\n intl.formatMessage({\n id: 'routes.onRoute'\n }),\n intl.formatMessage({\n id: 'routes.paused'\n }),\n intl.formatMessage({\n id: 'routes.offRoute'\n }),\n intl.formatMessage({\n id: 'routes.atCheckpoint'\n }),\n intl.formatMessage({\n id: 'routes.eao'\n }),\n intl.formatMessage({\n id: 'routes.unauthorizedReturn'\n })\n ];\n series = [\n indicators.onOrigin,\n indicators.onDestination,\n indicators.onRoute,\n indicators.paused,\n indicators.offRoute,\n indicators.atCheckpoint,\n indicators.eao,\n indicators.unauthorizedReturn\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'routes.runningStatus'\n }),\n permissions: [permissions.viewRouteRunningGraph],\n labels: labels,\n colors,\n values: [1, 2, 3, 5, 7, 10, 15, 16],\n series: series\n };\n};\n//Status of sagas\nexport const isFetchingRoutesExecutions = (state) => getOwnState(state).isFetchingExecutions;\nexport const isEditingRouteExecution = (state) => getOwnState(state).isEditingExecution;\nexport const isCancelingRoutesExecution = (state) => getOwnState(state).isCancelingExecution;\nexport const isFinalizingRoutesExecution = (state) => getOwnState(state).isFinalizingExecution;\nexport const isCompletingRoutesExecution = (state) => getOwnState(state).isCompletingExecution;\nexport const isRemovingRoutesExecution = (state) => getOwnState(state).isRemovingExecution;\nexport const isPausingRoutesExecution = (state) => getOwnState(state).isPausingExecution;\nexport const isStartingRoutesExecution = (state) => getOwnState(state).isStartingExecution;\nexport const isUpdatingManualTransitRoutesExecution = (state) =>\n getOwnState(state).isUpdatingManualTransitExecution;\nexport const isSharingRoutesExecution = (state) => getOwnState(state).isSharingExecution;\nexport const isChangingToAlternateRouteExecution = (state) =>\n getOwnState(state).isChangingToAlternateRoute;\n\n//Errors\nexport const getFetchingRoutesExecutionsErrors = (state) =>\n getOwnState(state).errorFetchingExecutions;\nexport const getEditingRouteExecutionErrors = (state) => getOwnState(state).errorEditingExecution;\nexport const getCancelingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorCancelingExecution;\nexport const getFinalizingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorFinalizingExecution;\nexport const getCompletingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorCompletingExecution;\nexport const getRemovingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorRemovingExecution;\nexport const getPausingRoutesExecutionErrors = (state) => getOwnState(state).errorPausingExecution;\nexport const getStartingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorStartingExecution;\nexport const getUpdatingManualTransitRoutesExecutionErrors = (state) =>\n getOwnState(state).errorUpdatingManualTransitExecution;\nexport const getSharingRoutesExecutionErrors = (state) => getOwnState(state).errorSharingExecution;\nexport const getChangingToAlternateRouteErrors = (state) =>\n getOwnState(state).errorChangingToAlternateRoute;\n","import { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Button, Tooltip, Spinner } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n id: string;\n icon: string;\n permissions?: any[];\n isDisabled?: boolean;\n handleClick: any;\n className?: string;\n tooltipMessage?: any;\n visible?: boolean;\n color?: string;\n iconSize?: number;\n isLoading?: boolean;\n tooltipPosition?: string;\n}\n\nconst DefaultButton = (props: Props) => {\n const store = useSelector((state) => state);\n const {\n isDisabled,\n isLoading = false,\n handleClick,\n tooltipMessage,\n icon,\n id,\n permissions,\n color,\n className,\n iconSize = 16,\n visible = true,\n tooltipPosition = 'top'\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n \n {isLoading ? (\n <>\n \n \n ) : (\n \n )}\n\n {!isDisabled && tooltipMessage && (\n \n {tooltipMessage}\n \n )}\n \n ) : null;\n};\n\nDefaultButton.defaultProps = {\n id: 'DefaultButton',\n icon: 'Plus',\n isDisabled: false,\n className: ''\n};\n\nexport default DefaultButton;\n","export const JOBS_BOARD_FETCH_STARTED = 'JOBS_BOARD_FETCH_STARTED';\nexport const JOBS_BOARD_FETCH_COMPLETED = 'JOBS_BOARD_FETCH_COMPLETED';\nexport const JOBS_BOARD_FETCH_FAILED = 'JOBS_BOARD_FETCH_FAILED';\n\nexport const JOBS_BOARD_CHANGE_STATUS_STARTED = 'JOBS_BOARD_CHANGE_STATUS_STARTED';\nexport const JOBS_BOARD_CHANGE_STATUS_COMPLETED = 'JOBS_BOARD_CHANGE_STATUS_COMPLETED';\nexport const JOBS_BOARD_CHANGE_STATUS_FAILED = 'JOBS_BOARD_CHANGE_STATUS_FAILED';\n","export const env = { ...process.env, ...window['env'] };\n","import * as types from '../../types/routes';\n\nexport const startFetchingRoutes = (filters = {}) => ({\n type: types.ROUTES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutes = (entities, order, operatorId, organizationId) => ({\n type: types.ROUTES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingRoutes = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingRoutes = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.ROUTES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingRoutes = (entities, order, operatorId, organizationId) => ({\n type: types.ROUTES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingRoutes = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingRoute = (route) => ({\n type: types.ROUTE_ADD_STARTED,\n payload: route\n});\nexport const completeAddingRoute = (oldId, routeInformation) => ({\n type: types.ROUTE_ADD_COMPLETED,\n payload: { oldId, routeInformation }\n});\nexport const failAddingRoute = (oldId, error) => ({\n type: types.ROUTE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingRoute = (route) => ({\n type: types.ROUTE_EDIT_STARTED,\n payload: route\n});\nexport const completeEditingRoute = (routeInformation) => ({\n type: types.ROUTE_EDIT_COMPLETED,\n payload: routeInformation\n});\nexport const failEditingRoute = (oldRoute, error) => ({\n type: types.ROUTE_EDIT_FAILED,\n payload: {\n oldRoute,\n error\n }\n});\n\nexport const startRemovingRoute = (routeId) => ({\n type: types.ROUTE_REMOVE_STARTED,\n payload: {\n routeId\n }\n});\nexport const completeRemovingRoute = (routeId) => ({\n type: types.ROUTE_REMOVE_COMPLETED,\n payload: {\n routeId\n }\n});\nexport const failRemovingRoute = (routeId, error) => ({\n type: types.ROUTE_REMOVE_FAILED,\n payload: {\n routeId,\n error\n }\n});\n\nexport const startRemovingRoutes = (routeIds) => ({\n type: types.ROUTES_REMOVE_STARTED,\n payload: {\n routeIds\n }\n});\nexport const completeRemovingRoutes = (routeIds) => ({\n type: types.ROUTES_REMOVE_COMPLETED,\n payload: {\n routeIds\n }\n});\nexport const failRemovingRoutes = (routeIds, error) => ({\n type: types.ROUTES_REMOVE_FAILED,\n payload: {\n routeIds,\n error\n }\n});\n\nexport const selectRoute = (routeId) => ({\n type: types.ROUTE_SELECTED,\n payload: routeId\n});\n\nexport const selectAllRoutes = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_SELECTED,\n payload: routeIds\n});\n\nexport const deselectRoute = (routeId) => ({\n type: types.ROUTE_DESELECTED,\n payload: routeId\n});\n\nexport const deselectAllRoutes = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_DESELECTED,\n payload: routeIds\n});\n\nexport const startCopyRoute = (\n routeId,\n newRouteName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTE_COPY_STARTED,\n payload: { routeId, newRouteName, organizationId, divisionId, subdivisionId }\n});\nexport const completeCopyRoute = (\n routeId,\n newRouteId,\n newRouteName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTE_COPY_COMPLETED,\n payload: { routeId, newRouteId, newRouteName, organizationId, divisionId, subdivisionId }\n});\nexport const failCopyRoute = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTE_COPY_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const showRouteInMap = (routeId) => ({\n type: types.ROUTE_SHOW_IN_MAP,\n payload: routeId\n});\n\nexport const showAllRoutesInMap = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_SHOW_IN_MAP,\n payload: routeIds\n});\n\nexport const hideRouteInMap = (routeId) => ({\n type: types.ROUTE_HIDE_IN_MAP,\n payload: routeId\n});\n\nexport const hideAllRoutesInMap = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_HIDE_IN_MAP,\n payload: routeIds\n});\n","export * from './backlog';\nexport * from './board';\nexport * from './report';\n\nexport const JOB_FETCH_STARTED = 'JOB_FETCH_STARTED';\nexport const JOB_FETCH_COMPLETED = 'JOB_FETCH_COMPLETED';\nexport const JOB_FETCH_FAILED = 'JOB_FETCH_FAILED';\n","export const WORKPLANS_VISITS_FETCH_STARTED = 'WORKPLANS_VISITS_FETCH_STARTED';\nexport const WORKPLANS_VISITS_FETCH_COMPLETED = 'WORKPLANS_VISITS_FETCH_COMPLETED';\nexport const WORKPLANS_VISITS_FETCH_FAILED = 'WORKPLANS_VISITS_FETCH_FAILED';\n\nexport const WORKPLANS_ALL_VISITS_FETCH_STARTED = 'WORKPLANS_ALL_VISITS_FETCH_STARTED';\nexport const WORKPLANS_ALL_VISITS_FETCH_COMPLETED = 'WORKPLANS_ALL_VISITS_FETCH_COMPLETED';\nexport const WORKPLANS_ALL_VISITS_FETCH_FAILED = 'WORKPLANS_ALL_VISITS_FETCH_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((divisionId) => {\n newState[divisionId] = {\n isSelected: false,\n ...state[divisionId],\n ...entities[divisionId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.DIVISION_ADD_COMPLETED: {\n const { oldId, division } = action.payload;\n const newState = omit(state, oldId);\n newState[division.divisionId] = {\n ...state[oldId],\n ...division,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.DIVISION_EDIT_COMPLETED: {\n const division = action.payload;\n return {\n ...state,\n [division.divisionId]: {\n ...omit(state[division.divisionId], ['oldDivision']),\n ...omit(division, ['oldDivision']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.DIVISION_ADD_STARTED: {\n const division = action.payload;\n const newState = { ...state };\n newState[division.divisionId] = {\n isSelected: false,\n ...division,\n isConfirmed: false\n };\n return newState;\n }\n case types.DIVISION_EDIT_STARTED: {\n const division = action.payload;\n return {\n ...state,\n [division.divisionId]: {\n ...state[division.divisionId],\n oldDivision: state[division.divisionId],\n ...division,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.DIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.DIVISION_EDIT_FAILED: {\n const { oldDivision } = action.payload;\n return {\n ...state,\n [oldDivision.divisionId]: {\n ...omit(state[oldDivision.divisionId], ['oldDivision']),\n ...oldDivision,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.DIVISION_REMOVE_COMPLETED: {\n const { divisionId } = action.payload;\n return omit(state, divisionId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.DIVISION_SELECTED: {\n const divisionId = action.payload;\n const newState = {\n ...state,\n [divisionId]: {\n ...state[divisionId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.DIVISION_DESELECTED: {\n const divisionId = action.payload;\n return {\n ...state,\n [divisionId]: {\n ...state[divisionId],\n isSelected: false\n }\n };\n }\n\n case types.DIVISIONS_ALL_SELECTED: {\n const divisionIds = action.payload;\n const newState = { ...state };\n if (divisionIds.length == 0) {\n forEach(state, (division: any, divisionId) => {\n newState[divisionId] = {\n ...division,\n isSelected: true\n };\n });\n } else {\n divisionIds.forEach((divisionId) => {\n newState[divisionId] = {\n ...state[divisionId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.DIVISIONS_ALL_DESELECTED: {\n const divisionIds = action.payload;\n const newState = { ...state };\n if (divisionIds.length == 0) {\n forEach(state, (division: any, divisionId) => {\n newState[divisionId] = {\n ...division,\n isSelected: false\n };\n });\n } else {\n divisionIds.forEach((divisionId) => {\n newState[divisionId] = {\n ...state[divisionId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.DIVISION_ADD_COMPLETED: {\n const { oldId, division } = action.payload;\n return state.map((divisionId) => (divisionId === oldId ? division.divisionId : divisionId));\n }\n\n case types.DIVISION_REMOVE_COMPLETED: {\n const { divisionId } = action.payload;\n return state.filter((divisionIdState) => divisionIdState !== divisionId);\n }\n\n //CASE ADD STARTED\n case types.DIVISION_ADD_STARTED: {\n const division = action.payload;\n return [...state, division.divisionId];\n }\n\n //CASE ADD FAILED\n case types.DIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((divisionIdState) => divisionIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.DIVISIONS_FETCH_STARTED: {\n return true;\n }\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.DIVISIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_ADD_STARTED: {\n return true;\n }\n case types.DIVISION_ADD_COMPLETED:\n case types.DIVISION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_EDIT_STARTED: {\n return true;\n }\n case types.DIVISION_EDIT_COMPLETED:\n case types.DIVISION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_REMOVE_STARTED: {\n return true;\n }\n case types.DIVISION_REMOVE_COMPLETED:\n case types.DIVISION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.DIVISIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISIONS_FETCH_STARTED:\n case types.DIVISIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.DIVISIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISIONS_PARTIAL_FETCH_STARTED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_ADD_STARTED:\n case types.DIVISION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_EDIT_STARTED:\n case types.DIVISION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_REMOVE_STARTED:\n case types.DIVISION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst divisions = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default divisions;\n\n//Own state\nexport const getOwnState = (state) => state.divisions;\n\n//Information\nexport const getDivision = (state, divisionId) => {\n const division = getOwnState(state).byId[divisionId];\n if (division) {\n const operator = operatorSelectors.getOperator(state, division.operatorId);\n const organization = organizationSelectors.getOrganization(state, division.organizationId);\n return {\n ...division,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : ''\n };\n } else return undefined;\n};\nexport const getDivisionsList = (state) =>\n getOwnState(state)\n .order.map((id) => getDivision(state, id))\n .filter((division) => division.divisionStatus > 0);\nexport const getDivisionsListByMembership = (state, membership) => {\n //Se filtra por operatorId y organizationId\n if (membership.operatorId) {\n if (membership.organizationId) {\n return getDivisionsList(state).filter(\n (division) =>\n division.operatorId === membership.operatorId &&\n division.organizationId === membership.organizationId\n );\n }\n return getDivisionsList(state).filter(\n (division) => division.operatorId === membership.operatorId\n );\n }\n //Si no se ha seleccionado una organización se devuelve la lista completa\n else return getDivisionsList(state);\n};\n\nexport const getDivisionsListBySelectedOrganization = (state, membership) => {\n //Se filtra por organizationId\n if (membership.organizationId) {\n return getDivisionsList(state).filter(\n (division) => division.organizationId === membership.organizationId\n );\n }\n //Si no se ha seleccionado una organización se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedDivisions = (state) => {\n const selectedDivisions = getDivisionsList(state).filter((division) => division.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedDivisions.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedDivisions.length > 0) return selectedDivisions;\n};\n\nexport const getSelectedDivision = (state) => {\n const selectedDivisions = getDivisionsList(state).filter((division) => division.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedDivisions.length === 1) return selectedDivisions[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListDivisions = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListDivisions = (state) => getOwnState(state).isFetchingList;\nexport const isAddingDivision = (state) => getOwnState(state).isAdding;\nexport const isEditingDivision = (state) => getOwnState(state).isEditing;\nexport const isRemovingDivision = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListDivisionsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListDivisionsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingDivisionErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingDivisionErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingDivisionErrors = (state) => getOwnState(state).errorRemoving;\n","/* -------------------------------------------------------------------------- */\n/* Componente FetchEntities */\n/* -------------------------------------------------------------------------- */\n// Este componente es utilizado para cargar cualquier entity\n// Simplemente se debe enviar el use{Entity} en verdadero\n// Si desea que se cada cierto tiempo se este viendo si el entity debe actualizarse coloque un entity timeout\n// Puede utilizar varios componentes FetchEntities para diferenciar los que necesitan timeout de los que no\n\nimport { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport * as entityActions from '../../actions';\nimport {\n ENTITY_AGENTS,\n ENTITY_ASSETS,\n ENTITY_CONTACTS,\n ENTITY_CONTRACT_TEMPLATES,\n ENTITY_COUNTRIES,\n ENTITY_CUSTOMERS,\n ENTITY_DESTINATIONS,\n ENTITY_DIVISIONS,\n ENTITY_DRIVERS,\n ENTITY_FORMS,\n ENTITY_GEOFENCES,\n ENTITY_GROUPS,\n ENTITY_JOBS_BACKLOG,\n ENTITY_LOCATIONS,\n ENTITY_MAINTENANCE_LINES,\n ENTITY_MODULES,\n ENTITY_OFFICES,\n ENTITY_OPERATORS,\n ENTITY_ORGANIZATION_CONTRACTS,\n ENTITY_ORGANIZATIONS,\n ENTITY_PROTOCOLS,\n ENTITY_ROUTES,\n ENTITY_SCHEDULES,\n ENTITY_SENSORS,\n ENTITY_SERVICE_CLASSES,\n ENTITY_SIM_CARDS,\n ENTITY_SUBDIVISONS,\n ENTITY_UNITS,\n ENTITY_USER_NOTIFICATIONS,\n ENTITY_USERS,\n ENTITY_VEHICLES,\n ENTITY_WORKPLANS\n} from '../../constants';\nimport * as entitiesSelectors from '../../reducers';\n\nexport interface DefaultFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n groupId?: number;\n}\n\nexport interface FilterMapBounds {\n operatorId?: number;\n organizationId?: number;\n bounds?: any;\n}\n\ninterface Props {\n useUnits?: boolean;\n unitsFilters?: DefaultFilters;\n useSubdivisions?: boolean;\n subdivisionsFilters?: DefaultFilters;\n useMaintenanceLines?: boolean;\n maintenanceLinesFilters?: DefaultFilters;\n useVehicles?: boolean;\n vehiclesFilters?: DefaultFilters;\n useSims?: boolean;\n simsFilters?: DefaultFilters;\n useModules?: boolean;\n modulesFilters?: DefaultFilters;\n useDrivers?: boolean;\n driversFilters?: DefaultFilters;\n useAgents?: boolean;\n useServiceClasses?: boolean;\n useServiceClassesDropdown?: boolean;\n useUsers?: boolean;\n usersFilters?: DefaultFilters;\n useOperators?: boolean;\n useDivisions?: boolean;\n divisionsFilters?: DefaultFilters;\n useOrganizations?: boolean;\n useContacts?: boolean;\n useWorkplans?: boolean;\n workplansFilters?: DefaultFilters;\n useGeofences?: boolean;\n geofencesFilters?: FilterMapBounds;\n useSchedules?: boolean;\n useForms?: boolean;\n useRoutes?: boolean;\n routesFilters?: DefaultFilters;\n useCountries?: boolean;\n useLocations?: boolean;\n locationsFilters?: FilterMapBounds;\n useOffices?: boolean;\n officesFilters?: DefaultFilters;\n useAssets?: boolean;\n assetsFilters?: DefaultFilters;\n useSensors?: boolean;\n useJobsBacklog?: boolean;\n jobsBacklogFilters?: DefaultFilters;\n useGroups?: boolean;\n groupsFilters?: DefaultFilters;\n useOrganizationContracts?: boolean;\n organizationContractsFilters?: DefaultFilters;\n useContractTemplates?: boolean;\n contractTemplatesFilters?: DefaultFilters;\n useCustomers?: boolean;\n customersFilters?: DefaultFilters;\n useProtocols?: boolean;\n protocolsFilters?: DefaultFilters;\n useUserNotifications?: boolean;\n userNotificationFilters?: DefaultFilters;\n intervalTime?: number; //milliseconds ?: send undefined,null or 0 to avoid a setInterval\n useDestinations?: boolean;\n destinationsFilters?: DefaultFilters;\n additionalEntities?: number[]; //list of entitytypes (int) to also load\n}\n\nconst FetchEntities = (props: Props) => {\n const {\n useUnits,\n unitsFilters,\n useSubdivisions,\n subdivisionsFilters,\n useMaintenanceLines,\n maintenanceLinesFilters,\n useVehicles,\n vehiclesFilters,\n useSims,\n simsFilters,\n useModules,\n modulesFilters,\n useDrivers,\n driversFilters,\n useAgents,\n useServiceClasses,\n useServiceClassesDropdown,\n useUsers,\n usersFilters,\n useOperators,\n useDivisions,\n divisionsFilters,\n useOrganizations,\n useContacts,\n useWorkplans,\n workplansFilters,\n useGeofences,\n geofencesFilters,\n useSchedules,\n useForms,\n useRoutes,\n routesFilters,\n useCountries,\n useLocations,\n locationsFilters,\n useOffices,\n officesFilters,\n useAssets,\n assetsFilters,\n useSensors,\n useJobsBacklog,\n jobsBacklogFilters,\n useGroups,\n groupsFilters,\n useOrganizationContracts,\n organizationContractsFilters,\n useContractTemplates,\n contractTemplatesFilters,\n useCustomers,\n customersFilters,\n useProtocols,\n protocolsFilters,\n useUserNotifications,\n userNotificationFilters,\n intervalTime,\n useDestinations,\n destinationsFilters,\n additionalEntities\n } = props;\n const dispatch = useDispatch();\n\n const { isEntityUpdatedFunction, isFetchedListEntities } = useSelector((state) => ({\n isEntityUpdatedFunction: entitiesSelectors.isEntityUpdated(state),\n isFetchedListEntities: entitiesSelectors.isFetchedListEntities(state)\n }));\n\n const fetchEntities = () => {\n let entities: any[] = [];\n if (additionalEntities != null) entities = [...additionalEntities];\n if (useAgents) entities.push(ENTITY_AGENTS);\n if (useServiceClasses) entities.push(ENTITY_SERVICE_CLASSES);\n if (useOperators) entities.push(ENTITY_OPERATORS);\n if (useOrganizations) entities.push(ENTITY_ORGANIZATIONS);\n if (useContacts) entities.push(ENTITY_CONTACTS);\n if (useSchedules) entities.push(ENTITY_SCHEDULES);\n if (useForms) entities.push(ENTITY_FORMS);\n if (useCountries) entities.push(ENTITY_COUNTRIES);\n if (useSensors) entities.push(ENTITY_SENSORS);\n if (useOrganizationContracts) entities.push(ENTITY_ORGANIZATION_CONTRACTS);\n if (useContractTemplates) entities.push(ENTITY_CONTRACT_TEMPLATES);\n if (useCustomers) entities.push(ENTITY_CUSTOMERS);\n if (useProtocols) entities.push(ENTITY_PROTOCOLS);\n if (useUserNotifications) entities.push(ENTITY_USER_NOTIFICATIONS);\n if (entities.length > 0) {\n dispatch(entityActions.startUpdatingEntities(entities));\n }\n\n const isEntityUpdated = isEntityUpdatedFunction(entities);\n const finalEntities = entities.filter((_, i) => isEntityUpdated[i] !== true);\n if (finalEntities.length > 0) dispatch(entityActions.startUpdatingEntities(finalEntities));\n };\n\n const fetchEntitiesWithFilters = (entities: any[]) => {\n const isEntityUpdated = isEntityUpdatedFunction(entities);\n const finalEntities = entities.filter((_, i) => isEntityUpdated[i] !== true);\n if (finalEntities.length > 0) {\n dispatch(entityActions.startUpdatingEntities(finalEntities));\n }\n };\n\n const fetchDivisions = (divisionsFilters) => {\n if (useDivisions && divisionsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_DIVISIONS,\n operatorId: divisionsFilters?.operatorId,\n organizationId: divisionsFilters?.organizationId\n }\n ]);\n };\n\n const fetchSubdivisions = (subdivisionsFilters) => {\n if (useSubdivisions && subdivisionsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SUBDIVISONS,\n operatorId: subdivisionsFilters?.operatorId,\n organizationId: subdivisionsFilters?.organizationId\n }\n ]);\n };\n\n const fetchMaintenanceLines = (maintenanceLinesFilters) => {\n if (useMaintenanceLines && maintenanceLinesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_MAINTENANCE_LINES,\n operatorId: maintenanceLinesFilters?.operatorId,\n organizationId: maintenanceLinesFilters?.organizationId\n }\n ]);\n };\n\n const fetchLocations = (locationsFilters) => {\n if (useLocations && locationsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_LOCATIONS,\n operatorId: locationsFilters?.operatorId,\n organizationId: locationsFilters?.organizationId,\n bounds: locationsFilters?.bounds\n }\n ]);\n };\n\n const fetchOffices = (officesFilters) => {\n if (useOffices && officesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_OFFICES,\n operatorId: officesFilters?.operatorId,\n organizationId: officesFilters?.organizationId\n }\n ]);\n };\n\n const fetchDrivers = (driversFilters) => {\n if (useDrivers && driversFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_DRIVERS,\n operatorId: driversFilters?.operatorId,\n organizationId: driversFilters?.organizationId\n }\n ]);\n };\n\n const fetchWorkplans = (workplansFilters) => {\n if (useWorkplans && workplansFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_WORKPLANS,\n operatorId: workplansFilters?.operatorId,\n organizationId: workplansFilters?.organizationId\n }\n ]);\n };\n\n const fetchGeofences = (geofencesFilters) => {\n if (useGeofences && geofencesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_GEOFENCES,\n operatorId: geofencesFilters?.operatorId,\n organizationId: geofencesFilters?.organizationId,\n bounds: geofencesFilters?.bounds\n }\n ]);\n };\n\n const fetchRoutes = (routesFilters) => {\n if (useRoutes && routesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ROUTES,\n operatorId: routesFilters?.operatorId,\n organizationId: routesFilters?.organizationId\n }\n ]);\n };\n\n const fetchUnits = (unitsFilters) => {\n if (useUnits && unitsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_UNITS,\n operatorId: unitsFilters?.operatorId,\n organizationId: unitsFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchVehicles = (vehiclesFilters) => {\n if (useVehicles && vehiclesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_VEHICLES,\n operatorId: vehiclesFilters?.operatorId,\n organizationId: vehiclesFilters?.organizationId\n }\n ]);\n };\n\n const fetchAssets = (assetsFilters) => {\n if (useAssets && assetsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ASSETS,\n operatorId: assetsFilters?.operatorId,\n organizationId: assetsFilters?.organizationId\n }\n ]);\n };\n\n const fetchJobsBacklog = (jobsFilters: DefaultFilters | undefined) => {\n if (useJobsBacklog && jobsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_JOBS_BACKLOG,\n operatorId: jobsFilters?.operatorId,\n organizationId: jobsFilters?.organizationId\n }\n ]);\n };\n\n const fetchUsers = (usersFilters) => {\n if (useUsers)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_USERS,\n operatorId: usersFilters?.operatorId,\n organizationId: usersFilters?.organizationId,\n allowNullOrganizationId: true,\n allowNullOperatorId: true\n }\n ]);\n };\n\n const fetchDestinations = (destinationsFilters) => {\n if (useDestinations)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_DESTINATIONS,\n operatorId: destinationsFilters?.operatorId,\n organizationId: destinationsFilters?.organizationId,\n allowNullOrganizationId: true,\n allowNullOperatorId: true\n }\n ]);\n };\n\n const fetchGroups = (groupsFilters) => {\n if (useGroups)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_GROUPS,\n operatorId: groupsFilters?.operatorId,\n organizationId: groupsFilters?.organizationId\n }\n ]);\n };\n\n const fetchOrganizationContracts = (organizationContractsFilters) => {\n if (useOrganizationContracts && organizationContractsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ORGANIZATION_CONTRACTS,\n operatorId: organizationContractsFilters?.operatorId,\n organizationId: organizationContractsFilters?.organizationId\n }\n ]);\n };\n\n const fetchContracTemplates = (contractTemplatesFilters) => {\n if (useContractTemplates && contractTemplatesFilters)\n dispatch(\n entityActions.startUpdatingEntities([\n {\n entityTypeId: ENTITY_CONTRACT_TEMPLATES,\n operatorId: contractTemplatesFilters?.operatorId,\n organizationId: contractTemplatesFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ])\n );\n };\n\n const fetchCustomers = (customersFilters) => {\n if (useCustomers && customersFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_CUSTOMERS,\n operatorId: customersFilters?.operatorId,\n organizationId: customersFilters?.organizationId\n }\n ]);\n };\n\n const fetchModules = (modulesFilters) => {\n if (useModules && modulesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_MODULES,\n operatorId: modulesFilters?.operatorId,\n organizationId: modulesFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchSims = (simsFilters) => {\n if (useSims && simsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SIM_CARDS,\n operatorId: simsFilters?.operatorId,\n organizationId: simsFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchServiceClasses = () => {\n if (useServiceClasses)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SERVICE_CLASSES,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchServiceClassesDropdown = () => {\n if (useServiceClassesDropdown) {\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SERVICE_CLASSES,\n isDropdown: true,\n allowNullOrganizationId: true\n }\n ]);\n }\n };\n\n const fetchProtocols = (protocolsFilters) => {\n if (useProtocols && protocolsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_PROTOCOLS,\n operatorId: protocolsFilters?.operatorId,\n organizationId: protocolsFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchUserNotifications = (userNotificationFilters) => {\n if (useUserNotifications && userNotificationFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_USER_NOTIFICATIONS,\n operatorId: userNotificationFilters?.operatorId,\n organizationId: userNotificationFilters?.organizationId\n }\n ]);\n };\n\n useEffect(() => {\n if (isFetchedListEntities) fetchEntities();\n }, [isFetchedListEntities]);\n\n //Se actualiza la entity de divisions cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchDivisions(divisionsFilters);\n }, [isFetchedListEntities, useDivisions, divisionsFilters?.organizationId]);\n\n //Se actualiza la entity de subdivisions cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchSubdivisions(subdivisionsFilters);\n }, [isFetchedListEntities, useSubdivisions, subdivisionsFilters?.organizationId]);\n\n //Se actualiza la entity de maintenanceLines cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchMaintenanceLines(maintenanceLinesFilters);\n }, [isFetchedListEntities, useMaintenanceLines, maintenanceLinesFilters?.organizationId]);\n\n //Se actualiza la entity de locations cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchLocations(locationsFilters);\n }, [isFetchedListEntities, useLocations, locationsFilters?.organizationId]);\n\n //Se actualiza la entity de offices cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchOffices(officesFilters);\n }, [isFetchedListEntities, useOffices, officesFilters?.organizationId]);\n\n //Se actualiza la entity de drivers cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchDrivers(driversFilters);\n }, [isFetchedListEntities, useDrivers, driversFilters?.organizationId]);\n\n //Se actualiza la entity de workplans cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchWorkplans(workplansFilters);\n }, [isFetchedListEntities, useWorkplans, workplansFilters?.organizationId]);\n\n //Se actualiza la entity de geofences cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchGeofences(geofencesFilters);\n }, [isFetchedListEntities, useGeofences, geofencesFilters?.organizationId]);\n\n //Se actualiza la entity de workplans cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchRoutes(routesFilters);\n }, [isFetchedListEntities, useRoutes, routesFilters?.organizationId]);\n\n //Se actualiza la entity de units cuando cambia la organización y el operador\n useEffect(() => {\n if (isFetchedListEntities) fetchUnits(unitsFilters);\n }, [isFetchedListEntities, useUnits, unitsFilters?.operatorId, unitsFilters?.organizationId]);\n\n //Se actualiza la entity de vehicles cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchVehicles(vehiclesFilters);\n }, [isFetchedListEntities, useVehicles, vehiclesFilters?.organizationId]);\n\n //Se actualiza la entity de assets cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchAssets(assetsFilters);\n }, [isFetchedListEntities, useAssets, assetsFilters?.organizationId]);\n\n useEffect(() => {\n if (isFetchedListEntities) fetchJobsBacklog(jobsBacklogFilters);\n }, [isFetchedListEntities, useJobsBacklog, assetsFilters?.organizationId]);\n\n //Se actualiza la entity de users cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchUsers(usersFilters);\n }, [isFetchedListEntities, useUsers, usersFilters?.organizationId]);\n\n //Se actualiza la entity de destinations cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchDestinations(destinationsFilters);\n }, [isFetchedListEntities, useDestinations, destinationsFilters?.organizationId]);\n\n //Se actualiza la entity de customers cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchCustomers(customersFilters);\n }, [isFetchedListEntities, useCustomers, customersFilters?.organizationId]);\n\n //Se actualiza la entity de groups cuando cambia la organización\n useEffect(() => {\n if (isFetchedListEntities) fetchGroups(groupsFilters);\n }, [isFetchedListEntities, useGroups, groupsFilters?.organizationId]);\n\n //Se actualiza la entity de contratos de organizacion cuando cambia la organización y operador\n useEffect(() => {\n if (isFetchedListEntities) fetchOrganizationContracts(organizationContractsFilters);\n }, [\n isFetchedListEntities,\n useOrganizationContracts,\n organizationContractsFilters?.operatorId,\n organizationContractsFilters?.organizationId\n ]);\n\n //Se actualiza la entity de plantillas de contratos cuando cambia el operador\n useEffect(() => {\n if (isFetchedListEntities) fetchContracTemplates(contractTemplatesFilters);\n }, [\n isFetchedListEntities,\n useContractTemplates,\n contractTemplatesFilters?.operatorId,\n contractTemplatesFilters?.organizationId\n ]);\n\n //Se actualiza la entity de modules cuando cambia la operador u organización\n useEffect(() => {\n if (isFetchedListEntities) fetchModules(modulesFilters);\n }, [\n isFetchedListEntities,\n useModules,\n modulesFilters?.operatorId,\n modulesFilters?.organizationId\n ]);\n\n //Se actualiza la entity de sims cuando cambia la operador u organización\n useEffect(() => {\n if (isFetchedListEntities) fetchSims(simsFilters);\n }, [isFetchedListEntities, useSims, simsFilters?.operatorId, simsFilters?.organizationId]);\n\n //Se actualiza la entity de class service\n useEffect(() => {\n if (isFetchedListEntities) fetchServiceClasses();\n }, [isFetchedListEntities, useServiceClasses]);\n\n //Se actualiza la entity de class service\n useEffect(() => {\n if (isFetchedListEntities) fetchServiceClassesDropdown();\n }, [isFetchedListEntities, useServiceClassesDropdown]);\n\n //Se actualiza la entity de protocolos\n useEffect(() => {\n if (isFetchedListEntities) fetchProtocols(protocolsFilters);\n }, [\n isFetchedListEntities,\n useProtocols,\n protocolsFilters?.operatorId,\n protocolsFilters?.organizationId\n ]);\n\n useEffect(() => {\n if (isFetchedListEntities) fetchUserNotifications(userNotificationFilters);\n }, [\n isFetchedListEntities,\n useUserNotifications,\n userNotificationFilters?.operatorId,\n userNotificationFilters?.organizationId\n ]);\n\n return null;\n};\n\nFetchEntities.defaultProps = {\n useUnits: false,\n useSubdivisions: false,\n useMaintenanceLines: false,\n useVehicles: false,\n useSims: false,\n useModules: false,\n useDrivers: false,\n useAgents: false,\n useServiceClasses: false,\n useUsers: false,\n useOperators: false,\n useDivisions: false,\n useOrganizations: false,\n useContacts: false,\n useWorkplans: false,\n useGeofences: false,\n useSchedules: false,\n useForms: false,\n useRoutes: false,\n useCountries: false,\n useLocations: false,\n useAssets: false,\n useSensors: false,\n useJobsBacklog: false,\n useGroups: false,\n useCustomers: false,\n useOrganizationContracts: false,\n useContractTemplates: false,\n useProtocols: false,\n useUserNotifications: false,\n intervalTime: null, //milliseconds\n additionalEntities: [] //list of entitytypes (int) to also load\n};\n\nexport default FetchEntities;\n","/* eslint-disable semi */\nimport L from 'leaflet';\nimport moment from 'moment';\nimport { useRef } from 'react';\nimport { Square } from 'react-feather';\nimport { IntlShape } from 'react-intl';\nimport { UncontrolledTooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport { isNaNOrNullable } from 'utility/Utils';\nimport { Schedule } from 'views/screens/Schedules/views/listTrigger';\nimport { getPerformanceColor, getPerformanceTitle } from 'views/screens/Telemetry/utils';\nimport { getDatesDifferenceString } from 'views/screens/Units/utils';\nimport { env } from '../../../../env';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { AssignedUnit } from '../hooks/useGetAssignedUnits';\nimport { AssignmentByDate } from '../views/RoutesAssignUnitScreen/ReviewAssignmentByDateTab';\nimport { AssignmentBySchedule } from '../views/RoutesAssignUnitScreen/ReviewAssignmentByScheduleTab';\nimport {\n AssignmentTypeFormValues,\n AssignmentTypes\n} from '../views/RoutesAssignUnitScreen/SelectAssignmentTypeTab';\nimport { CommonValuesFormValues } from '../views/RoutesAssignUnitScreen/SelectCommonValuesTab';\nimport { UnitsRoutesAssignment } from '../views/RoutesAssignUnitScreen/SelectUnitsAndRoutesTab';\n\nexport const getRouteExecutionInformation = (state, routeExecution) => {\n const intl = appIntl();\n\n if (routeExecution) {\n const { routeStatusLabel, routeStatusLabelInfo } = getRouteExecutionStatusLabel(\n routeExecution.routeStatus\n );\n\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersPerHourToAuthUserSpeedSystem,\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n\n return {\n ...routeExecution,\n routeStatusLabel,\n routeStatusLabelInfo,\n isDeviceOpenLabel: intl.formatMessage({\n id: routeExecution.isDeviceOpen\n ? 'trackingUnits.sat.open'\n : routeExecution.isDeviceOpen == null\n ? 'trackingUnits.sat.unknown'\n : 'trackingUnits.sat.closed'\n }),\n stopStatus: !routeExecution.stopStatus,\n speedLabel: convertKilometersPerHourToAuthUserSpeedSystem(routeExecution.speed),\n routeProgressLabel: Math.round(routeExecution.routeProgress) + '%',\n distanceToCheckpointLabel:\n Math.round(\n convertMetersToAuthUserDistanceSystem(routeExecution.distanceToCheckpoint || 0)\n ) +\n ' ' +\n authSelectors.getAuthSystems(state).distance,\n distanceLabel:\n Math.round(convertMetersToAuthUserDistanceSystem(routeExecution.distance || 0)) +\n ' ' +\n authSelectors.getAuthSystems(state).distance,\n fuelConsumption: convertLitersToAuthUserCapacitySystem(routeExecution.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.performanceOnRoute || 0\n ),\n distanceProgress: convertKilometersToAuthUserDistanceSystem(\n routeExecution.distanceProgress || 0\n )\n };\n } else return undefined;\n};\n\nexport const getRouteExecutionStatusLabel = (routeStatus) => {\n const intl = appIntl();\n let routeStatusLabel = '';\n let routeStatusLabelInfo = '';\n switch (routeStatus) {\n case 1:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.atOrigin'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.atOrigin'\n });\n break;\n case 2:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.atDestination'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.atDestination'\n });\n break;\n case 3:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.onRoute'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.onRoute'\n });\n break;\n case 5:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.paused'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.paused'\n });\n break;\n case 6:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.finalized'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.finalized'\n });\n break;\n case 7:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.offRoute'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.offRoute'\n });\n break;\n case 8:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.canceled'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.canceled'\n });\n break;\n case 10:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.atCheckpoint'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.atCheckpoint'\n });\n break;\n case 15:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.eao'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.eaoInfo'\n });\n break;\n case 16:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.unauthorizedReturn'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.unauthorizedReturn'\n });\n break;\n case 18:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.singleScheduled'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.singleScheduled'\n });\n break;\n default:\n routeStatusLabel = '';\n routeStatusLabelInfo = '';\n break;\n }\n return { routeStatusLabel, routeStatusLabelInfo };\n};\n\nexport const completionTypes = [\n {\n value: 0,\n label: 'routes.finalizeManual'\n },\n {\n value: 1,\n label: 'routes.finalize15mins'\n },\n {\n value: 2,\n label: 'routes.finalizeInmediately'\n }\n];\n\nexport const globalNotificationFrecs = [\n {\n value: '15',\n label: 'routes.frecuency15mins'\n },\n {\n value: '30',\n label: 'routes.frecuency30mins'\n },\n {\n value: '60',\n label: 'routes.frecuency60mins'\n }\n];\n\nexport const startTimeWindow = [\n {\n value: '0', // Start time window of 0 seconds (immediate start)\n label: '0 ' // Label for the start time window (in minutes)\n },\n {\n value: '900', // Start time window of 900 seconds (15 minutes)\n label: '15 ' // Label for the start time window (in minutes)\n },\n {\n value: '1800', // Start time window of 1800 seconds (30 minutes)\n label: '30 ' // Label for the start time window (in minutes)\n },\n {\n value: '2700', // Start time window of 2700 seconds (45 minutes)\n label: '45 ' // Label for the start time window (in minutes)\n },\n {\n value: '3600', // Start time window of 3600 seconds (60 minutes)\n label: '60 ' // Label for the start time window (in minutes)\n },\n {\n value: '7200', // Start time window of 7200 seconds (120 minutes)\n label: '120 ' // Label for the start time window (in minutes)\n },\n {\n value: '10800', // Start time window of 10800 seconds (180 minutes)\n label: '180 ' // Label for the start time window (in minutes)\n }\n];\n\nexport const routesEvents = [\n { value: '1', label: 'routes.atOrigin' },\n { value: '3', label: 'routes.onRoute' },\n { value: '2', label: 'routes.singleCompleted' },\n { value: '6', label: 'routes.singleFinalized' },\n { value: '7', label: 'routes.offRoute' },\n { value: '4', label: 'routes.stoppedOnRoute' },\n { value: '9', label: 'routes.speeding' },\n { value: '10', label: 'routes.atCheckpoint' },\n { value: '16', label: 'routes.unauthorizedReturn' },\n { value: '18', label: 'routes.assigned' }\n];\n\nexport const routesTimelineEvents = [\n { value: '1', label: 'routes.atOrigin', color: '#44abff' },\n { value: '2', label: 'routes.singleCompleted', color: '#00d57e' },\n { value: '3', label: 'routes.onRoute', color: '#00ead5' },\n { value: '4', label: 'routes.stoppedOnRoute', color: '#ffc737' },\n { value: '5', label: 'routes.paused', color: '#e3e3e4' },\n { value: '6', label: 'routes.singleFinalized', color: '#2ed573' },\n { value: '7', label: 'routes.offRoute', color: '#ff4459' },\n { value: '8', label: 'routes.canceled', color: '#ff4757' },\n { value: '9', label: 'routes.speeding', color: '#ff7a00' }, //Pendiente\n { value: '10', label: 'routes.atCheckpoint', color: '#7669e8' },\n { value: '15', label: 'routes.eao', color: '#490002' },\n { value: '16', label: 'routes.unauthorizedReturn', color: '#ba0000' },\n { value: '18', label: 'routes.assigned', color: '' } //Pendiente\n];\n\nexport const routesCheckpointsIcons = [\n {\n value: '1',\n label: 'routes.checkpoint',\n icon: \n },\n {\n value: '2',\n label: 'routes.gate',\n icon: ,\n iconTxt: 'Gate'\n },\n {\n value: '3',\n label: 'routes.patrol',\n icon: ,\n iconTxt: 'Patrol'\n },\n {\n value: '4',\n label: 'routes.motorcycle',\n icon: ,\n iconTxt: 'Motorcycle'\n },\n {\n value: '5',\n label: 'routes.frontier',\n icon: ,\n iconTxt: 'Frontier'\n },\n {\n value: '6',\n label: 'routes.carLot',\n icon: ,\n iconTxt: 'CarLot'\n }\n];\n\nexport const getRouteStatusColorClass = (routeStatus: number): string => {\n if (isNaNOrNullable(routeStatus)) return '';\n switch (routeStatus) {\n case -1: //Comentario\n return 'light-comment';\n case 1:\n return 'light-onOrigin';\n case 2:\n return 'light-onDestination';\n case 3:\n return 'light-onRoute';\n case 4:\n return 'light-stoppedOnRoute';\n case 5:\n return 'light-route-paused';\n case 6:\n return 'light-route-finalized';\n case 7:\n return 'light-offRoute';\n case 8:\n return 'light-route-canceled';\n case 9:\n return 'light-route-speeding';\n case 10:\n return 'light-atCheckpoint';\n case 15:\n return 'light-eao';\n case 16:\n return 'light-unauthorizedReturn';\n case 18:\n return 'light-scheduled';\n }\n\n return '';\n};\n\nexport const getMarker = (type, index, iconId, latLng) => {\n return L.marker(latLng, {\n icon: getIcon(type, index, iconId)\n });\n};\n\nexport const getIcon = (\n type,\n index,\n iconId,\n checkpointClassDefaultColor = '',\n checkpointTextDefaultColor = ''\n) => {\n return L.divIcon({\n className: 'custom-div-icon',\n html:\n type === 1\n ? `
`\n : type === 3\n ? `
`\n : iconId == null || iconId == 1 || iconId == 0\n ? `
${index}`\n : `
`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n });\n};\n\nexport const getRouteBounds = (route) => {\n if (\n route.checkpoints &&\n route.checkpoints.filter((chk) => chk.latitude != null && chk.longitude != null).length > 0\n ) {\n var latlngPolylines: any[] = [];\n if (route.checkpoints.filter((chk) => chk.segmentPath).length > 0)\n route.checkpoints.map(\n (chk) =>\n chk.segmentPath &&\n chk.segmentPath.map((path) =>\n latlngPolylines.push(L.latLng(path.latitude, path.longitude))\n )\n );\n\n return [\n ...route.checkpoints\n .filter((chk) => chk.latitude != null && chk.longitude != null)\n .map((chk) => L.latLng(chk.latitude, chk.longitude)),\n ...latlngPolylines\n ];\n } else return [];\n};\nexport const getImportedRouteStatusColorClass = (success) => {\n return success ? 'light-success' : 'light-danger';\n};\n\ntype RouteStatus = {\n expectedPerformance: number;\n performanceOnRoute: number;\n};\nexport function performanceTemplate(args: RouteStatus, performanceUnit?: string) {\n const intl: IntlShape = appIntl();\n\n const performanceRanges = [0, 80, 90, 110, 200];\n const expectedPerformance = args['expectedPerformance'];\n const value = args['performanceOnRoute'] || 0;\n const percentage = (value / expectedPerformance) * 100;\n\n const color = getPerformanceColor(percentage, expectedPerformance, performanceRanges);\n const translation = getPerformanceTitle(percentage, performanceRanges);\n\n const valueNodeRef = useRef(undefined);\n\n return (\n

\n \n {value?.toFixed(2) ?? ''}\n \n {performanceUnit ? {performanceUnit} : ''}\n \n {`${translation ? intl.formatMessage({ id: translation }) : ''} - ${percentage.toFixed(\n 2\n )}%`}\n \n {/* */}\n

\n );\n}\n\nexport interface ValidationError {\n type?: string;\n payload?: any;\n level?: string;\n}\n\nexport const VALIDATION_ERROR_TYPES = {\n ROUTE_ALREADY_ASSIGNED_AND_ACTIVE_ON_DATABASE: 'routes.routeAlreadyAssignedAndActiveOnDatabase',\n ROUTE_ALREADY_ASSIGNED_AT_SAME_HOUR_THAT_ANOTHER_ON_DATABASE:\n 'routes.routeAlreadyAssignedAtSameHourThatAnotherOnDatabase',\n ROUTE_ALREADY_ASSIGNED_AT_SAME_HOUR_THAT_ANOTHER_ON_STATE:\n 'routes.routeAlreadyAssignedAtSameHourThatAnotherOnState',\n ROUTE_ALREADY_ASSIGNED_ON_STATE: 'routes.routeAlreadyAssignedOnState'\n};\n\nexport const getValidationErrorIcon = (errors?: ValidationError[]) => {\n if (!errors || errors.length === 0) return 'CheckCircle';\n if (errors.find((error) => error.level === 'error')) return 'AlertCircle';\n return 'PreventiveNotice';\n};\n\nexport const getValidationErrorColor = (errors?: ValidationError[]) => {\n if (!errors || errors.length === 0) return 'success';\n if (errors.find((error) => error.level === 'error')) return 'danger';\n return 'warning';\n};\n\nconst validateDateTimesDiff = (\n firstDate: moment.Moment,\n secondDate: moment.Moment,\n diffInMilliseconds?: string\n) => {\n const diffInMillisecondsAsInt = parseInt(diffInMilliseconds || '0');\n return (\n firstDate.isSame(secondDate, 'day') &&\n Math.abs(firstDate.diff(secondDate, 'ms')) < diffInMillisecondsAsInt\n );\n};\n\n// Validator that needs assigned units, and then returns a function that receives the unitsRoutesAssignment to validate\nexport const duplicatedUnitRouteAssignmentValidator =\n (\n assignedUnitsFromDatabase: AssignedUnit[],\n commonValues: Partial,\n assignmentType: Partial,\n schedule: Schedule\n ) =>\n (\n unitsRoutesAssignmentsFromState:\n | UnitsRoutesAssignment[]\n | Partial[]\n | Partial[],\n unitsRoutesAssignment:\n | UnitsRoutesAssignment\n | Partial\n | Partial\n ): ValidationError[] => {\n const errors: ValidationError[] = [];\n const { startDate } = commonValues;\n const { unitId, routeId, correlative, routeName } = unitsRoutesAssignment;\n const { assignmentType: assignmentTypeNumber } = assignmentType;\n\n // Helper function to check for duplicate assignments at the same hour\n // TODO: In the future, we must provide a smart solution to calculate the min diff time for assignments by unit (data analysis)\n const hasAssignmentAtSameHourOrScheduleNextRun = (\n existingAssignments:\n | UnitsRoutesAssignment[]\n | Partial[]\n | Partial[]\n ) => {\n let comparePredicate: (existingAssignment: any) => boolean = () => false;\n if (assignmentTypeNumber === AssignmentTypes.ByDate) {\n const stepperStartDate = moment(startDate, 'YYYY-MM-DD HH:mm');\n const assignmentStartDate = moment(unitsRoutesAssignment.startDate, 'YYYY-MM-DDTHH:mm:ss');\n // First remove current assign on filter, and then check if there is any other assignment with the same hour\n comparePredicate = (existingAssignment) => {\n const existingAssignmentStartDate = moment(\n existingAssignment.startDate,\n 'YYYY-MM-DDTHH:mm:ss'\n );\n return existingAssignment.startDate && unitsRoutesAssignment.startDate\n ? validateDateTimesDiff(\n unitsRoutesAssignment.startDate ? assignmentStartDate : stepperStartDate,\n existingAssignmentStartDate,\n env.REACT_APP_MIN_VALID_DIFF_TIME_BETWEEN_UNITS_ROUTES_ASSIGNMENT\n )\n : true;\n };\n } else {\n const stepperNextRunDate = moment(schedule.nextRunDate, 'YYYY-MM-DD HH:mm');\n // First remove current assign on filter, and then check if there is any other assignment with the same next run date\n comparePredicate = (existingAssignment) => {\n const existingAssignmentNextRunDate = moment(\n 'nextRunDate' in existingAssignment ? existingAssignment.nextRunDate : '',\n 'YYYY-MM-DDTHH:mm:ss'\n );\n const unitRoutAssignmentNextRunDate = moment(\n 'scheduleNextRunDate' in unitsRoutesAssignment\n ? unitsRoutesAssignment.scheduleNextRunDate\n : '',\n 'YYYY-MM-DDTHH:mm:ss'\n );\n if (\n 'scheduleNextRunDate' in unitsRoutesAssignment &&\n unitsRoutesAssignment.scheduleNextRunDate\n ) {\n return validateDateTimesDiff(\n 'scheduleNextRunDate' in unitsRoutesAssignment\n ? unitRoutAssignmentNextRunDate\n : stepperNextRunDate,\n existingAssignmentNextRunDate,\n env.REACT_APP_MIN_VALID_DIFF_TIME_BETWEEN_UNITS_ROUTES_ASSIGNMENT\n );\n }\n return true;\n };\n }\n\n // Remember: existingAssignments can be data from database or from state!\n return existingAssignments\n .filter(\n (existingAssignment) =>\n existingAssignment.unitId === unitId &&\n (existingAssignment.correlative ? existingAssignment.correlative !== correlative : true)\n )\n .some(comparePredicate);\n };\n\n // CASE 1: DATABASE DATA VALIDATION\n // Note that database data retrieved is filtered by active units/routes, so there is no need to validate startDate (at this moment)\n if (assignedUnitsFromDatabase.length > 0) {\n // CASE 1.1: unit has been already assigned to that route and has an active status\n const hasSameAssignmentFoundOnDatabase = assignedUnitsFromDatabase.some(\n (unitRouteAssignment) =>\n unitRouteAssignment.unitId === unitId &&\n unitRouteAssignment.routeId === routeId &&\n hasAssignmentAtSameHourOrScheduleNextRun(assignedUnitsFromDatabase)\n );\n\n if (hasSameAssignmentFoundOnDatabase) {\n errors.push({\n type: VALIDATION_ERROR_TYPES.ROUTE_ALREADY_ASSIGNED_AND_ACTIVE_ON_DATABASE,\n payload: { route: routeName },\n level: 'error'\n });\n return errors;\n }\n\n // CASE 1.2: a route already assigned to the unit with the same hour as the new assignment\n const hasAssignmentFoundAtSameHourOnDatabase =\n hasAssignmentAtSameHourOrScheduleNextRun(assignedUnitsFromDatabase);\n if (hasAssignmentFoundAtSameHourOnDatabase) {\n errors.push({\n type: VALIDATION_ERROR_TYPES.ROUTE_ALREADY_ASSIGNED_AT_SAME_HOUR_THAT_ANOTHER_ON_DATABASE\n });\n return errors;\n }\n }\n\n // CASE 2: HOOK FORM STATE DATA VALIDATION\n // There is no need to validate startDate at this moment\n if (unitsRoutesAssignmentsFromState.length > 0) {\n // CASE 2.1: unit has been already assigned to the same route and has an active status\n const hasSameAssignmentFoundOnState = unitsRoutesAssignmentsFromState.some(\n (unitRouteAssignment) =>\n unitRouteAssignment.unitId === unitId &&\n unitRouteAssignment.routeId === routeId &&\n unitRouteAssignment.correlative !== correlative\n );\n if (hasSameAssignmentFoundOnState) {\n errors.push({ type: VALIDATION_ERROR_TYPES.ROUTE_ALREADY_ASSIGNED_ON_STATE });\n return errors;\n }\n\n // CASE 2.2: a route already assigned to the unit with the same hour as the new assignment\n const hasAssignmentFoundAtSameHourOnState = hasAssignmentAtSameHourOrScheduleNextRun(\n unitsRoutesAssignmentsFromState\n );\n if (hasAssignmentFoundAtSameHourOnState) {\n errors.push({\n type: VALIDATION_ERROR_TYPES.ROUTE_ALREADY_ASSIGNED_AT_SAME_HOUR_THAT_ANOTHER_ON_STATE\n });\n return errors;\n }\n }\n\n return errors;\n };\n\nexport const getRouteInformationFormat = (state, route) => {\n if (route) {\n return {\n ...route,\n distanceFormat: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.distance)\n .toFixed(2),\n speedLimitFormat: authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(route.speedLimit)\n };\n } else undefined;\n};\n\nexport const getRouteUnitFormat = (state, unit) => {\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n return {\n ...unit,\n realDistanceLabel: convertKilometersToAuthUserDistanceSystem(unit.realDistance || 0),\n calculatedDistanceLabel: convertMetersToAuthUserDistanceSystem(unit.calculatedDistance || 0),\n effectivenessLabel: (unit.effectiveness || 0).toString() + '%',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(unit.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n unit.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(unit.performanceOnRoute || 0)\n };\n};\n\nexport const getRoutesRouteInformationFormat = (state, route) => {\n return {\n ...route,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.calculatedDistance || 0),\n fuelConsumptionLabel: authSelectors\n .getParsers(state)\n .convertLitersToAuthUserCapacitySystem(route.fuelConsumption || 0),\n effectivenessLabel: (route.effectiveness || 0).toString() + '%'\n };\n};\n\nexport const getRouteExecutionInformationFormat = (state, routeExecution) => {\n const intl = appIntl();\n const parsers = authSelectors.getParsers(state);\n\n const { routeStatusLabel, routeStatusLabelInfo } = getRouteExecutionStatusLabel(\n routeExecution.routeStatus\n );\n\n const {\n convertKilometersPerHourToAuthUserSpeedSystem,\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n\n return {\n ...routeExecution,\n routeStatusLabel,\n routeStatusLabelInfo,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(routeExecution.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(routeExecution.calculatedDistance || 0),\n effectivenessLabel: (routeExecution.effectiveness || 0).toString() + '%',\n durationLabel: routeExecution.startDate\n ? getDatesDifferenceString(\n routeExecution.startDate,\n routeExecution.completionDate ?? routeExecution.cancelDate ?? new Date(),\n intl\n )\n : 'N/A',\n transitDurationLabel: routeExecution.transitDate\n ? getDatesDifferenceString(\n routeExecution.transitDate,\n routeExecution.completionDate ?? routeExecution.cancelDate ?? new Date(),\n intl\n )\n : 'N/A',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(routeExecution.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.performanceOnRoute || 0\n ),\n distanceProgress: convertKilometersToAuthUserDistanceSystem(\n routeExecution.distanceProgress || 0\n )\n };\n};\n","/* Tipos del reductor Entities */\n/* -------------------------------------------------------------------------- */\n\nexport const ENTITIES_FETCH_STARTED = 'ENTITIES_FETCH_STARTED';\nexport const ENTITIES_FETCH_COMPLETED = 'ENTITIES_FETCH_COMPLETED';\nexport const ENTITIES_FETCH_FAILED = 'ENTITIES_FETCH_FAILED';\nexport const ENTITIES_RESET_IS_FETCHED = 'ENTITIES_RESET_IS_FETCHED';\n\nexport const ENTITIES_UPDATE_STARTED = 'ENTITIES_UPDATE_STARTED';\nexport const ENTITIES_UPDATE_COMPLETED = 'ENTITIES_UPDATE_COMPLETED';\nexport const ENTITIES_UPDATE_FAILED = 'ENTITIES_UPDATE_FAILED';\n","/* -------------------------------------------------------------------------- */\n/* Componente Checkbox */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Switch genérico que se utiliza en muchas pantallas de la aplicación.\nimport { useEffect } from 'react';\nimport { FormGroup, CustomInput } from 'reactstrap';\nimport { v4 as UUIDv4 } from 'uuid';\n\ninterface Props {\n id?: string;\n field: any;\n label: string | JSX.Element;\n initialValue?: boolean;\n forceinitialvalue?: boolean;\n onChange?: (value: boolean) => void;\n onFocus?: () => void;\n style?: React.CSSProperties;\n classNameCustom?: string;\n disabled?: boolean;\n}\n\nconst CheckboxInput = (props: Props) => {\n const {\n id = `checkbox-${UUIDv4()}`,\n field,\n label,\n initialValue,\n forceinitialvalue,\n onChange,\n style = {},\n classNameCustom = '',\n disabled = false,\n onFocus\n } = props;\n useEffect(() => {\n if (!field.value) field.onChange(initialValue);\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue != undefined) field.onChange(forceinitialvalue);\n }, [forceinitialvalue]);\n return (\n \n {\n field.onChange(event.target.checked);\n if (onChange) onChange(event.target.checked);\n }}\n onFocus={onFocus}\n label={label}\n />\n \n );\n};\n\nCheckboxInput.defaultProps = {\n label: '',\n initialValue: false\n};\n\nexport default CheckboxInput;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n isSelected: false,\n ...state[subdivisionId],\n ...entities[subdivisionId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SUBDIVISION_ADD_COMPLETED: {\n const { oldId, subdivision } = action.payload;\n const newState = omit(state, oldId);\n newState[subdivision.subdivisionId] = {\n ...state[oldId],\n ...subdivision,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SUBDIVISION_EDIT_COMPLETED: {\n const subdivision = action.payload;\n return {\n ...state,\n [subdivision.subdivisionId]: {\n ...omit(state[subdivision.subdivisionId], ['oldSubdivision']),\n ...omit(subdivision, ['oldSubdivision']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SUBDIVISION_ADD_STARTED: {\n const subdivision = action.payload;\n const newState = { ...state };\n newState[subdivision.subdivisionId] = {\n isSelected: false,\n ...subdivision,\n isConfirmed: false\n };\n return newState;\n }\n case types.SUBDIVISION_EDIT_STARTED: {\n const subdivision = action.payload;\n return {\n ...state,\n [subdivision.subdivisionId]: {\n ...state[subdivision.subdivisionId],\n oldSubdivision: state[subdivision.subdivisionId],\n ...subdivision,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SUBDIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SUBDIVISION_EDIT_FAILED: {\n const { oldSubdivision } = action.payload;\n return {\n ...state,\n [oldSubdivision.subdivisionId]: {\n ...omit(state[oldSubdivision.subdivisionId], ['oldSubdivision']),\n ...oldSubdivision,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n const { subdivisionId } = action.payload;\n return omit(state, subdivisionId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SUBDIVISION_SELECTED: {\n const subdivisionId = action.payload;\n const newState = {\n ...state,\n [subdivisionId]: {\n ...state[subdivisionId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SUBDIVISION_DESELECTED: {\n const subdivisionId = action.payload;\n return {\n ...state,\n [subdivisionId]: {\n ...state[subdivisionId],\n isSelected: false\n }\n };\n }\n\n case types.SUBDIVISIONS_ALL_SELECTED: {\n const subdivisionIds = action.payload;\n const newState = { ...state };\n if (subdivisionIds.length == 0) {\n forEach(state, (subdivision: any, subdivisionId) => {\n newState[subdivisionId] = {\n ...subdivision,\n isSelected: true\n };\n });\n } else {\n subdivisionIds.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n ...state[subdivisionId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SUBDIVISIONS_ALL_DESELECTED: {\n const subdivisionIds = action.payload;\n const newState = { ...state };\n if (subdivisionIds.length == 0) {\n forEach(state, (subdivision: any, subdivisionId) => {\n newState[subdivisionId] = {\n ...subdivision,\n isSelected: false\n };\n });\n } else {\n subdivisionIds.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n ...state[subdivisionId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SUBDIVISION_ADD_COMPLETED: {\n const { oldId, subdivision } = action.payload;\n return state.map((subdivisionId) =>\n subdivisionId === oldId ? subdivision.subdivisionId : subdivisionId\n );\n }\n\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n const { subdivisionId } = action.payload;\n return state.filter((subdivisionIdState) => subdivisionIdState !== subdivisionId);\n }\n\n //CASE ADD STARTED\n case types.SUBDIVISION_ADD_STARTED: {\n const subdivision = action.payload;\n return [...state, subdivision.subdivisionId];\n }\n\n //CASE ADD FAILED\n case types.SUBDIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((subdivisionIdState) => subdivisionIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_FETCH_STARTED: {\n return true;\n }\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_ADD_STARTED: {\n return true;\n }\n case types.SUBDIVISION_ADD_COMPLETED:\n case types.SUBDIVISION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_EDIT_STARTED: {\n return true;\n }\n case types.SUBDIVISION_EDIT_COMPLETED:\n case types.SUBDIVISION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_REMOVE_STARTED: {\n return true;\n }\n case types.SUBDIVISION_REMOVE_COMPLETED:\n case types.SUBDIVISION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISIONS_FETCH_STARTED:\n case types.SUBDIVISIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISIONS_PARTIAL_FETCH_STARTED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_ADD_STARTED:\n case types.SUBDIVISION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_EDIT_STARTED:\n case types.SUBDIVISION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_REMOVE_STARTED:\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst subdivisions = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default subdivisions;\n\n//Own state\nexport const getOwnState = (state) => state.subdivisions;\n\n//Information\nexport const getSubdivision = (state, subdivisionId) => {\n const subdivision = getOwnState(state).byId[subdivisionId];\n if (subdivision) {\n const operator = subdivision.operatorId\n ? operatorSelectors.getOperator(state, subdivision.operatorId)\n : undefined;\n const organization = subdivision.organizationId\n ? organizationSelectors.getOrganization(state, subdivision.organizationId)\n : undefined;\n const division = subdivision.divisionId\n ? divisionSelectors.getDivision(state, subdivision.divisionId)\n : undefined;\n return {\n ...subdivision,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : ''\n };\n } else return undefined;\n};\nexport const getSubdivisionsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSubdivision(state, id))\n .filter((subdivision) => subdivision.subdivisionStatus > 0);\nexport const getSubdivisionsListByMembership = (state, membership) => {\n //Se filtra por divisionId\n if (membership.operatorId) {\n if (membership.organizationId) {\n if (membership.divisionId) {\n return getSubdivisionsList(state).filter(\n (subdivision) =>\n subdivision.operatorId === membership.operatorId &&\n subdivision.organizationId === membership.organizationId &&\n subdivision.divisionId === membership.divisionId\n );\n }\n return getSubdivisionsList(state).filter(\n (subdivision) =>\n subdivision.operatorId === membership.operatorId &&\n subdivision.organizationId === membership.organizationId\n );\n }\n return getSubdivisionsList(state).filter(\n (subdivision) => subdivision.operatorId === membership.operatorId\n );\n }\n //Si no se ha seleccionado una división se devuelve la lista completa\n else return getSubdivisionsList(state);\n};\nexport const getSubdivisionsListBySelectedDivision = (state, membership) => {\n //Se filtra por divisionId\n if (membership.divisionId) {\n return getSubdivisionsList(state).filter(\n (subdivision) => subdivision.divisionId === membership.divisionId\n );\n }\n //Si no se ha seleccionado una división se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedSubdivisions = (state) => {\n const selectedSubdivisions = getSubdivisionsList(state).filter(\n (subdivision) => subdivision.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedSubdivisions.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedSubdivisions.length > 0) return selectedSubdivisions;\n};\n\nexport const getSelectedSubdivision = (state) => {\n const selectedSubdivisions = getSubdivisionsList(state).filter(\n (subdivision) => subdivision.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSubdivisions.length === 1) return selectedSubdivisions[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSubdivisions = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSubdivisions = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSubdivision = (state) => getOwnState(state).isAdding;\nexport const isEditingSubdivision = (state) => getOwnState(state).isEditing;\nexport const isRemovingSubdivision = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListSubdivisionsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSubdivisionsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSubdivisionErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSubdivisionErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSubdivisionErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n viewWorkplanModule: 'WP001',\n assignWorkplan: 'WP002',\n searchWorkplans: 'WP020',\n viewPlansIndicator: 'WP021',\n viewLocationsIndicator: 'WP022',\n viewVisitsIndicator: 'WP023',\n viewExecutionIndicator: 'WP024',\n viewArrivalEffectivnessGraph: 'WP025',\n viewPermanenceEffectivenessGraph: 'WP026',\n viewLocationsUnitsEffectivenessGraph: 'WP027',\n changeUnit: 'WP028',\n finalizeWorkplanAssignment: 'WP029',\n viewWorkplanMonitor: 'WP019',\n cancelWorkplanAssignment: 'WP030',\n viewWorkplanReport: 'WP031',\n addWorkplan: 'WP035',\n editWorkplan: 'WP036',\n deleteWorkplan: 'WP037',\n viewWorkplanCatalog: 'WP038',\n scheduledWorkplanList: 'WP018',\n scheduledWorkplanEdit: 'WP032',\n scheduledWorkplanDelete: 'WP033',\n loginextConfiguration: 'WP042'\n};\n\nexport default permissions;\n","import React, { Fragment } from 'react';\nimport { ButtonToolbar } from 'reactstrap';\n\ninterface Props {\n buttons: any[];\n className?: string;\n position?: 'right' | 'left';\n}\nconst Toolbar = (props: Props) => {\n const { buttons, className = '', position = 'right' } = props;\n return (\n \n {buttons.map((child, index) => (\n {child}\n ))}\n \n );\n};\n\nexport default Toolbar;\n","import * as types from '../types';\n\nexport const startFetchingMonitoringUsers = (filters = {}) => ({\n type: types.MONITORING_USERS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingMonitoringUsers = (entities, order, operatorId, organizationId) => ({\n type: types.MONITORING_USERS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingMonitoringUsers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MONITORING_USERS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingMonitoringUser = (monitoringUserId) => ({\n type: types.MONITORING_USER_FETCH_STARTED,\n payload: monitoringUserId\n});\n\nexport const completeFetchingMonitoringUser = (monitoringUser, order) => ({\n type: types.MONITORING_USER_FETCH_COMPLETED,\n payload: {\n monitoringUser,\n order\n }\n});\n\nexport const failFetchingMonitoringUser = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MONITORING_USER_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingMonitoringUsers = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingMonitoringUsers = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingMonitoringUsers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingMonitoringUser = (monitoringUser) => ({\n type: types.MONITORING_USER_ADD_STARTED,\n payload: monitoringUser\n});\nexport const completeAddingMonitoringUser = (oldId, monitoringUser) => ({\n type: types.MONITORING_USER_ADD_COMPLETED,\n payload: { oldId, monitoringUser }\n});\nexport const failAddingMonitoringUser = (oldId, error) => ({\n type: types.MONITORING_USER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingMonitoringUser = (monitoringUser) => ({\n type: types.MONITORING_USER_EDIT_STARTED,\n payload: monitoringUser\n});\nexport const completeEditingMonitoringUser = (oldId, monitoringUser) => ({\n type: types.MONITORING_USER_EDIT_COMPLETED,\n payload: { oldId, monitoringUser }\n});\nexport const failEditingMonitoringUser = (oldMonitoringUser, error) => ({\n type: types.MONITORING_USER_EDIT_FAILED,\n payload: {\n oldMonitoringUser,\n error\n }\n});\n\nexport const startRemovingMonitoringUser = (users, usersName) => ({\n type: types.MONITORING_USER_REMOVE_STARTED,\n payload: {\n users,\n usersName\n }\n});\nexport const completeRemovingMonitoringUser = (users, usersName) => ({\n type: types.MONITORING_USER_REMOVE_COMPLETED,\n payload: {\n users,\n usersName\n }\n});\nexport const failRemovingMonitoringUser = (users, error) => ({\n type: types.MONITORING_USER_REMOVE_FAILED,\n payload: {\n users,\n error\n }\n});\n\nexport const selectMonitoringUser = (monitoringUserId) => ({\n type: types.MONITORING_USER_SELECTED,\n payload: monitoringUserId\n});\n\nexport const deselectMonitoringUser = (monitoringUserId) => ({\n type: types.MONITORING_USER_DESELECTED,\n payload: monitoringUserId\n});\n\nexport const deselectAllMonitoringUsers = (\n monitoringUserIds = [] //List of MonitoringUserIds\n) => ({\n type: types.MONITORING_USERS_ALL_DESELECTED,\n payload: monitoringUserIds\n});\n\nexport const startUpdatingMonitoringUserPassword = (values) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_STARTED,\n payload: values\n});\n\nexport const completeUpdatingMonitoringUserPassword = (values) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingMonitoringUserPassword = (error) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_FAILED,\n payload: { error }\n});\n\nexport const startSavingMonitoringUserRolesAndPermissions = (values) => ({\n type: types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED,\n payload: values\n});\n\nexport const completeSavingMonitoringUserRolesAndPermissions = (values) => ({\n type: types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED,\n payload: values\n});\n\nexport const startAssigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_ASSIGN_SCHEDULE_STARTED,\n payload: userAssignSchedule\n});\n\nexport const completeAssigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_ASSIGN_SCHEDULE_COMPLETED,\n payload: userAssignSchedule\n});\n\nexport const completeUnassigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_UNASSIGN_SCHEDULE_COMPLETED,\n payload: userAssignSchedule\n});\n\nexport const startUnassigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_UNASSIGN_SCHEDULE_STARTED,\n payload: userAssignSchedule\n});\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/job';\n\ninterface JobBacklogSaveRequest {\n jobId?: number;\n jobTitle: string;\n}\n\ninterface JobsBacklogDeleteRequest {\n jobs: string;\n}\n\ninterface JobBacklogFilters {\n userFetchDate?: Date;\n}\n\ninterface JobsBacklogChangeStatusRequest {\n jobs: string;\n jobStatus?: number;\n comment?: string;\n}\n\ninterface JobsBacklogRescheduleJobsRequest {\n jobs: string;\n startDate?: any;\n dueDate?: any;\n comment?: string;\n}\n\ninterface JobsBacklogChangePriorityRequest {\n jobs: string;\n jobPriority?: number;\n}\n\ninterface JobsBacklogChangeStartDateRequest {\n jobs: string;\n startDate?: any;\n}\n\ninterface JobsBacklogChangeDueDateRequest {\n jobs: string;\n dueDate?: any;\n}\n\ninterface JobsBacklogChangeMinMaxTimeRequest {\n jobs: string;\n maxTime?: number;\n}\n\ninterface JobsBacklogAssignUsersRequest {\n jobs: string;\n userNames?: string;\n}\n\ninterface JobsBacklogAssignFormsRequest {\n jobs: string;\n formIds?: string;\n}\n\ninterface JobsBacklogAssignFilesRequest {\n jobs: string;\n fileIds?: string;\n}\n\ninterface JobBoardFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\ninterface JobsBoardChangeStatusRequest {\n jobs: string;\n jobStatus?: number;\n comment?: string;\n}\n\ninterface JobReportFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\ninterface JobReportByUserFilters {\n userName: string;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\nexport const getJobsBacklogListService = (\n request: JobBacklogFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getJobService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getJob`, request);\n};\n\nexport const saveJobBacklogService = (\n request: JobBacklogSaveRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: request.jobId ? 'Edit' : 'Create',\n name: request.jobTitle,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteJobsBacklogService = (\n request: JobsBacklogDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'jobs.job',\n action: 'Delete',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const changeJobsStatusService = (\n request: JobsBacklogChangeStatusRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStatus`, request);\n};\n\nexport const rescheduleJobsService = (\n request: JobsBacklogRescheduleJobsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rescheduleJobs`, request);\n};\n\nexport const changeJobsPriorityService = (\n request: JobsBacklogChangePriorityRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changePriority`, request);\n};\n\nexport const changeJobsStartDateService = (\n request: JobsBacklogChangeStartDateRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStartDate`, request);\n};\n\nexport const changeJobsDueDateService = (\n request: JobsBacklogChangeDueDateRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeDueDate`, request);\n};\n\nexport const changeJobsMinMaxTimeService = (\n request: JobsBacklogChangeMinMaxTimeRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeMinMaxTime`, request);\n};\n\nexport const assignJobsUsersService = (\n request: JobsBacklogAssignUsersRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignUsers`, request);\n};\n\nexport const assignJobsFormsService = (\n request: JobsBacklogAssignFormsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignForms`, request);\n};\n\nexport const assignJobsFilesService = (\n request: JobsBacklogAssignFilesRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignFiles`, request);\n};\n\nexport const getJobsBoardListService = (request: JobBoardFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getBoard`, request);\n};\n\nexport const changeJobsStatusBoardService = (\n request: JobsBoardChangeStatusRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStatus`, request);\n};\n\nexport const getJobsReportListService = (\n request: JobReportFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getReport`, request);\n};\n\nexport const getJobsReportByUserListService = (\n request: JobReportByUserFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getReportByUser`, request);\n};\n\nexport const importJobsService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importJobs`, request);\n};\n","import * as types from '../types';\n\nexport const startFetchingAgents = (filters = {}) => ({\n type: types.AGENTS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingAgents = (entities, order) => ({\n type: types.AGENTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingAgents = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingAgents = (entityTypeId) => ({\n type: types.AGENTS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingAgents = (entities, order) => ({\n type: types.AGENTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingAgents = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingAgent = (agentId) => ({\n type: types.AGENT_FETCH_STARTED,\n payload: agentId\n});\n\nexport const completeFetchingAgent = (agent) => ({\n type: types.AGENT_FETCH_COMPLETED,\n payload: agent\n});\n\nexport const failFetchingAgent = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingAgent = (agent) => ({\n type: types.AGENT_ADD_STARTED,\n payload: agent\n});\nexport const completeAddingAgent = (oldId, agent) => ({\n type: types.AGENT_ADD_COMPLETED,\n payload: { oldId, agent }\n});\nexport const failAddingAgent = (oldId, error) => ({\n type: types.AGENT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingAgent = (agent) => ({\n type: types.AGENT_EDIT_STARTED,\n payload: agent\n});\nexport const completeEditingAgent = (agent) => ({\n type: types.AGENT_EDIT_COMPLETED,\n payload: agent\n});\nexport const failEditingAgent = (oldAgent, error) => ({\n type: types.AGENT_EDIT_FAILED,\n payload: {\n oldAgent,\n error\n }\n});\n\nexport const startRemovingAgent = (agentId) => ({\n type: types.AGENT_REMOVE_STARTED,\n payload: {\n agentId\n }\n});\nexport const completeRemovingAgent = (agentId) => ({\n type: types.AGENT_REMOVE_COMPLETED,\n payload: {\n agentId\n }\n});\nexport const failRemovingAgent = (agentId, error) => ({\n type: types.AGENT_REMOVE_FAILED,\n payload: {\n agentId,\n error\n }\n});\n\nexport const selectAgent = (agentId) => ({\n type: types.AGENT_SELECTED,\n payload: agentId\n});\n\nexport const selectAllAgents = (\n agentIds = [] //List of AgentIds\n) => ({\n type: types.AGENTS_ALL_SELECTED,\n payload: agentIds\n});\n\nexport const deselectAgent = (agentId) => ({\n type: types.AGENT_DESELECTED,\n payload: agentId\n});\n\nexport const deselectAllAgents = (\n agentIds = [] //List of AgentIds\n) => ({\n type: types.AGENTS_ALL_DESELECTED,\n payload: agentIds\n});\n","import * as types from 'views/screens/Operators/types';\n\nexport const startFetchingOperators = (filters = {}) => ({\n type: types.OPERATORS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOperators = (entities, order) => ({\n type: types.OPERATORS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingOperators = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.OPERATORS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOperators = (entityTypeId) => ({\n type: types.OPERATORS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingOperators = (entities, order) => ({\n type: types.OPERATORS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingOperators = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.OPERATORS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOperator = (operator) => ({\n type: types.OPERATOR_ADD_STARTED,\n payload: operator\n});\nexport const completeAddingOperator = (oldId, operator) => ({\n type: types.OPERATOR_ADD_COMPLETED,\n payload: { oldId, operator }\n});\nexport const failAddingOperator = (oldId, error) => ({\n type: types.OPERATOR_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOperator = (operator) => ({\n type: types.OPERATOR_EDIT_STARTED,\n payload: operator\n});\nexport const completeEditingOperator = (operator) => ({\n type: types.OPERATOR_EDIT_COMPLETED,\n payload: operator\n});\nexport const failEditingOperator = (oldOperator, error) => ({\n type: types.OPERATOR_EDIT_FAILED,\n payload: {\n oldOperator,\n error\n }\n});\n\nexport const startEditingOperatorStandardPrices = (standardPrices) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_STARTED,\n payload: standardPrices\n});\nexport const completeEditingOperatorStandardPrices = (standardPrices) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_COMPLETED,\n payload: standardPrices\n});\nexport const failEditingOperatorStandardPrices = (oldStandardPrices, error) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_FAILED,\n payload: {\n oldStandardPrices,\n error\n }\n});\n\nexport const startRemovingOperator = (operatorId) => ({\n type: types.OPERATOR_REMOVE_STARTED,\n payload: {\n operatorId\n }\n});\nexport const completeRemovingOperator = (operatorId) => ({\n type: types.OPERATOR_REMOVE_COMPLETED,\n payload: {\n operatorId\n }\n});\nexport const failRemovingOperator = (operatorId, error) => ({\n type: types.OPERATOR_REMOVE_FAILED,\n payload: {\n operatorId,\n error\n }\n});\n\nexport const selectOperator = (operatorId) => ({\n type: types.OPERATOR_SELECTED,\n payload: operatorId\n});\n\nexport const selectAllOperators = (\n operatorIds = [] //List of OperatorIds\n) => ({\n type: types.OPERATORS_ALL_SELECTED,\n payload: operatorIds\n});\n\nexport const deselectOperator = (operatorId) => ({\n type: types.OPERATOR_DESELECTED,\n payload: operatorId\n});\n\nexport const deselectAllOperators = (\n operatorIds = [] //List of OperatorIds\n) => ({\n type: types.OPERATORS_ALL_DESELECTED,\n payload: operatorIds\n});\n","const permissions = {\n mileageReport: 'CR001',\n hourMetersReport: 'CR002',\n runningTimeReport: 'RU001',\n unitActivity: 'RU002',\n byUnitStopSummaryReport: 'RU005',\n byUnitScriptsHistoryReport: 'RU004',\n consolidatedStopSummaryReport: 'CR008',\n consolidatedOpportunityOfCharge: 'CR009',\n consolidatedUnitActivityReport: 'CR003',\n consolidatedEventActivityReport: 'CR004',\n parkedGeofenceReport: 'RP001',\n fuelSensorReport: 'CR005',\n scheduledReports: 'SR001',\n scheduledReportsCreate: 'SR002',\n scheduledReportsEdit: 'SR003',\n scheduledReportsDelete: 'SR004',\n systemCommunicationsDiagReport: 'AD014',\n systemNotificationsReport: 'AD015',\n accommodationChargesReport: 'AD016',\n administrativeReports: 'RP003',\n byUnitReports: 'RP004',\n consolidatedReports: 'RP005',\n listReports: 'RP006',\n deepSearch: 'RP007',\n consumptionAPIReport: 'AD006',\n readWebEvents: 'WE001',\n markReadedWebEvents: 'WE002',\n consolidatedSummary: 'CR007',\n readAPICost: 'AD017',\n systemUserHistory: 'AD019'\n};\n\nexport default permissions;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesReport';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { getDatesDifferenceString } from 'views/screens/Units/utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { unitsEntities, unitsOrder } = action.payload;\n const newState = { ...state };\n unitsOrder.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n ...state[unitId],\n ...unitsEntities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { unitsOrder } = action.payload;\n return union(unitsOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst routesById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { routesEntities, routesOrder } = action.payload;\n const newState = { ...state };\n routesOrder.forEach((routeId) => {\n newState[routeId] = {\n isSelected: false,\n ...state[routeId],\n ...routesEntities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst routesOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { routesOrder } = action.payload;\n return union(routesOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingReport = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_REPORT_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_REPORT_FETCH_COMPLETED:\n case types.ROUTES_REPORT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingReport = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_REPORT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_REPORT_FETCH_STARTED:\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesReport = combineReducers({\n byId,\n order,\n indicators,\n unitsById,\n unitsOrder,\n routesById,\n routesOrder,\n isFetchingReport,\n errorFetchingReport\n});\n\nexport default routesReport;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesReport;\n\n//Information\nexport const getRoutesExecution = (state, routeAssignmentId) => {\n const intl = appIntl();\n const routeExecution = getOwnState(state).byId[routeAssignmentId];\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersPerHourToAuthUserSpeedSystem,\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n return {\n ...routeExecution,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(routeExecution.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(routeExecution.calculatedDistance || 0),\n effectivenessLabel: (routeExecution.effectiveness || 0).toString() + '%',\n durationLabel: routeExecution.startDate\n ? getDatesDifferenceString(\n routeExecution.startDate,\n routeExecution.completionDate ?? routeExecution.cancelDate ?? new Date(),\n intl\n )\n : 'N/A',\n transitDurationLabel: routeExecution.transitDate\n ? getDatesDifferenceString(\n routeExecution.transitDate,\n routeExecution.completionDate ?? routeExecution.cancelDate ?? new Date(),\n intl\n )\n : 'N/A',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(routeExecution.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.performanceOnRoute || 0\n ),\n distanceProgress: convertKilometersToAuthUserDistanceSystem(\n routeExecution.distanceProgress || 0\n )\n };\n};\nexport const getRoutesExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesExecution(state, id));\nexport const getRoutesUnit = (state, unitId) => {\n const unit = getOwnState(state).unitsById[unitId];\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n return {\n ...unit,\n realDistanceLabel: convertKilometersToAuthUserDistanceSystem(unit.realDistance || 0),\n calculatedDistanceLabel: convertMetersToAuthUserDistanceSystem(unit.calculatedDistance || 0),\n effectivenessLabel: (unit.effectiveness || 0).toString() + '%',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(unit.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n unit.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(unit.performanceOnRoute || 0)\n };\n};\nexport const getRoutesUnitsList = (state) =>\n getOwnState(state).unitsOrder.map((id) => getRoutesUnit(state, id));\nexport const getRoutesRoute = (state, routeId) => {\n const route = getOwnState(state).routesById[routeId];\n return {\n ...route,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.calculatedDistance || 0),\n fuelConsumptionLabel: authSelectors\n .getParsers(state)\n .convertLitersToAuthUserCapacitySystem(route.fuelConsumption || 0),\n effectivenessLabel: (route.effectiveness || 0).toString() + '%'\n };\n};\nexport const getRoutesRoutesList = (state) =>\n getOwnState(state).routesOrder.map((id) => getRoutesRoute(state, id));\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n return [\n {\n title: intl.formatMessage({\n id: 'routes.total'\n }),\n bigIndicator: indicators.total || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.finalized'\n }),\n bigIndicator: indicators.finalized || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.canceled'\n }),\n bigIndicator: indicators.canceled || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.running'\n }),\n bigIndicator: indicators.running || 0\n }\n ];\n};\n\n//Status of sagas\nexport const isFetchingRoutesReport = (state) => getOwnState(state).isFetchingReport;\n\n//Errors\nexport const getFetchingRoutesReportErrors = (state) => getOwnState(state).errorFetchingReport;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport routesExecutions, * as routesSelectorsExecutions from '../routesExecutions';\nimport routeCheckpoints, * as routeSelectorsCheckpoints from '../routeCheckpoints';\nimport routesAssignments from '../routesAssignments';\nimport routesReport, * as routesSelectorsReport from '../routesReport';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routes';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport autoMergeLevel2 from 'redux-persist/es/stateReconciler/autoMergeLevel2';\nimport persistReducer from 'redux-persist/es/persistReducer';\nimport localforage from 'localforage';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ROUTES_FETCH_COMPLETED:\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((routeId) => {\n newState[routeId] = {\n isShownInMap: false,\n isSelected: false,\n ...state[routeId],\n ...entities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ROUTE_ADD_COMPLETED: {\n const {\n oldId,\n routeInformation: { route }\n } = action.payload;\n const newState = omit(state, oldId);\n newState[route.routeId] = {\n ...state[oldId],\n ...route,\n isShownInMap: true,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ROUTE_EDIT_COMPLETED: {\n const { route } = action.payload;\n return {\n ...state,\n [route.routeId]: {\n isShownInMap: false,\n ...omit(state[route.routeId], ['oldRoute']),\n ...omit(route, ['oldRoute']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ROUTE_ADD_STARTED: {\n const { route } = action.payload;\n const newState = { ...state };\n newState[route.routeId] = {\n isShownInMap: false,\n isSelected: false,\n ...route,\n isConfirmed: false\n };\n return newState;\n }\n case types.ROUTE_EDIT_STARTED: {\n const { route } = action.payload;\n return {\n ...state,\n [route.routeId]: {\n isShownInMap: false,\n ...state[route.routeId],\n oldRoute: state[route.routeId],\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ROUTE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ROUTE_EDIT_FAILED: {\n const { oldRoute } = action.payload;\n return {\n ...state,\n [oldRoute.routeId]: {\n isShownInMap: false,\n ...omit(state[oldRoute.routeId], ['oldRoute']),\n ...oldRoute,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ROUTE_REMOVE_COMPLETED: {\n const { routeId } = action.payload;\n return omit(state, routeId);\n }\n\n //TYPES SHOW AND HIDE ROUTES IN MAP\n case types.ROUTE_SHOW_IN_MAP: {\n const routeId = action.payload;\n const newState = {\n ...state,\n [routeId]: {\n ...state[routeId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.ROUTE_HIDE_IN_MAP: {\n const routeId = action.payload;\n return {\n ...state,\n [routeId]: {\n ...state[routeId],\n isShownInMap: false\n }\n };\n }\n\n case types.ROUTES_ALL_SHOW_IN_MAP: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isShownInMap: true\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ROUTES_ALL_HIDE_IN_MAP: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isShownInMap: false\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ROUTE_SELECTED: {\n const routeId = action.payload;\n const newState = {\n ...state,\n [routeId]: {\n ...state[routeId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ROUTE_DESELECTED: {\n const routeId = action.payload;\n return {\n ...state,\n [routeId]: {\n ...state[routeId],\n isSelected: false\n }\n };\n }\n\n case types.ROUTES_ALL_SELECTED: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isSelected: true\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ROUTES_ALL_DESELECTED: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isSelected: false\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //COPY ROUTE\n case types.ROUTE_COPY_COMPLETED: {\n const { routeId, newRouteId, newRouteName, organizationId, divisionId, subdivisionId } =\n action.payload;\n return {\n ...state,\n [newRouteId]: {\n isSelected: false,\n ...state[routeId],\n routeId: newRouteId,\n routeName: newRouteName,\n organizationId,\n divisionId,\n subdivisionId,\n isConfirmed: true\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ROUTES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ROUTE_ADD_COMPLETED: {\n const {\n oldId,\n routeInformation: { route }\n } = action.payload;\n return state.map((routeId) => (routeId === oldId ? route.routeId : routeId));\n }\n\n case types.ROUTE_REMOVE_COMPLETED: {\n const { routeId } = action.payload;\n return state.filter((routeIdState) => routeIdState !== routeId);\n }\n\n case types.ROUTES_REMOVE_COMPLETED: {\n const { routeIds } = action.payload;\n return state.filter((routeIdState) => !routeIds.includes(routeIdState));\n }\n\n //CASE ADD STARTED\n case types.ROUTE_ADD_STARTED: {\n const { route } = action.payload;\n return [...state, route.routeId];\n }\n\n //CASE ADD FAILED\n case types.ROUTE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((routeIdState) => routeIdState !== oldId);\n }\n\n //COPY ROUTE\n case types.ROUTE_COPY_COMPLETED: {\n const { newRouteId } = action.payload;\n return [...state, newRouteId];\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_FETCH_COMPLETED:\n case types.ROUTES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_PARTIAL_FETCH_COMPLETED:\n case types.ROUTES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_ADD_STARTED: {\n return true;\n }\n case types.ROUTE_ADD_COMPLETED:\n case types.ROUTE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_EDIT_STARTED: {\n return true;\n }\n case types.ROUTE_EDIT_COMPLETED:\n case types.ROUTE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_REMOVE_STARTED:\n case types.ROUTE_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_REMOVE_COMPLETED:\n case types.ROUTES_REMOVE_FAILED:\n case types.ROUTE_REMOVE_COMPLETED:\n case types.ROUTE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_COPY_STARTED: {\n return true;\n }\n case types.ROUTE_COPY_COMPLETED:\n case types.ROUTE_COPY_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_FETCH_STARTED:\n case types.ROUTES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_PARTIAL_FETCH_STARTED:\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_ADD_STARTED:\n case types.ROUTE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_EDIT_STARTED:\n case types.ROUTE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_REMOVE_FAILED:\n case types.ROUTE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_REMOVE_STARTED:\n case types.ROUTES_REMOVE_COMPLETED:\n case types.ROUTE_REMOVE_STARTED:\n case types.ROUTE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_COPY_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_COPY_COMPLETED:\n case types.ROUTE_COPY_STARTED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routes: any = combineReducers({\n routesExecutions,\n routesAssignments,\n routeCheckpoints,\n routesReport,\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n isCopying,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n errorCopying\n});\n\nconst routesPersistConfig = {\n key: 'routes',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'routesExecutions',\n 'routeCheckpoints',\n 'routesReport',\n 'isPartialFetchingList',\n 'isFetchingList',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isCopying',\n 'errorPartialFetchingList',\n 'errorFetchingList',\n 'errorAdding',\n 'errorEditing',\n 'errorRemoving',\n 'errorCopying'\n ],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(routesPersistConfig, routes);\n\n//Own state\nexport const getOwnState = (state) => state.routes;\n\n//Information\nexport const getRoute = (state, routeId): types.Route | undefined => {\n const route = getOwnState(state).byId[routeId];\n if (route) {\n return {\n ...route,\n checkpoints: routeSelectorsCheckpoints.getRouteCheckpointsListByRoute(state, route.routeId),\n distanceFormat: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.distance)\n .toFixed(2),\n speedLimitFormat: authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(route.speedLimit)\n };\n } else undefined;\n};\n\nexport const getRoutesList = (state): types.Route[] =>\n getOwnState(state)\n .order.map((id) => getRoute(state, id))\n .filter((route) => route.routeStatus > 0);\nexport const getRoutesListByMembership = (state, membership) => {\n return getRoutesList(state).filter(\n (route) =>\n membership &&\n (!membership.operatorId || membership.operatorId === route.operatorId) &&\n (!membership.organizationId || membership.organizationId === route.organizationId) &&\n (!membership.divisionId || membership.divisionId === route.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === route.subdivisionId)\n );\n};\nexport const getSelectedRoutes = (state) => {\n const selectedRoutes = getRoutesList(state).filter((route) => route.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedRoutes.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedRoutes.length > 0) return selectedRoutes;\n};\n\nexport const getSelectedRoute = (state) => {\n const selectedRoutes = getRoutesList(state).filter((route) => route.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedRoutes.length === 1) return selectedRoutes[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListRoutes = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListRoutes = (state) => getOwnState(state).isFetchingList;\nexport const isAddingRoute = (state) => getOwnState(state).isAdding;\nexport const isEditingRoute = (state) => getOwnState(state).isEditing;\nexport const isRemovingRoute = (state) => getOwnState(state).isRemoving;\nexport const isCopyingRoute = (state) => getOwnState(state).isCopying;\n\n//Errors\nexport const getPartialFetchingListRoutesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListRoutesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingRouteErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingRouteErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingRouteErrors = (state) => getOwnState(state).errorRemoving;\nexport const getCopyingRouteErrors = (state) => getOwnState(state).errorCopying;\n\n/* -------------------------------------------------------------------------- */\n/* ROUTES EXECUTIONS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getRoutesExecution = (state, assignmentId) =>\n routesSelectorsExecutions.getRoutesExecution(state, assignmentId);\nexport const getRoutesExecutionsList = (state) =>\n routesSelectorsExecutions.getRoutesExecutionsList(state);\nexport const getRoutesExecutionsIndicatorsInformation = (state) =>\n routesSelectorsExecutions.getIndicatorsInformation(state);\nexport const getRoutesExecutionsIndicators = (state) =>\n routesSelectorsExecutions.getIndicators(state);\nexport const getRoutesExecutionsTotalNotShown = (state) =>\n routesSelectorsExecutions.getTotalNotShown(state);\nexport const getRoutesExecutionsStatus = (state) =>\n routesSelectorsExecutions.getExecutionsStatus(state);\nexport const getRoutesExecutionsRunningStatus = (state) =>\n routesSelectorsExecutions.getRunningStatus(state);\n\n//Status of sagas\nexport const isFetchingRoutesExecutions = (state) =>\n routesSelectorsExecutions.isFetchingRoutesExecutions(state);\nexport const isCancelingRoutesExecution = (state) =>\n routesSelectorsExecutions.isCancelingRoutesExecution(state);\nexport const isFinalizingRoutesExecution = (state) =>\n routesSelectorsExecutions.isFinalizingRoutesExecution(state);\nexport const isCompletingRoutesExecution = (state) =>\n routesSelectorsExecutions.isCompletingRoutesExecution(state);\nexport const isRemovingRoutesExecution = (state) =>\n routesSelectorsExecutions.isRemovingRoutesExecution(state);\nexport const isPausingRoutesExecution = (state) =>\n routesSelectorsExecutions.isPausingRoutesExecution(state);\nexport const isStartingRoutesExecution = (state) =>\n routesSelectorsExecutions.isStartingRoutesExecution(state);\nexport const isUpdatingManualTransitRoutesExecution = (state) =>\n routesSelectorsExecutions.isUpdatingManualTransitRoutesExecution(state);\nexport const isSharingRoutesExecution = (state) =>\n routesSelectorsExecutions.isSharingRoutesExecution(state);\nexport const isChangingToAlternateRouteExecution = (state) =>\n routesSelectorsExecutions.isChangingToAlternateRouteExecution(state);\n\n//Errors\nexport const getFetchingRoutesExecutionsErrors = (state) =>\n routesSelectorsExecutions.getFetchingRoutesExecutionsErrors(state);\nexport const getCancelingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getCancelingRoutesExecutionErrors(state);\nexport const getFinalizingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getFinalizingRoutesExecutionErrors(state);\nexport const getCompletingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getCompletingRoutesExecutionErrors(state);\nexport const getRemovingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getRemovingRoutesExecutionErrors(state);\nexport const getPausingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getPausingRoutesExecutionErrors(state);\nexport const getStartingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getStartingRoutesExecutionErrors(state);\nexport const getUpdatingManualTransitRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getUpdatingManualTransitRoutesExecutionErrors(state);\nexport const getSharingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getSharingRoutesExecutionErrors(state);\nexport const getChangingToAlternateRouteErrors = (state) =>\n routesSelectorsExecutions.getChangingToAlternateRouteErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* ROUTES REPORT */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getRoutesReportExecution = (state, visitId) =>\n routesSelectorsReport.getRoutesExecution(state, visitId);\nexport const getRoutesReportExecutionsList = (state) =>\n routesSelectorsReport.getRoutesExecutionsList(state);\nexport const getRoutesReportUnit = (state, visitId) =>\n routesSelectorsReport.getRoutesUnit(state, visitId);\nexport const getRoutesReportUnitsList = (state) => routesSelectorsReport.getRoutesUnitsList(state);\nexport const getRoutesReportRoute = (state, visitId) =>\n routesSelectorsReport.getRoutesRoute(state, visitId);\nexport const getRoutesReportRoutesList = (state) =>\n routesSelectorsReport.getRoutesRoutesList(state);\nexport const getRoutesReportIndicators = (state) => routesSelectorsReport.getIndicators(state);\n\n//Status of sagas\nexport const isFetchingRoutesReport = (state) =>\n routesSelectorsReport.isFetchingRoutesReport(state);\n\n//Errors\nexport const getFetchingRoutesReportErrors = (state) =>\n routesSelectorsReport.getFetchingRoutesReportErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* ROUTE CHECKPOINTS */\n/* -------------------------------------------------------------------------- */\n//Status of sagas\nexport const isFetchingListRouteCheckpoints = (state) =>\n routeSelectorsCheckpoints.isFetchingListRouteCheckpoints(state);\n\n//Errors\nexport const getFetchingListRouteCheckpointsErrors = (state) =>\n routeSelectorsCheckpoints.getFetchingListRouteCheckpointsErrors(state);\n","const permissions = {\n addRoute: 'RL001',\n editRoute: 'RL002',\n deleteRoute: 'RL003',\n assignRoute: 'RL004',\n deleteRouteAssignment: 'RL005',\n completeRouteAssignment: 'RL007',\n finalizeRouteAssignment: 'RL008',\n cancelRouteAssignment: 'RL009',\n viewRouteRunningGraph: 'RL017',\n viewRouteByStatusGraph: 'RL018',\n viewTotalIndicator: 'RL020',\n viewRunningIndicator: 'RL021',\n viewScheduledIndicator: 'RL022',\n viewDestinationIndicator: 'RL023',\n viewRouteCatalog: 'RL027',\n searchRoutes: 'RL025',\n viewRouteMonitor: 'RL029',\n viewRouteReport: 'RL030',\n viewExtraFieldsInRouteAssignment: 'RL032',\n changeCompletionType: 'RL035',\n shareRouteAssignment: 'RL036',\n importRouteAssignments: 'RL038',\n routeETAMonitor: 'RL039',\n};\n\nexport default permissions;\n","/* -------------------------------------------------------------------------- */\n/* Acciones del reductor Entities */\n/* -------------------------------------------------------------------------- */\n\nimport * as types from '../types';\nimport { defaultEntitiesToFetchAftetLogin } from '../constants';\nexport const startFetchingEntities = () => ({\n type: types.ENTITIES_FETCH_STARTED,\n payload: {}\n});\n\nexport const startFetchingEntitiesAfterLogin = (\n entitiesToUpdate: any[] = defaultEntitiesToFetchAftetLogin\n) => ({\n type: types.ENTITIES_FETCH_STARTED,\n payload: entitiesToUpdate\n});\nexport const completeFetchingEntities = (entities, order) => ({\n type: types.ENTITIES_FETCH_COMPLETED,\n payload: { entities, order }\n});\n\nexport const failFetchingEntities = (error) => ({\n type: types.ENTITIES_FETCH_FAILED,\n payload: { error }\n});\n\nexport const resetIsFetchedEntities = () => ({\n type: types.ENTITIES_RESET_IS_FETCHED,\n payload: {}\n});\n\nexport const startUpdatingEntities = (entitiesToUpdate: any[] = []) => ({\n type: types.ENTITIES_UPDATE_STARTED,\n payload: entitiesToUpdate\n});\n\nexport const completeUpdatingEntities = () => ({\n type: types.ENTITIES_UPDATE_COMPLETED\n});\n\nexport const failUpdatingEntities = (error) => ({\n type: types.ENTITIES_UPDATE_FAILED,\n payload: { error }\n});\n","/**\n * `endDateAdjustment` es una función que recibe los parametros data que se enviarán en\n * un request a backend y ajusta las fechas \"fin\" que no contienen segundos.\n * por ejemplo: 23:59 se convertirá en 23:59:59.999\n *\n * @param {Object} data - The original end date that needs to be adjusted.\n *\n * @returns {Object} - The adjusted end date.\n *\n * @example\n *\n * const data = { ...moreParams, endData: '2024-01-25 23:59'};\n * const adjustedData = endDateAdjustment(data);\n *\n * console.log(adjustedData); // Logs { ...moreParams, endData: '2024-01-25 23:59:59.999'}\n */\nexport const endDateAdjustment = (data: Object): Object => {\n if (data) {\n try {\n //console.log('Object.keys(data)', Object.keys(data));\n //console.log('data', data);\n Object.keys(data)?.map((key: any) => {\n if (\n key.toUpperCase().includes('DATE') &&\n data[key] !== null &&\n data[key].slice(-5) == '23:59'\n ) {\n data[key] = data[key].replace('23:59', '23:59:59.999');\n }\n });\n //console.log('data final', data);\n } catch (e) {}\n }\n return data;\n};\n","import * as types from '../types';\n\nexport const startFetchingDrivers = (filters = {}) => ({\n type: types.DRIVERS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingDrivers = (entities, order, operatorId, organizationId) => ({\n type: types.DRIVERS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingDrivers = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.DRIVERS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingDrivers = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.DRIVERS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingDrivers = (entities, order, operatorId, organizationId) => ({\n type: types.DRIVERS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingDrivers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.DRIVERS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingDriver = (driver, person) => ({\n type: types.DRIVER_ADD_STARTED,\n payload: driver,\n person: person\n});\nexport const completeAddingDriver = (oldId, driver) => ({\n type: types.DRIVER_ADD_COMPLETED,\n payload: { oldId, driver }\n});\nexport const failAddingDriver = (oldId, error) => ({\n type: types.DRIVER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingDriver = (driver, person) => ({\n type: types.DRIVER_EDIT_STARTED,\n payload: driver,\n person: person\n});\nexport const completeEditingDriver = (driver) => ({\n type: types.DRIVER_EDIT_COMPLETED,\n payload: driver\n});\nexport const failEditingDriver = (oldDriver, error) => ({\n type: types.DRIVER_EDIT_FAILED,\n payload: {\n oldDriver,\n error\n }\n});\n\nexport const startRemovingDriver = (driverId, person) => ({\n type: types.DRIVER_REMOVE_STARTED,\n payload: {\n driverId\n },\n person: person\n});\nexport const completeRemovingDriver = (driverId) => ({\n type: types.DRIVER_REMOVE_COMPLETED,\n payload: {\n driverId\n }\n});\nexport const failRemovingDriver = (driverId, error) => ({\n type: types.DRIVER_REMOVE_FAILED,\n payload: {\n driverId,\n error\n }\n});\n\nexport const selectDriver = (driverId) => ({\n type: types.DRIVER_SELECTED,\n payload: driverId\n});\n\nexport const selectAllDrivers = (\n driverIds = [] //List of DriverIds\n) => ({\n type: types.DRIVERS_ALL_SELECTED,\n payload: driverIds\n});\n\nexport const deselectDriver = (driverId) => ({\n type: types.DRIVER_DESELECTED,\n payload: driverId\n});\n\nexport const deselectAllDrivers = (\n driverIds = [] //List of DriverIds\n) => ({\n type: types.DRIVERS_ALL_DESELECTED,\n payload: driverIds\n});\n\nexport const startMassiveDriversAssignment = (driversAndUnitsIds: Array, membership: any) => ({\n type: types.START_MASSIVE_DRIVERS_ASSIGNMENT,\n payload: { driversAndUnitsIds, membership }\n});\nexport const completeMassiveDriversAssignment = (data) => ({\n type: types.COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT,\n payload: data\n});\nexport const errorMassiveDriversAssignment = (data) => ({\n type: types.COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT,\n payload: data\n});\n\nexport const startImportData = (dataToImport: Array) => ({\n type: types.START_IMPORT_DRIVERS_UNITS_IMPORT,\n payload: dataToImport\n});\nexport const completeImportDriver = (importedData) => ({\n type: types.COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT,\n payload: importedData\n});\n\nexport const startDriverAssignSensor = (driverId, sensor) => ({\n type: types.DRIVER_ASSIGN_SENSOR_STARTED,\n payload: { driverId, sensor }\n});\nexport const completeDriverAssignSensor = (driverId, sensor) => ({\n type: types.DRIVER_ASSIGN_SENSOR_COMPLETED,\n payload: { driverId, sensor }\n});\n\nexport const startDriverUnassignSensor = (driverId, sensor) => ({\n type: types.DRIVER_UNASSIGN_SENSOR_STARTED,\n payload: { driverId, sensor }\n});\nexport const completeDriverUnassignSensor = (driverId, sensor) => ({\n type: types.DRIVER_UNASSIGN_SENSOR_COMPLETED,\n payload: { driverId, sensor }\n});\n","import * as types from '../types';\n\nexport const startFetchingModules = (filters = {}) => ({\n type: types.MODULES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingModules = (entities, order, operatorId, organizationId) => ({\n type: types.MODULES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingModules = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.MODULES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingModules = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n allowNullOrganizationId\n) => ({\n type: types.MODULES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId, allowNullOrganizationId }\n});\nexport const completePartialFetchingModules = (entities, order, operatorId, organizationId) => ({\n type: types.MODULES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingModules = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MODULES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingModule = (moduleId) => ({\n type: types.MODULE_FETCH_STARTED,\n payload: moduleId\n});\n\nexport const completeFetchingModule = (module) => ({\n type: types.MODULE_FETCH_COMPLETED,\n payload: module\n});\n\nexport const failFetchingModule = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.MODULE_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingModule = (module) => ({\n type: types.MODULE_ADD_STARTED,\n payload: module\n});\nexport const completeAddingModule = (oldId, module) => ({\n type: types.MODULE_ADD_COMPLETED,\n payload: { oldId, module }\n});\nexport const failAddingModule = (oldId, error) => ({\n type: types.MODULE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingModule = (module) => ({\n type: types.MODULE_EDIT_STARTED,\n payload: module\n});\nexport const completeEditingModule = (module) => ({\n type: types.MODULE_EDIT_COMPLETED,\n payload: module\n});\nexport const failEditingModule = (oldModule, error) => ({\n type: types.MODULE_EDIT_FAILED,\n payload: {\n oldModule,\n error\n }\n});\n\nexport const startRemovingModule = (module) => ({\n type: types.MODULE_REMOVE_STARTED,\n payload: {\n module\n }\n});\nexport const completeRemovingModule = (moduleId) => ({\n type: types.MODULE_REMOVE_COMPLETED,\n payload: {\n moduleId\n }\n});\nexport const failRemovingModule = (moduleId, error) => ({\n type: types.MODULE_REMOVE_FAILED,\n payload: {\n moduleId,\n error\n }\n});\n\nexport const selectModule = (moduleId) => ({\n type: types.MODULE_SELECTED,\n payload: moduleId\n});\n\nexport const selectAllModules = (\n moduleIds = [] //List of ModuleIds\n) => ({\n type: types.MODULES_ALL_SELECTED,\n payload: moduleIds\n});\n\nexport const deselectModule = (moduleId) => ({\n type: types.MODULE_DESELECTED,\n payload: moduleId\n});\n\nexport const deselectAllModules = (\n moduleIds = [] //List of ModuleIds\n) => ({\n type: types.MODULES_ALL_DESELECTED,\n payload: moduleIds\n});\n\nexport const dirtyModule = (isDirty) => ({\n type: types.MODULE_DIRTY,\n payload: isDirty\n});\n","export const JOBS_REPORT_FETCH_STARTED = 'JOBS_REPORT_FETCH_STARTED';\nexport const JOBS_REPORT_FETCH_COMPLETED = 'JOBS_REPORT_FETCH_COMPLETED';\nexport const JOBS_REPORT_FETCH_FAILED = 'JOBS_REPORT_FETCH_FAILED';\n","export const ROUTES_REPORT_FETCH_STARTED = 'ROUTES_REPORT_FETCH_STARTED';\nexport const ROUTES_REPORT_FETCH_COMPLETED = 'ROUTES_REPORT_FETCH_COMPLETED';\nexport const ROUTES_REPORT_FETCH_FAILED = 'ROUTES_REPORT_FETCH_FAILED';\n","export const WORKPLANS_REPORT_FETCH_STARTED = 'WORKPLANS_REPORT_FETCH_STARTED';\nexport const WORKPLANS_REPORT_FETCH_COMPLETED = 'WORKPLANS_REPORT_FETCH_COMPLETED';\nexport const WORKPLANS_REPORT_FETCH_FAILED = 'WORKPLANS_REPORT_FETCH_FAILED';\n","import * as types from '../types';\n\nexport const startFetchingServiceClasses = (filters = {}, isDropdown, isWebPage = false) => ({\n type: types.SERVICECLASSES_FETCH_STARTED,\n payload: {\n filters,\n isDropdown,\n isWebPage\n }\n});\nexport const completeFetchingServiceClasses = (entities, order) => ({\n type: types.SERVICECLASSES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingServiceClasses = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SERVICECLASSES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\nexport const startPartialFetchingServiceClasses = (entityTypeId) => ({\n type: types.SERVICECLASSES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId }\n});\nexport const completePartialFetchingServiceClasses = (entities, order) => ({\n type: types.SERVICECLASSES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingServiceClasses = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SERVICECLASSES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_FETCH_STARTED,\n payload: serviceClassId\n});\n\nexport const completeFetchingServiceClass = (serviceClass) => ({\n type: types.SERVICECLASS_FETCH_COMPLETED,\n payload: serviceClass\n});\n\nexport const failFetchingServiceClass = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SERVICECLASS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingServiceClass = (serviceClass) => ({\n type: types.SERVICECLASS_ADD_STARTED,\n payload: serviceClass\n});\nexport const completeAddingServiceClass = (oldId, serviceClass) => ({\n type: types.SERVICECLASS_ADD_COMPLETED,\n payload: { oldId, serviceClass }\n});\nexport const failAddingServiceClass = (oldId, error) => ({\n type: types.SERVICECLASS_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingServiceClass = (serviceClass) => ({\n type: types.SERVICECLASS_EDIT_STARTED,\n payload: serviceClass\n});\nexport const completeEditingServiceClass = (serviceClass) => ({\n type: types.SERVICECLASS_EDIT_COMPLETED,\n payload: serviceClass\n});\nexport const failEditingServiceClass = (oldServiceClass, error) => ({\n type: types.SERVICECLASS_EDIT_FAILED,\n payload: {\n oldServiceClass,\n error\n }\n});\n\nexport const startRemovingServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_REMOVE_STARTED,\n payload: {\n serviceClassId\n }\n});\nexport const completeRemovingServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_REMOVE_COMPLETED,\n payload: {\n serviceClassId\n }\n});\nexport const failRemovingServiceClass = (serviceClassId, error) => ({\n type: types.SERVICECLASS_REMOVE_FAILED,\n payload: {\n serviceClassId,\n error\n }\n});\n\nexport const selectServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_SELECTED,\n payload: serviceClassId\n});\n\nexport const selectAllServiceClasses = (\n serviceClassIds = [] //List of ServiceClassIds\n) => ({\n type: types.SERVICECLASSES_ALL_SELECTED,\n payload: serviceClassIds\n});\n\nexport const deselectServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_DESELECTED,\n payload: serviceClassId\n});\n\nexport const deselectAllServiceClasses = (\n serviceClassIds = [] //List of ServiceClassIds\n) => ({\n type: types.SERVICECLASSES_ALL_DESELECTED,\n payload: serviceClassIds\n});\n","import * as types from '../types';\n\nexport const startFetchingOffices = (filters = {}) => ({\n type: types.OFFICES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOffices = (entities, order, operatorId, organizationId) => ({\n type: types.OFFICES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingOffices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.OFFICES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOffices = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.OFFICES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingOffices = (entities, order, operatorId, organizationId) => ({\n type: types.OFFICES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingOffices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.OFFICES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOffice = (office) => ({\n type: types.OFFICE_ADD_STARTED,\n payload: office\n});\nexport const completeAddingOffice = (oldId, office) => ({\n type: types.OFFICE_ADD_COMPLETED,\n payload: { oldId, office }\n});\nexport const failAddingOffice = (oldId, error) => ({\n type: types.OFFICE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOffice = (office) => ({\n type: types.OFFICE_EDIT_STARTED,\n payload: office\n});\nexport const completeEditingOffice = (office) => ({\n type: types.OFFICE_EDIT_COMPLETED,\n payload: { office }\n});\nexport const failEditingOffice = (oldOffice, error) => ({\n type: types.OFFICE_EDIT_FAILED,\n payload: {\n oldOffice,\n error\n }\n});\n\nexport const startRemovingOffice = (officeId) => ({\n type: types.OFFICE_REMOVE_STARTED,\n payload: {\n officeId\n }\n});\nexport const completeRemovingOffice = (officeId) => ({\n type: types.OFFICE_REMOVE_COMPLETED,\n payload: {\n officeId\n }\n});\nexport const failRemovingOffice = (officeId, error) => ({\n type: types.OFFICE_REMOVE_FAILED,\n payload: {\n officeId,\n error\n }\n});\n\nexport const selectOffice = (officeId) => ({\n type: types.OFFICE_SELECTED,\n payload: officeId\n});\n\nexport const selectAllOffices = (\n officeIds = [] //List of OfficeIds\n) => ({\n type: types.OFFICES_ALL_SELECTED,\n payload: officeIds\n});\n\nexport const deselectOffice = (officeId) => ({\n type: types.OFFICE_DESELECTED,\n payload: officeId\n});\n\nexport const deselectAllOffices = (\n officeIds = [] //List of OfficeIds\n) => ({\n type: types.OFFICES_ALL_DESELECTED,\n payload: officeIds\n});\n","import * as types from '../types';\n\nexport const startFetchingAssets = (filters = {}) => ({\n type: types.ASSETS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingAssets = (entities, order, operatorId, organizationId) => ({\n type: types.ASSETS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingAssets = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ASSETS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingAssets = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.ASSETS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingAssets = (entities, order, operatorId, organizationId) => ({\n type: types.ASSETS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingAssets = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ASSETS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingAsset = (asset) => ({\n type: types.ASSET_ADD_STARTED,\n payload: asset\n});\nexport const completeAddingAsset = (oldId, asset) => ({\n type: types.ASSET_ADD_COMPLETED,\n payload: { oldId, asset }\n});\nexport const failAddingAsset = (oldId, error) => ({\n type: types.ASSET_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingAsset = (asset) => ({\n type: types.ASSET_EDIT_STARTED,\n payload: asset\n});\nexport const completeEditingAsset = (asset) => ({\n type: types.ASSET_EDIT_COMPLETED,\n payload: asset\n});\nexport const failEditingAsset = (oldAsset, error) => ({\n type: types.ASSET_EDIT_FAILED,\n payload: {\n oldAsset,\n error\n }\n});\n\nexport const startRemovingAsset = (assetId) => ({\n type: types.ASSET_REMOVE_STARTED,\n payload: {\n assetId\n }\n});\nexport const completeRemovingAsset = (assetId) => ({\n type: types.ASSET_REMOVE_COMPLETED,\n payload: {\n assetId\n }\n});\nexport const failRemovingAsset = (assetId, error) => ({\n type: types.ASSET_REMOVE_FAILED,\n payload: {\n assetId,\n error\n }\n});\n\nexport const selectAsset = (assetId) => ({\n type: types.ASSET_SELECTED,\n payload: assetId\n});\n\nexport const selectAllAssets = (\n assetIds = [] //List of AssetIds\n) => ({\n type: types.ASSETS_ALL_SELECTED,\n payload: assetIds\n});\n\nexport const deselectAsset = (assetId) => ({\n type: types.ASSET_DESELECTED,\n payload: assetId\n});\n\nexport const deselectAllAssets = (\n assetIds = [] //List of AssetIds\n) => ({\n type: types.ASSETS_ALL_DESELECTED,\n payload: assetIds\n});\n\nexport const startCheckingCode = (assetId, identifier) => ({\n type: types.ASSET_IDENTIFIER_CHECK_STARTED,\n payload: {\n assetId,\n identifier\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.ASSET_IDENTIFIER_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.ASSET_IDENTIFIER_CHECK_FAILED,\n payload: {\n error\n }\n});\n\nexport const startCheckingSecuritySealCode = (assetId, securitySealCode) => ({\n type: types.ASSET_SECURITY_SEAL_CODE_CHECK_STARTED,\n payload: {\n assetId,\n securitySealCode\n }\n});\nexport const completeCheckingSecuritySealCode = (result) => ({\n type: types.ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingSecuritySealCode = (error) => ({\n type: types.ASSET_SECURITY_SEAL_CODE_CHECK_FAILED,\n payload: {\n error\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingContractTemplates = (filters = {}) => ({\n type: types.CONTRACT_TEMPLATES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingContractTemplates = (entities, order, operatorId, organizationId) => ({\n type: types.CONTRACT_TEMPLATES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingContractTemplates = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CONTRACT_TEMPLATES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingContractTemplates = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingContractTemplates = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingContractTemplates = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingContractTemplate = (organizationContract) => ({\n type: types.CONTRACT_TEMPLATE_ADD_STARTED,\n payload: organizationContract\n});\nexport const completeAddingContractTemplate = (oldId, organizationContract) => ({\n type: types.CONTRACT_TEMPLATE_ADD_COMPLETED,\n payload: { oldId, organizationContract }\n});\nexport const failAddingContractTemplate = (oldId, error) => ({\n type: types.CONTRACT_TEMPLATE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingContractTemplate = (organizationContract) => ({\n type: types.CONTRACT_TEMPLATE_EDIT_STARTED,\n payload: organizationContract\n});\nexport const completeEditingContractTemplate = (organizationContract) => ({\n type: types.CONTRACT_TEMPLATE_EDIT_COMPLETED,\n payload: organizationContract\n});\nexport const failEditingContractTemplate = (oldContractTemplate, error) => ({\n type: types.CONTRACT_TEMPLATE_EDIT_FAILED,\n payload: {\n oldContractTemplate,\n error\n }\n});\n\nexport const startRemovingContractTemplate = (templateId) => ({\n type: types.CONTRACT_TEMPLATE_REMOVE_STARTED,\n payload: {\n templateId\n }\n});\nexport const completeRemovingContractTemplate = (templateId) => ({\n type: types.CONTRACT_TEMPLATE_REMOVE_COMPLETED,\n payload: {\n templateId\n }\n});\nexport const failRemovingContractTemplate = (templateId, error) => ({\n type: types.CONTRACT_TEMPLATE_REMOVE_FAILED,\n payload: {\n templateId,\n error\n }\n});\n\nexport const selectContractTemplate = (templateId) => ({\n type: types.CONTRACT_TEMPLATE_SELECTED,\n payload: templateId\n});\n\nexport const selectAllContractTemplates = (\n templateIds = [] //List of templateIds\n) => ({\n type: types.CONTRACT_TEMPLATES_ALL_SELECTED,\n payload: templateIds\n});\n\nexport const deselectContractTemplate = (templateId) => ({\n type: types.CONTRACT_TEMPLATE_DESELECTED,\n payload: templateId\n});\n\nexport const deselectAllContractTemplates = (\n templateIds = [] //List of templateIds\n) => ({\n type: types.CONTRACT_TEMPLATES_ALL_DESELECTED,\n payload: templateIds\n});\n","import * as types from '../types';\n\nexport const startFetchingCustomers = (filters = {}) => ({\n type: types.CUSTOMERS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingCustomers = (entities, order, operatorId, organizationId) => ({\n type: types.CUSTOMERS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingCustomers = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.CUSTOMERS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingCustomers = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.CUSTOMERS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingCustomers = (entities, order, operatorId, organizationId) => ({\n type: types.CUSTOMERS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingCustomers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CUSTOMERS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingCustomer = (customer) => ({\n type: types.CUSTOMER_ADD_STARTED,\n payload: customer\n});\nexport const completeAddingCustomer = (oldId, customer, office) => ({\n type: types.CUSTOMER_ADD_COMPLETED,\n payload: { oldId, customer, office }\n});\nexport const failAddingCustomer = (oldId, error) => ({\n type: types.CUSTOMER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingCustomer = (customer) => ({\n type: types.CUSTOMER_EDIT_STARTED,\n payload: customer\n});\nexport const completeEditingCustomer = (customer, office) => ({\n type: types.CUSTOMER_EDIT_COMPLETED,\n payload: { customer, office }\n});\nexport const failEditingCustomer = (oldCustomer, error) => ({\n type: types.CUSTOMER_EDIT_FAILED,\n payload: {\n oldCustomer,\n error\n }\n});\n\nexport const startRemovingCustomer = (customerId) => ({\n type: types.CUSTOMER_REMOVE_STARTED,\n payload: {\n customerId\n }\n});\nexport const completeRemovingCustomer = (customerId) => ({\n type: types.CUSTOMER_REMOVE_COMPLETED,\n payload: {\n customerId\n }\n});\nexport const failRemovingCustomer = (customerId, error) => ({\n type: types.CUSTOMER_REMOVE_FAILED,\n payload: {\n customerId,\n error\n }\n});\n\nexport const selectCustomer = (customerId) => ({\n type: types.CUSTOMER_SELECTED,\n payload: customerId\n});\n\nexport const selectAllCustomers = (\n customerIds = [] //List of CustomerIds\n) => ({\n type: types.CUSTOMERS_ALL_SELECTED,\n payload: customerIds\n});\n\nexport const deselectCustomer = (customerId) => ({\n type: types.CUSTOMER_DESELECTED,\n payload: customerId\n});\n\nexport const deselectAllCustomers = (\n customerIds = [] //List of CustomerIds\n) => ({\n type: types.CUSTOMERS_ALL_DESELECTED,\n payload: customerIds\n});\n","import * as types from '../types';\n\nexport const startFetchingDivisions = (filters = {}) => ({\n type: types.DIVISIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingDivisions = (entities, order, operatorId, organizationId) => ({\n type: types.DIVISIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingDivisions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.DIVISIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingDivisions = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.DIVISIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingDivisions = (entities, order, operatorId, organizationId) => ({\n type: types.DIVISIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingDivisions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.DIVISIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingDivision = (division) => ({\n type: types.DIVISION_ADD_STARTED,\n payload: division\n});\nexport const completeAddingDivision = (oldId, division) => ({\n type: types.DIVISION_ADD_COMPLETED,\n payload: { oldId, division }\n});\nexport const failAddingDivision = (oldId, error) => ({\n type: types.DIVISION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingDivision = (division) => ({\n type: types.DIVISION_EDIT_STARTED,\n payload: division\n});\nexport const completeEditingDivision = (division) => ({\n type: types.DIVISION_EDIT_COMPLETED,\n payload: division\n});\nexport const failEditingDivision = (oldDivision, error) => ({\n type: types.DIVISION_EDIT_FAILED,\n payload: {\n oldDivision,\n error\n }\n});\n\nexport const startRemovingDivision = (divisionId) => ({\n type: types.DIVISION_REMOVE_STARTED,\n payload: {\n divisionId\n }\n});\nexport const completeRemovingDivision = (divisionId) => ({\n type: types.DIVISION_REMOVE_COMPLETED,\n payload: {\n divisionId\n }\n});\nexport const failRemovingDivision = (divisionId, error) => ({\n type: types.DIVISION_REMOVE_FAILED,\n payload: {\n divisionId,\n error\n }\n});\n\nexport const selectDivision = (divisionId) => ({\n type: types.DIVISION_SELECTED,\n payload: divisionId\n});\n\nexport const selectAllDivisions = (\n divisionIds = [] //List of DivisionIds\n) => ({\n type: types.DIVISIONS_ALL_SELECTED,\n payload: divisionIds\n});\n\nexport const deselectDivision = (divisionId) => ({\n type: types.DIVISION_DESELECTED,\n payload: divisionId\n});\n\nexport const deselectAllDivisions = (\n divisionIds = [] //List of DivisionIds\n) => ({\n type: types.DIVISIONS_ALL_DESELECTED,\n payload: divisionIds\n});\n","import * as types from '../types';\n\nexport const startFetchingSubdivisions = (filters = {}) => ({\n type: types.SUBDIVISIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingSubdivisions = (entities, order, operatorId, organizationId) => ({\n type: types.SUBDIVISIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingSubdivisions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SUBDIVISIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSubdivisions = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.SUBDIVISIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingSubdivisions = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingSubdivisions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SUBDIVISIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSubdivision = (subdivision) => ({\n type: types.SUBDIVISION_ADD_STARTED,\n payload: subdivision\n});\nexport const completeAddingSubdivision = (oldId, subdivision) => ({\n type: types.SUBDIVISION_ADD_COMPLETED,\n payload: { oldId, subdivision }\n});\nexport const failAddingSubdivision = (oldId, error) => ({\n type: types.SUBDIVISION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSubdivision = (subdivision) => ({\n type: types.SUBDIVISION_EDIT_STARTED,\n payload: subdivision\n});\nexport const completeEditingSubdivision = (subdivision) => ({\n type: types.SUBDIVISION_EDIT_COMPLETED,\n payload: subdivision\n});\nexport const failEditingSubdivision = (oldSubdivision, error) => ({\n type: types.SUBDIVISION_EDIT_FAILED,\n payload: {\n oldSubdivision,\n error\n }\n});\n\nexport const startRemovingSubdivision = (subdivisionId) => ({\n type: types.SUBDIVISION_REMOVE_STARTED,\n payload: {\n subdivisionId\n }\n});\nexport const completeRemovingSubdivision = (subdivisionId) => ({\n type: types.SUBDIVISION_REMOVE_COMPLETED,\n payload: {\n subdivisionId\n }\n});\nexport const failRemovingSubdivision = (subdivisionId, error) => ({\n type: types.SUBDIVISION_REMOVE_FAILED,\n payload: {\n subdivisionId,\n error\n }\n});\n\nexport const selectSubdivision = (subdivisionId) => ({\n type: types.SUBDIVISION_SELECTED,\n payload: subdivisionId\n});\n\nexport const selectAllSubdivisions = (\n subdivisionIds = [] //List of SubdivisionIds\n) => ({\n type: types.SUBDIVISIONS_ALL_SELECTED,\n payload: subdivisionIds\n});\n\nexport const deselectSubdivision = (subdivisionId) => ({\n type: types.SUBDIVISION_DESELECTED,\n payload: subdivisionId\n});\n\nexport const deselectAllSubdivisions = (\n subdivisionIds = [] //List of SubdivisionIds\n) => ({\n type: types.SUBDIVISIONS_ALL_DESELECTED,\n payload: subdivisionIds\n});\n","import * as types from '../types';\n\nexport const startFetchingOrganizationContracts = (filters = {}) => ({\n type: types.ORGANIZATION_CONTRACTS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOrganizationContracts = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingOrganizationContracts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ORGANIZATION_CONTRACTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOrganizationContracts = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n allowNullOrganizationId\n) => ({\n type: types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId, allowNullOrganizationId }\n});\nexport const completePartialFetchingOrganizationContracts = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingOrganizationContracts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOrganizationContract = (organizationContract) => ({\n type: types.ORGANIZATION_CONTRACT_ADD_STARTED,\n payload: organizationContract\n});\nexport const completeAddingOrganizationContract = (oldId, organizationContract) => ({\n type: types.ORGANIZATION_CONTRACT_ADD_COMPLETED,\n payload: { oldId, organizationContract }\n});\nexport const failAddingOrganizationContract = (oldId, error) => ({\n type: types.ORGANIZATION_CONTRACT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOrganizationContract = (organizationContract) => ({\n type: types.ORGANIZATION_CONTRACT_EDIT_STARTED,\n payload: organizationContract\n});\nexport const completeEditingOrganizationContract = (organizationContract) => ({\n type: types.ORGANIZATION_CONTRACT_EDIT_COMPLETED,\n payload: organizationContract\n});\nexport const failEditingOrganizationContract = (oldOrganizationContract, error) => ({\n type: types.ORGANIZATION_CONTRACT_EDIT_FAILED,\n payload: {\n oldOrganizationContract,\n error\n }\n});\n\nexport const startRemovingOrganizationContract = (contractId) => ({\n type: types.ORGANIZATION_CONTRACT_REMOVE_STARTED,\n payload: {\n contractId\n }\n});\nexport const completeRemovingOrganizationContract = (contractId) => ({\n type: types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED,\n payload: {\n contractId\n }\n});\nexport const failRemovingOrganizationContract = (contractId, error) => ({\n type: types.ORGANIZATION_CONTRACT_REMOVE_FAILED,\n payload: {\n contractId,\n error\n }\n});\n\nexport const selectOrganizationContract = (contractId) => ({\n type: types.ORGANIZATION_CONTRACT_SELECTED,\n payload: contractId\n});\n\nexport const selectAllOrganizationContracts = (\n contractIds = [] //List of ContractIds\n) => ({\n type: types.ORGANIZATION_CONTRACTS_ALL_SELECTED,\n payload: contractIds\n});\n\nexport const deselectOrganizationContract = (contractId) => ({\n type: types.ORGANIZATION_CONTRACT_DESELECTED,\n payload: contractId\n});\n\nexport const deselectAllOrganizationContracts = (\n contractIds = [] //List of DivisionIds\n) => ({\n type: types.ORGANIZATION_CONTRACTS_ALL_DESELECTED,\n payload: contractIds\n});\n","import * as types from '../types';\n\nexport const startFetchingSensors = (filters = {}) => ({\n type: types.SENSORS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingSensors = (entities, order) => ({\n type: types.SENSORS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingSensors = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SENSORS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSensors = (filters = {}) => ({\n type: types.SENSORS_PARTIAL_FETCH_STARTED,\n payload: filters\n});\nexport const completePartialFetchingSensors = (entities, order) => ({\n type: types.SENSORS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingSensors = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SENSORS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingSensor = (sensorId) => ({\n type: types.SENSOR_FETCH_STARTED,\n payload: sensorId\n});\n\nexport const completeFetchingSensor = (sensor) => ({\n type: types.SENSOR_FETCH_COMPLETED,\n payload: sensor\n});\n\nexport const failFetchingSensor = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SENSOR_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSensor = (sensor) => ({\n type: types.SENSOR_ADD_STARTED,\n payload: sensor\n});\nexport const completeAddingSensor = (oldId, sensor) => ({\n type: types.SENSOR_ADD_COMPLETED,\n payload: { oldId, sensor }\n});\nexport const failAddingSensor = (oldId, error) => ({\n type: types.SENSOR_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSensor = (sensor) => ({\n type: types.SENSOR_EDIT_STARTED,\n payload: sensor\n});\nexport const completeEditingSensor = (sensor) => ({\n type: types.SENSOR_EDIT_COMPLETED,\n payload: sensor\n});\nexport const failEditingSensor = (oldSensor, error) => ({\n type: types.SENSOR_EDIT_FAILED,\n payload: {\n oldSensor,\n error\n }\n});\n\nexport const startRemovingSensor = (sensorId) => ({\n type: types.SENSOR_REMOVE_STARTED,\n payload: {\n sensorId\n }\n});\nexport const completeRemovingSensor = (sensorId) => ({\n type: types.SENSOR_REMOVE_COMPLETED,\n payload: {\n sensorId\n }\n});\nexport const failRemovingSensor = (sensorId, error) => ({\n type: types.SENSOR_REMOVE_FAILED,\n payload: {\n sensorId,\n error\n }\n});\n\nexport const selectSensor = (sensorId) => ({\n type: types.SENSOR_SELECTED,\n payload: sensorId\n});\n\nexport const selectAllSensors = (\n sensorIds = [] //List of SensorIds\n) => ({\n type: types.SENSORS_ALL_SELECTED,\n payload: sensorIds\n});\n\nexport const deselectSensor = (sensorId) => ({\n type: types.SENSOR_DESELECTED,\n payload: sensorId\n});\n\nexport const deselectAllSensors = (\n sensorIds = [] //List of SensorIds\n) => ({\n type: types.SENSORS_ALL_DESELECTED,\n payload: sensorIds\n});\n\nexport const startCheckingCode = (sensorId, identifier) => ({\n type: types.IDENTIFIER_CHECK_STARTED,\n payload: {\n sensorId,\n identifier\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.IDENTIFIER_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.IDENTIFIER_CHECK_FAILED,\n payload: {\n error\n }\n});\n\nexport const sensorCalibrationStartStarted = (sensorId) => ({\n type: types.START_SENSOR_CALIBRATION_STARTED,\n payload: {\n sensorId\n }\n});\nexport const sensorCalibrationStartCompleted = (sensorId) => ({\n type: types.START_SENSOR_CALIBRATION_COMPLETED,\n payload: {\n sensorId\n }\n});\nexport const sensorCalibrationStartFail = (sensorId, error) => ({\n type: types.START_SENSOR_CALIBRATION_FAILED,\n payload: {\n sensorId,\n error\n }\n});\n\nexport const sensorCalibrationFinalizeStarted = (sensorId) => ({\n type: types.FINALIZE_SENSOR_CALIBRATION_STARTED,\n payload: {\n sensorId\n }\n});\nexport const sensorCalibrationFinalizeCompleted = (sensorId) => ({\n type: types.FINALIZE_SENSOR_CALIBRATION_COMPLETED,\n payload: {\n sensorId\n }\n});\nexport const sensorCalibrationFinalizeFail = (sensorId, error) => ({\n type: types.FINALIZE_SENSOR_CALIBRATION_FAILED,\n payload: {\n sensorId,\n error\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingSims = (filters = {}) => ({\n type: types.SIMS_FETCH_STARTED,\n payload: { filters }\n});\nexport const completeFetchingSims = (\n entities,\n order,\n operatorId,\n organizationId,\n divisionId = null,\n subdivisionId = null\n) => ({\n type: types.SIMS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId\n }\n});\nexport const failFetchingSims = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SIMS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingSim = (simId) => ({\n type: types.SIM_FETCH_STARTED,\n payload: simId\n});\n\nexport const completeFetchingSim = (sim, order) => ({\n type: types.SIM_FETCH_COMPLETED,\n payload: {\n sim,\n order\n }\n});\n\nexport const failFetchingSim = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SIMS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSims = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n divisionId = null,\n subdivisionId = null,\n allowNullOrganizationId\n) => ({\n type: types.SIMS_PARTIAL_FETCH_STARTED,\n payload: {\n entityTypeId,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId,\n allowNullOrganizationId\n }\n});\nexport const completePartialFetchingSims = (\n entities,\n order,\n operatorId,\n organizationId,\n divisionId = null,\n subdivisionId = null\n) => ({\n type: types.SIMS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId\n }\n});\nexport const failPartialFetchingSims = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SIMS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSim = (sim) => ({\n type: types.SIM_ADD_STARTED,\n payload: sim\n});\nexport const completeAddingSim = (oldId, sim) => ({\n type: types.SIM_ADD_COMPLETED,\n payload: { oldId, sim }\n});\nexport const failAddingSim = (oldId, error) => ({\n type: types.SIM_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSim = (sim) => ({\n type: types.SIM_EDIT_STARTED,\n payload: sim\n});\nexport const completeEditingSim = (sim) => ({\n type: types.SIM_EDIT_COMPLETED,\n payload: sim\n});\nexport const failEditingSim = (oldSim, error) => ({\n type: types.SIM_EDIT_FAILED,\n payload: {\n oldSim,\n error\n }\n});\n\nexport const startRemovingSim = (simId) => ({\n type: types.SIM_REMOVE_STARTED,\n payload: {\n simId\n }\n});\nexport const completeRemovingSim = (simId) => ({\n type: types.SIM_REMOVE_COMPLETED,\n payload: {\n simId\n }\n});\nexport const failRemovingSim = (simId, error) => ({\n type: types.SIM_REMOVE_FAILED,\n payload: {\n simId,\n error\n }\n});\n\nexport const selectSim = (simId) => ({\n type: types.SIM_SELECTED,\n payload: simId\n});\n\nexport const selectAllSims = (\n simIds = [] //List of SimIds\n) => ({\n type: types.SIMS_ALL_SELECTED,\n payload: simIds\n});\n\nexport const deselectSim = (simId) => ({\n type: types.SIM_DESELECTED,\n payload: simId\n});\n\nexport const deselectAllSims = (\n simIds = [] //List of SimIds\n) => ({\n type: types.SIMS_ALL_DESELECTED,\n payload: simIds\n});\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from 'views/screens/Operators/types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.OPERATORS_FETCH_COMPLETED:\n case types.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((operatorId) => {\n newState[operatorId] = {\n isSelected: false,\n ...state[operatorId],\n ...entities[operatorId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.OPERATOR_ADD_COMPLETED: {\n const { oldId, operator } = action.payload;\n const newState = omit(state, oldId);\n newState[operator.operatorId] = {\n ...state[oldId],\n ...operator,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.OPERATOR_EDIT_COMPLETED: {\n const operator = action.payload;\n return {\n ...state,\n [operator.operatorId]: {\n ...omit(state[operator.operatorId], ['oldOperator']),\n ...omit(operator, ['oldOperator']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.OPERATOR_ADD_STARTED: {\n const operator = action.payload;\n const newState = { ...state };\n newState[operator.operatorId] = {\n isSelected: false,\n ...operator,\n isConfirmed: false\n };\n return newState;\n }\n case types.OPERATOR_EDIT_STARTED: {\n const operator = action.payload;\n return {\n ...state,\n [operator.operatorId]: {\n ...state[operator.operatorId],\n oldOperator: state[operator.operatorId],\n ...operator,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.OPERATOR_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.OPERATOR_EDIT_FAILED: {\n const { oldOperator } = action.payload;\n return {\n ...state,\n [oldOperator.operatorId]: {\n ...omit(state[oldOperator.operatorId], ['oldOperator']),\n ...oldOperator,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.OPERATOR_REMOVE_COMPLETED: {\n const { operatorId } = action.payload;\n return omit(state, operatorId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.OPERATOR_SELECTED: {\n const operatorId = action.payload;\n const newState = {\n ...state,\n [operatorId]: {\n ...state[operatorId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.OPERATOR_DESELECTED: {\n const operatorId = action.payload;\n return {\n ...state,\n [operatorId]: {\n ...state[operatorId],\n isSelected: false\n }\n };\n }\n\n case types.OPERATORS_ALL_SELECTED: {\n const operatorIds = action.payload;\n const newState = { ...state };\n if (operatorIds.length == 0) {\n forEach(state, (operator: any, operatorId) => {\n newState[operatorId] = {\n ...operator,\n isSelected: true\n };\n });\n } else {\n operatorIds.forEach((operatorId) => {\n newState[operatorId] = {\n ...state[operatorId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.OPERATORS_ALL_DESELECTED: {\n const operatorIds = action.payload;\n const newState = { ...state };\n if (operatorIds.length == 0) {\n forEach(state, (operator: any, operatorId) => {\n newState[operatorId] = {\n ...operator,\n isSelected: false\n };\n });\n } else {\n operatorIds.forEach((operatorId) => {\n newState[operatorId] = {\n ...state[operatorId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.OPERATORS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.OPERATOR_ADD_COMPLETED: {\n const { oldId, operator } = action.payload;\n return state.map((operatorId) => (operatorId === oldId ? operator.operatorId : operatorId));\n }\n\n case types.OPERATOR_REMOVE_COMPLETED: {\n const { operatorId } = action.payload;\n return state.filter((operatorIdState) => operatorIdState !== operatorId);\n }\n\n //CASE ADD STARTED\n case types.OPERATOR_ADD_STARTED: {\n const operator = action.payload;\n return [...state, operator.operatorId];\n }\n\n //CASE ADD FAILED\n case types.OPERATOR_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((operatorIdState) => operatorIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.OPERATORS_FETCH_STARTED: {\n return true;\n }\n case types.OPERATORS_FETCH_COMPLETED:\n case types.OPERATORS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.OPERATORS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.OPERATORS_PARTIAL_FETCH_COMPLETED:\n case types.OPERATORS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.OPERATOR_ADD_STARTED: {\n return true;\n }\n case types.OPERATOR_ADD_COMPLETED:\n case types.OPERATOR_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.OPERATOR_EDIT_STARTED: {\n return true;\n }\n case types.OPERATOR_EDIT_COMPLETED:\n case types.OPERATOR_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingStandardPrices = (state = false, action) => {\n switch (action.type) {\n case types.OPERATOR_EDIT_STANDARD_PRICES_STARTED: {\n return true;\n }\n case types.OPERATOR_EDIT_STANDARD_PRICES_COMPLETED:\n case types.OPERATOR_EDIT_STANDARD_PRICES_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.OPERATOR_REMOVE_STARTED: {\n return true;\n }\n case types.OPERATOR_REMOVE_COMPLETED:\n case types.OPERATOR_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.OPERATORS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATORS_FETCH_STARTED:\n case types.OPERATORS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.OPERATORS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATORS_PARTIAL_FETCH_STARTED:\n case types.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.OPERATOR_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATOR_ADD_STARTED:\n case types.OPERATOR_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.OPERATOR_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATOR_EDIT_STARTED:\n case types.OPERATOR_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingStandardPrices = (state = null, action) => {\n switch (action.type) {\n case types.OPERATOR_EDIT_STANDARD_PRICES_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATOR_EDIT_STANDARD_PRICES_STARTED:\n case types.OPERATOR_EDIT_STANDARD_PRICES_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.OPERATOR_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATOR_REMOVE_STARTED:\n case types.OPERATOR_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst operators = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isEditingStandardPrices,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorEditingStandardPrices,\n errorRemoving\n});\n\nexport default operators;\n\n//Own state\nexport const getOwnState = (state) => state.operators;\n\n//Information\nexport const getOperator = (state, operatorId) => getOwnState(state).byId[operatorId];\nexport const getOperatorsList = (state) =>\n getOwnState(state)\n .order.map((id) => getOperator(state, id))\n .filter((operator) => operator.operatorStatus > 0);\nexport const getSelectedOperators = (state) => {\n const selectedOperators = getOperatorsList(state).filter((operator) => operator.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedOperators.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedOperators.length > 0) return selectedOperators;\n};\n\nexport const getSelectedOperator = (state) => {\n const selectedOperators = getOperatorsList(state).filter((operator) => operator.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOperators.length === 1) return selectedOperators[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOperators = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOperators = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOperator = (state) => getOwnState(state).isAdding;\nexport const isEditingOperator = (state) => getOwnState(state).isEditing;\nexport const isEditingOperatorStandardPrices = (state) =>\n getOwnState(state).isEditingStandardPrices;\nexport const isRemovingOperator = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListOperatorsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOperatorsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingOperatorErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOperatorErrors = (state) => getOwnState(state).errorEditing;\nexport const getEditingOperatorStandardPricesErrors = (state) =>\n getOwnState(state).errorEditingStandardPrices;\nexport const getRemovingOperatorErrors = (state) => getOwnState(state).errorRemoving;\n","import * as types from '../types';\n\nexport const startFetchingVehicles = (filters = {}) => ({\n type: types.VEHICLES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingVehicles = (entities, order, operatorId, organizationId) => ({\n type: types.VEHICLES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingVehicles = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.VEHICLES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingVehicles = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.VEHICLES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingVehicles = (entities, order, operatorId, organizationId) => ({\n type: types.VEHICLES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingVehicles = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.VEHICLES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingVehicle = (vehicle) => ({\n type: types.VEHICLE_ADD_STARTED,\n payload: vehicle\n});\nexport const completeAddingVehicle = (oldId, vehicle) => ({\n type: types.VEHICLE_ADD_COMPLETED,\n payload: { oldId, vehicle }\n});\nexport const failAddingVehicle = (oldId, error) => ({\n type: types.VEHICLE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingVehicle = (vehicle) => ({\n type: types.VEHICLE_EDIT_STARTED,\n payload: vehicle\n});\nexport const completeEditingVehicle = (vehicle) => ({\n type: types.VEHICLE_EDIT_COMPLETED,\n payload: vehicle\n});\nexport const failEditingVehicle = (oldVehicle, error) => ({\n type: types.VEHICLE_EDIT_FAILED,\n payload: {\n oldVehicle,\n error\n }\n});\n\nexport const startRemovingVehicle = (vehicleId) => ({\n type: types.VEHICLE_REMOVE_STARTED,\n payload: {\n vehicleId\n }\n});\nexport const completeRemovingVehicle = (vehicleId) => ({\n type: types.VEHICLE_REMOVE_COMPLETED,\n payload: {\n vehicleId\n }\n});\nexport const failRemovingVehicle = (vehicleId, error) => ({\n type: types.VEHICLE_REMOVE_FAILED,\n payload: {\n vehicleId,\n error\n }\n});\n\nexport const selectVehicle = (vehicleId) => ({\n type: types.VEHICLE_SELECTED,\n payload: vehicleId\n});\n\nexport const selectAllVehicles = (\n vehicleIds = [] //List of VehicleIds\n) => ({\n type: types.VEHICLES_ALL_SELECTED,\n payload: vehicleIds\n});\n\nexport const deselectVehicle = (vehicleId) => ({\n type: types.VEHICLE_DESELECTED,\n payload: vehicleId\n});\n\nexport const deselectAllVehicles = (\n vehicleIds = [] //List of VehicleIds\n) => ({\n type: types.VEHICLES_ALL_DESELECTED,\n payload: vehicleIds\n});\n\nexport const startCheckingCode = (vehicleId, licensePlate) => ({\n type: types.VEHICLE_LICENSE_PLATE_CHECK_STARTED,\n payload: {\n vehicleId,\n licensePlate\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.VEHICLE_LICENSE_PLATE_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.VEHICLE_LICENSE_PLATE_CHECK_FAILED,\n payload: {\n error\n }\n});\n","export const ROUTE_CHECKPOINTS_FETCH_STARTED = 'ROUTE_CHECKPOINTS_FETCH_STARTED';\nexport const ROUTE_CHECKPOINTS_FETCH_COMPLETED = 'ROUTE_CHECKPOINTS_FETCH_COMPLETED';\nexport const ROUTE_CHECKPOINTS_FETCH_FAILED = 'ROUTE_CHECKPOINTS_FETCH_FAILED';\n\nexport const ROUTE_CHECKPOINTS_CLEAR = 'ROUTE_CHECKPOINTS_CLEAR';\n","export const timeInSeconds = {\r\n minute: 60,\r\n hour: 3600,\r\n day: 86400,\r\n week: 604800,\r\n}","export const VEHICLE_MAKERS_FETCH_STARTED = 'VEHICLE_MAKERS_FETCH_STARTED';\nexport const VEHICLE_MAKERS_FETCH_COMPLETED = 'VEHICLE_MAKERS_FETCH_COMPLETED';\nexport const VEHICLE_MAKERS_FETCH_FAILED = 'VEHICLE_MAKERS_FETCH_FAILED';\n\nexport const VEHICLE_MAKERS_PARTIAL_FETCH_STARTED = 'VEHICLE_MAKERS_PARTIAL_FETCH_STARTED';\nexport const VEHICLE_MAKERS_PARTIAL_FETCH_COMPLETED = 'VEHICLE_MAKERS_PARTIAL_FETCH_COMPLETED';\nexport const VEHICLE_MAKERS_PARTIAL_FETCH_FAILED = 'VEHICLE_MAKERS_PARTIAL_FETCH_FAILED';\n\nexport const VEHICLE_MAKER_FETCH_STARTED = 'VEHICLE_MAKER_FETCH_STARTED';\nexport const VEHICLE_MAKER_FETCH_COMPLETED = 'VEHICLE_MAKER_FETCH_COMPLETED';\nexport const VEHICLE_MAKER_FETCH_FAILED = 'VEHICLE_MAKER_FETCH_FAILED';\n\nexport const VEHICLE_MAKER_SELECTED = 'VEHICLE_MAKER_SELECTED';\nexport const VEHICLE_MAKERS_ALL_SELECTED = 'VEHICLE_MAKERS_ALL_SELECTED';\nexport const VEHICLE_MAKER_DESELECTED = 'VEHICLE_MAKER_DESELECTED';\nexport const VEHICLE_MAKERS_ALL_DESELECTED = 'VEHICLE_MAKERS_ALL_DESELECTED';\n","export const VEHICLE_MODELS_FETCH_STARTED = 'VEHICLE_MODELS_FETCH_STARTED';\nexport const VEHICLE_MODELS_FETCH_COMPLETED = 'VEHICLE_MODELS_FETCH_COMPLETED';\nexport const VEHICLE_MODELS_FETCH_FAILED = 'VEHICLE_MODELS_FETCH_FAILED';\n\nexport const VEHICLE_MODELS_PARTIAL_FETCH_STARTED = 'VEHICLE_MODELS_PARTIAL_FETCH_STARTED';\nexport const VEHICLE_MODELS_PARTIAL_FETCH_COMPLETED = 'VEHICLE_MODELS_PARTIAL_FETCH_COMPLETED';\nexport const VEHICLE_MODELS_PARTIAL_FETCH_FAILED = 'VEHICLE_MODELS_PARTIAL_FETCH_FAILED';\n\nexport const VEHICLE_MODEL_FETCH_STARTED = 'VEHICLE_MODEL_FETCH_STARTED';\nexport const VEHICLE_MODEL_FETCH_COMPLETED = 'VEHICLE_MODEL_FETCH_COMPLETED';\nexport const VEHICLE_MODEL_FETCH_FAILED = 'VEHICLE_MODEL_FETCH_FAILED';\n\nexport const VEHICLE_MODEL_SELECTED = 'VEHICLE_MODEL_SELECTED';\nexport const VEHICLE_MODELS_ALL_SELECTED = 'VEHICLE_MODELS_ALL_SELECTED';\nexport const VEHICLE_MODEL_DESELECTED = 'VEHICLE_MODEL_DESELECTED';\nexport const VEHICLE_MODELS_ALL_DESELECTED = 'VEHICLE_MODELS_ALL_DESELECTED';\n","export const INSURANCE_COMPANIES_FETCH_STARTED = 'INSURANCE_COMPANIES_FETCH_STARTED';\nexport const INSURANCE_COMPANIES_FETCH_COMPLETED = 'INSURANCE_COMPANIES_FETCH_COMPLETED';\nexport const INSURANCE_COMPANIES_FETCH_FAILED = 'INSURANCE_COMPANIES_FETCH_FAILED';\n\nexport const INSURANCE_COMPANIES_PARTIAL_FETCH_STARTED =\n 'INSURANCE_COMPANIES_PARTIAL_FETCH_STARTED';\nexport const INSURANCE_COMPANIES_PARTIAL_FETCH_COMPLETED =\n 'INSURANCE_COMPANIES_PARTIAL_FETCH_COMPLETED';\nexport const INSURANCE_COMPANIES_PARTIAL_FETCH_FAILED = 'INSURANCE_COMPANIES_PARTIAL_FETCH_FAILED';\n\nexport const INSURANCE_MAKER_FETCH_STARTED = 'INSURANCE_MAKER_FETCH_STARTED';\nexport const INSURANCE_MAKER_FETCH_COMPLETED = 'INSURANCE_MAKER_FETCH_COMPLETED';\nexport const INSURANCE_MAKER_FETCH_FAILED = 'INSURANCE_MAKER_FETCH_FAILED';\n\nexport const INSURANCE_MAKER_SELECTED = 'INSURANCE_MAKER_SELECTED';\nexport const INSURANCE_COMPANIES_ALL_SELECTED = 'INSURANCE_COMPANIES_ALL_SELECTED';\nexport const INSURANCE_MAKER_DESELECTED = 'INSURANCE_MAKER_DESELECTED';\nexport const INSURANCE_COMPANIES_ALL_DESELECTED = 'INSURANCE_COMPANIES_ALL_DESELECTED';\n","export const INSURANCE_AGENTS_FETCH_STARTED = 'INSURANCE_AGENTS_FETCH_STARTED';\nexport const INSURANCE_AGENTS_FETCH_COMPLETED = 'INSURANCE_AGENTS_FETCH_COMPLETED';\nexport const INSURANCE_AGENTS_FETCH_FAILED = 'INSURANCE_AGENTS_FETCH_FAILED';\n\nexport const INSURANCE_AGENTS_PARTIAL_FETCH_STARTED = 'INSURANCE_AGENTS_PARTIAL_FETCH_STARTED';\nexport const INSURANCE_AGENTS_PARTIAL_FETCH_COMPLETED = 'INSURANCE_AGENTS_PARTIAL_FETCH_COMPLETED';\nexport const INSURANCE_AGENTS_PARTIAL_FETCH_FAILED = 'INSURANCE_AGENTS_PARTIAL_FETCH_FAILED';\n\nexport const INSURANCE_AGENT_FETCH_STARTED = 'INSURANCE_AGENT_FETCH_STARTED';\nexport const INSURANCE_AGENT_FETCH_COMPLETED = 'INSURANCE_AGENT_FETCH_COMPLETED';\nexport const INSURANCE_AGENT_FETCH_FAILED = 'INSURANCE_AGENT_FETCH_FAILED';\n\nexport const INSURANCE_AGENT_SELECTED = 'INSURANCE_AGENT_SELECTED';\nexport const INSURANCE_AGENTS_ALL_SELECTED = 'INSURANCE_AGENTS_ALL_SELECTED';\nexport const INSURANCE_AGENT_DESELECTED = 'INSURANCE_AGENT_DESELECTED';\nexport const INSURANCE_AGENTS_ALL_DESELECTED = 'INSURANCE_AGENTS_ALL_DESELECTED';\n","export const HANDLE_SEARCH_QUERY = \"HANDLE_SEARCH_QUERY\";\n\nexport const GET_BOOKMARKS_FETCH_STARTED = \"GET_BOOKMARKS_FETCH_STARTED\";\nexport const GET_BOOKMARKS_FETCH_COMPLETED = \"GET_BOOKMARKS_FETCH_COMPLETED\";\nexport const GET_BOOKMARKS_FETCH_FAILED = \"GET_BOOKMARKS_FETCH_FAILED\";\n\nexport const UPDATE_BOOKMARKED_STARTED = \"UPDATE_BOOKMARKED_STARTED\";\nexport const UPDATE_BOOKMARKED_COMPLETED = \"UPDATE_BOOKMARKED_COMPLETED\";\nexport const UPDATE_BOOKMARKED_FAILED = \"UPDATE_BOOKMARKED_FAILED\";\n","// ** React Imports\nimport { forwardRef } from 'react';\n\n// ** Third Party Components\nimport Proptypes from 'prop-types';\nimport { Badge } from 'reactstrap';\nimport classnames from 'classnames';\n\nconst Avatar = forwardRef((props, ref) => {\n // ** Props\n const {\n color,\n className,\n imgClassName,\n initials,\n size,\n badgeUp,\n content,\n icon,\n badgeColor,\n badgeText,\n img,\n imgHeight,\n imgWidth,\n status,\n tag: Tag,\n contentStyles,\n ...rest\n } = props;\n\n // ** Function to extract initials from content\n const getInitials = (str) => {\n const results = [];\n const wordArray = str.split(' ');\n wordArray.forEach((e) => {\n results.push(e[0]);\n });\n return results.join('');\n };\n\n return (\n \n {img === false || img === undefined ? (\n \n {initials ? getInitials(content) : content}\n\n {icon ? icon : null}\n {badgeUp ? (\n \n {badgeText ? badgeText : '0'}\n \n ) : null}\n \n ) : (\n \n )}\n {status ? (\n \n ) : null}\n \n );\n});\n\nexport default Avatar;\n\n// ** PropTypes\nAvatar.propTypes = {\n imgClassName: Proptypes.string,\n className: Proptypes.string,\n src: Proptypes.string,\n tag: Proptypes.oneOfType([Proptypes.func, Proptypes.string]),\n badgeUp: Proptypes.bool,\n content: Proptypes.string,\n icon: Proptypes.node,\n contentStyles: Proptypes.object,\n badgeText: Proptypes.string,\n imgHeight: Proptypes.oneOfType([Proptypes.string, Proptypes.number]),\n imgWidth: Proptypes.oneOfType([Proptypes.string, Proptypes.number]),\n size: Proptypes.oneOf(['sm', 'lg', 'xl']),\n status: Proptypes.oneOf(['online', 'offline', 'away', 'busy']),\n badgeColor: Proptypes.oneOf([\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'info',\n 'warning',\n 'dark',\n 'light-primary',\n 'light-secondary',\n 'light-success',\n 'light-danger',\n 'light-info',\n 'light-warning',\n 'light-dark'\n ]),\n color: Proptypes.oneOf([\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'info',\n 'warning',\n 'dark',\n 'light-primary',\n 'light-secondary',\n 'light-success',\n 'light-danger',\n 'light-info',\n 'light-warning',\n 'light-dark'\n ]),\n initials(props) {\n if (props['initials'] && props['content'] === undefined) {\n return new Error('content prop is required with initials prop.');\n }\n if (props['initials'] && typeof props['content'] !== 'string') {\n return new Error('content prop must be a string.');\n }\n if (typeof props['initials'] !== 'boolean' && props['initials'] !== undefined) {\n return new Error('initials must be a boolean!');\n }\n }\n};\n\n// ** Default Props\nAvatar.defaultProps = {\n tag: 'div'\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from 'views/screens/Contacts/types';\nimport monitoringUsers from 'views/screens/Users/reducers';\nimport configurations from 'views/../redux/reducers/configurations';\nimport * as authTypes from 'views/../redux/types/auth';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CONTACTS_FETCH_COMPLETED:\n case types.CONTACTS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((contactId) => {\n newState[contactId] = {\n isSelected: false,\n ...entities[contactId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CONTACT_ADD_COMPLETED: {\n const { oldId, contact } = action.payload;\n const newState = omit(state, oldId);\n newState[contact.contactId] = {\n ...state[oldId],\n ...contact,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.CONTACT_EDIT_COMPLETED: {\n const contact = action.payload;\n\n const newState = {\n ...state,\n [contact.contactId]: {\n ...omit(state[contact.contactId], ['oldContact']),\n ...omit(contact, ['oldContact']),\n isConfirmed: true,\n isSelected: true\n }\n };\n\n return contact.originalContactId && contact.originalContactId != contact.contactId\n ? omit(newState, [contact.originalContactId])\n : newState;\n }\n\n case types.CONTACT_ADD_STARTED: {\n const contact = action.payload;\n const newState = { ...state };\n newState[contact.contactId] = {\n isSelected: contact.isSelected ?? false,\n ...contact,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.CONTACT_EDIT_STARTED: {\n const contact = action.payload;\n return {\n ...state,\n [contact.contactId]: {\n ...state[contact.contactId],\n oldContact: state[contact.contactId],\n ...contact,\n isConfirmed: false\n }\n };\n }\n\n case types.CONTACT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.CONTACT_FETCH_COMPLETED: {\n const contact = action.payload;\n const newState = { ...state };\n newState[contact.contactId] = {\n isSelected: false,\n ...state[contact.contactId],\n ...contact,\n isConfirmed: true\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.CONTACT_SELECTED: {\n const contactId = action.payload;\n const newState = {\n ...state,\n [contactId]: {\n ...state[contactId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.CONTACT_DESELECTED: {\n const contactId = action.payload;\n return {\n ...state,\n [contactId]: {\n ...state[contactId],\n isSelected: false\n }\n };\n }\n\n case types.CONTACTS_ALL_SELECTED: {\n const contactIds = action.payload;\n const newState = { ...state };\n if (contactIds.length == 0) {\n forEach(state, (contact: any, contactId) => {\n newState[contactId] = {\n ...contact,\n isSelected: true\n };\n });\n } else {\n contactIds.forEach((contactId) => {\n newState[contactId] = {\n ...state[contactId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.CONTACTS_ALL_DESELECTED: {\n const contactIds = action.payload;\n const newState = { ...state };\n if (contactIds.length == 0) {\n forEach(state, (contact: any, contactId) => {\n newState[contactId] = {\n ...contact,\n isSelected: false\n };\n });\n } else {\n contactIds.forEach((contactId) => {\n newState[contactId] = {\n ...state[contactId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.CONTACT_REMOVE_COMPLETED: {\n const { contacts } = action.payload;\n return omit(state, contacts);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CONTACTS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.CONTACTS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n case types.CONTACT_ADD_COMPLETED: {\n const { oldId, contact } = action.payload;\n return state.map((contactId) => (contactId === oldId ? contact.contactId : contactId));\n }\n\n //CASE ADD STARTED\n case types.CONTACT_ADD_STARTED: {\n const contact = action.payload;\n return [...state, contact.contactId];\n }\n\n //CASE ADD FAILED\n case types.CONTACT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((contactIdState) => contactIdState !== oldId);\n }\n\n //Edit COMPLETED\n case types.CONTACT_EDIT_COMPLETED: {\n const contact = action.payload;\n return contact.originalContactId && contact.originalContactId != contact.contactId\n ? state.filter((contactIdState) => contact.originalContactId != contactIdState)\n : state;\n }\n\n //TYPES REMOVE COMPLETED\n case types.CONTACT_REMOVE_COMPLETED: {\n const { contacts } = action.payload;\n return state.filter((contactIdState) => contacts.indexOf(contactIdState) < 0);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONTACTS_FETCH_STARTED: {\n return true;\n }\n case types.CONTACTS_FETCH_COMPLETED:\n case types.CONTACTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.CONTACT_FETCH_STARTED: {\n return true;\n }\n case types.CONTACT_FETCH_COMPLETED:\n case types.CONTACT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.CONTACT_ADD_STARTED: {\n return true;\n }\n case types.CONTACT_ADD_COMPLETED:\n case types.CONTACT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.CONTACT_EDIT_STARTED: {\n return true;\n }\n case types.CONTACT_EDIT_COMPLETED:\n case types.CONTACT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.CONTACT_REMOVE_STARTED: {\n return true;\n }\n case types.CONTACT_REMOVE_COMPLETED:\n case types.CONTACT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONTACTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACTS_FETCH_STARTED:\n case types.CONTACTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.CONTACT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACT_FETCH_STARTED:\n case types.CONTACT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.CONTACT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACT_ADD_STARTED:\n case types.CONTACT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.CONTACT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACT_EDIT_STARTED:\n case types.CONTACT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.CONTACT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACT_REMOVE_STARTED:\n case types.CONTACT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst contacts = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n configurations\n});\n\nconst people = combineReducers({\n contacts,\n monitoringUsers\n});\n\nexport default people;\n\n//Own state\nexport const getOwnState = (state) => state.people.contacts;\n\n//Information\nexport const getContact = (state, contactId) => getOwnState(state).byId[contactId];\nexport const getContactsList = (state) =>\n getOwnState(state).order.map((id) => getContact(state, id));\nexport const getContactsSpecificList = (state, list) => list.map((id) => getContact(state, id));\nexport const getSelectedContacts = (state) => {\n const selectedContacts = getContactsList(state).filter((contact) => contact.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedContacts.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedContacts.length > 0) return selectedContacts;\n};\nexport const getContactsFromBrand = (state, brandId) =>\n getContactsList(state).filter((contact) => contact.brandId === brandId);\n\nexport const getSelectedContact = (state) => {\n const selectedContacts = getContactsList(state).filter((contact) => contact.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedContacts.length === 1) return selectedContacts[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isFetchingContact = (state) => getOwnState(state).isFetching;\nexport const isFetchingListContacts = (state) => getOwnState(state).isFetchingList;\nexport const isEditingContact = (state) => getOwnState(state).isEditing;\nexport const isAddingContact = (state) => getOwnState(state).isAdding;\nexport const isRemovingContact = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingContactErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListContactsErrors = (state) => getOwnState(state).errorFetchingList;\n","import * as types from '../types';\n\nexport const startFetchingMaintenanceLines = (filters = {}) => ({\n type: types.MAINTENANCE_LINES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingMaintenanceLines = (entities, order, operatorId, organizationId) => ({\n type: types.MAINTENANCE_LINES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingMaintenanceLines = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MAINTENANCE_LINES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingMaintenanceLines = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingMaintenanceLines = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingMaintenanceLines = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MAINTENANCE_LINES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_ADD_STARTED,\n payload: maintenanceLine\n});\nexport const completeAddingMaintenanceLine = (oldId, maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_ADD_COMPLETED,\n payload: { oldId, maintenanceLine }\n});\nexport const failAddingMaintenanceLine = (oldId, error) => ({\n type: types.MAINTENANCE_LINE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_EDIT_STARTED,\n payload: maintenanceLine\n});\nexport const completeEditingMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_EDIT_COMPLETED,\n payload: maintenanceLine\n});\nexport const failEditingMaintenanceLine = (oldMaintenanceLine, error) => ({\n type: types.MAINTENANCE_LINE_EDIT_FAILED,\n payload: {\n oldMaintenanceLine,\n error\n }\n});\n\nexport const startRemovingMaintenanceLine = (maintenanceLineId: number) => ({\n type: types.MAINTENANCE_LINE_REMOVE_STARTED,\n payload: {\n maintenanceLineId\n }\n});\nexport const completeRemovingMaintenanceLine = (maintenanceLineId) => ({\n type: types.MAINTENANCE_LINE_REMOVE_COMPLETED,\n payload: {\n maintenanceLineId\n }\n});\nexport const failRemovingMaintenanceLine = (maintenanceLineId, error) => ({\n type: types.MAINTENANCE_LINE_REMOVE_FAILED,\n payload: {\n maintenanceLineId,\n error\n }\n});\n\nexport const startCopyMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_COPY_STARTED,\n payload: maintenanceLine\n});\nexport const completeCopyMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_COPY_COMPLETED,\n payload: maintenanceLine\n});\nexport const failCopyMaintenanceLine = (error) => ({\n type: types.MAINTENANCE_LINE_COPY_FAILED,\n payload: {\n error\n }\n});\n\nexport const selectMaintenanceLine = (maintenanceLineId) => ({\n type: types.MAINTENANCE_LINE_SELECTED,\n payload: maintenanceLineId\n});\n\nexport const selectAllMaintenanceLines = (\n maintenanceLineIds = [] //List of MaintenanceLineIds\n) => ({\n type: types.MAINTENANCE_LINES_ALL_SELECTED,\n payload: maintenanceLineIds\n});\n\nexport const deselectMaintenanceLine = (maintenanceLineId) => ({\n type: types.MAINTENANCE_LINE_DESELECTED,\n payload: maintenanceLineId\n});\n\nexport const deselectAllMaintenanceLines = (\n maintenanceLineIds = [] //List of MaintenanceLineIds\n) => ({\n type: types.MAINTENANCE_LINES_ALL_DESELECTED,\n payload: maintenanceLineIds\n});\n","export const BRANDS_FETCH_STARTED = 'BRANDS_FETCH_STARTED';\nexport const BRANDS_FETCH_COMPLETED = 'BRANDS_FETCH_COMPLETED';\nexport const BRANDS_FETCH_FAILED = 'BRANDS_FETCH_FAILED';\n","/* -------------------------------------------------------------------------- */\n/* Componente DateInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un date input genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport { english } from 'flatpickr/dist/l10n/default';\nimport { Spanish } from 'flatpickr/dist/l10n/es';\nimport moment from 'moment';\nimport { useRef, useState } from 'react';\nimport { Calendar, XSquare } from 'react-feather';\nimport Flatpickr from 'react-flatpickr';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport {\n Col,\n FormGroup,\n Label,\n PopoverBody,\n Row,\n UncontrolledPopover,\n UncontrolledTooltip,\n InputGroupText,\n InputGroup\n} from 'reactstrap';\n\ninterface Props {\n field: any;\n fieldstate: any;\n errorMessage?: boolean;\n required?: boolean;\n maxDate?: Date | string;\n minDate?: Date | string;\n popoverBody?: any;\n isRange?: boolean;\n showTime?: boolean;\n enableTime?: boolean;\n onChange?: (date?: string | [string, string] | null) => void;\n label?: any;\n allowNulls?: boolean;\n disabled?: boolean;\n defaultHour?: number;\n defaultMinute?: number;\n additionalTimeProps?: any; // to pass additional props to the time picker as minHour/minMinute\n}\n\nconst DateInput = (props: Props) => {\n const {\n field,\n fieldstate,\n errorMessage,\n required,\n allowNulls = false,\n maxDate,\n popoverBody,\n onChange,\n minDate,\n isRange,\n showTime,\n enableTime,\n label,\n disabled,\n defaultHour = 11,\n defaultMinute = 11,\n additionalTimeProps = {}\n } = props;\n const intl = useIntl();\n const startRef = useRef({});\n const startButtonRef = useRef({});\n const endRef = useRef({});\n const endButtonRef = useRef({});\n const ref = useRef({});\n const [prevValue, setPrevValue] = useState([]);\n const [prevValueRange, setPrevValueRange] = useState([]);\n\n return (\n \n \n \n \n \n {isRange && enableTime && (\n <>\n
\n {\n if (field.value?.length == 2)\n startRef.current.flatpickr.open(undefined, startButtonRef.current);\n else ref.current.flatpickr.open();\n }}\n >\n \n \n
\n {\n field.onChange([moment(value[0]).format('YYYY-MM-DD HH:mm'), field.value[1]]);\n }}\n options={{\n locale: intl.locale === 'es' ? Spanish : english,\n dateFormat: showTime ? 'Y-m-d H:i' : 'Y-m-d',\n minDate: minDate,\n maxDate: field.value?.length == 2 ? field.value[1] : undefined,\n enableTime: true,\n mode: 'single',\n defaultHour: defaultHour,\n defaultMinute: defaultMinute,\n ...additionalTimeProps\n }}\n className={'d-none'}\n />\n \n {intl.formatMessage({ id: 'common.startDate' })}\n \n \n )}\n {\n if (!config.isOpen && isRange && value.length === 1) {\n ref.current.flatpickr.selectedDates = [];\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n } else {\n if (value.length === 1 && !isRange) {\n const date = (\n enableTime ? moment(value[0]) : moment(value[0]).startOf('day')\n ).format(enableTime ? 'YYYY-MM-DD HH:mm' : 'YYYY-MM-DD');\n field.onChange(date);\n if (onChange) onChange(date);\n } else if (value.length === 1 && isRange && enableTime) {\n if (ref.current?.flatpickr) {\n if (prevValue.length < value.length) {\n ref.current.flatpickr.selectedDates[0].setHours(0, 0, 0, 0);\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n } else if (prevValue.length > value.length) {\n ref.current.flatpickr.selectedDates[0].setHours(\n prevValue[0].getHours(),\n prevValue[0].getMinutes(),\n 0,\n 0\n );\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n }\n }\n setPrevValue([...value]);\n } else if (value.length === 2 && isRange) {\n if (ref.current?.flatpickr && enableTime) {\n if (prevValue.length > prevValueRange.length) {\n ref.current.flatpickr.selectedDates[1].setHours(23, 59, 0, 0);\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n } else if (prevValue.length < prevValueRange.length) {\n ref.current.flatpickr.selectedDates[1].setHours(\n prevValueRange[1].getHours(),\n prevValueRange[1].getMinutes(),\n 0,\n 0\n );\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n }\n }\n field.onChange(\n value.map((date, i) => {\n if (!enableTime) {\n if (i === 0)\n return moment(date).startOf('day').format('YYYY-MM-DD HH:mm');\n return moment(date).endOf('day').format('YYYY-MM-DD HH:mm');\n } else return moment(date).format('YYYY-MM-DD HH:mm');\n })\n );\n setPrevValueRange(value);\n setPrevValue([...value]);\n }\n }\n }}\n onClose={(value) => {\n if (!isRange && value.length < 1) field.onChange(null);\n if (isRange && value.length < 2) {\n field.onChange(null);\n setPrevValue([]);\n setPrevValueRange([]);\n }\n }}\n />\n {isRange && enableTime && (\n \n {intl.formatMessage({ id: 'common.dateRange' })}\n
\n {field.value?.length == 2 ? field.value.join(' - ') : undefined}\n
\n )}\n {popoverBody && (\n \n {popoverBody}\n \n )}\n {isRange && enableTime && (\n <>\n {\n field.onChange([field.value[0], moment(value[0]).format('YYYY-MM-DD HH:mm')]);\n }}\n options={{\n locale: intl.locale === 'es' ? Spanish : english,\n dateFormat: showTime ? 'Y-m-d H:i' : 'Y-m-d',\n minDate: field.value?.length == 2 ? field.value[0] : undefined,\n maxDate: maxDate,\n enableTime: true,\n mode: 'single',\n defaultHour: defaultHour,\n defaultMinute: defaultMinute,\n ...additionalTimeProps\n }}\n className={'d-none'}\n />\n
\n {\n if (field.value?.length == 2)\n endRef.current.flatpickr.open(undefined, endButtonRef.current);\n else ref.current.flatpickr.open();\n }}\n >\n \n \n
\n \n {intl.formatMessage({ id: 'common.endDate' })}\n \n \n )}\n
\n \n {allowNulls && (\n \n {\n field.onChange(null);\n if (onChange) onChange(null);\n }}\n />\n \n )}\n
\n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nDateInput.defaultProps = {\n required: false,\n enableTime: false,\n showTime: true,\n disabled: false\n};\n\nexport default DateInput;\n","export const CONFIGURATIONS_FETCH_STARTED = 'CONFIGURATIONS_FETCH_STARTED';\nexport const CONFIGURATIONS_FETCH_COMPLETED = 'CONFIGURATIONS_FETCH_COMPLETED';\nexport const CONFIGURATIONS_FETCH_FAILED = 'CONFIGURATIONS_FETCH_FAILED';\n","export const MODELS_FETCH_STARTED = 'MODELS_FETCH_STARTED';\nexport const MODELS_FETCH_COMPLETED = 'MODELS_FETCH_COMPLETED';\nexport const MODELS_FETCH_FAILED = 'MODELS_FETCH_FAILED';\n","export const PROVIDERS_FETCH_STARTED = 'PROVIDERS_FETCH_STARTED';\nexport const PROVIDERS_FETCH_COMPLETED = 'PROVIDERS_FETCH_COMPLETED';\nexport const PROVIDERS_FETCH_FAILED = 'PROVIDERS_FETCH_FAILED';\n","import {\n Aggregate,\n AggregateColumnDirective,\n AggregateColumnsDirective,\n AggregateDirective,\n AggregatesDirective,\n ColumnChooser,\n ColumnDirective,\n ColumnsDirective,\n Edit,\n ExcelExport,\n Filter,\n Freeze,\n GridComponent,\n Group,\n Inject,\n Page,\n Reorder,\n Resize,\n RowDD,\n Search,\n Sort,\n Toolbar,\n VirtualScroll\n} from '@syncfusion/ej2-react-grids';\nimport { TooltipComponent } from '@syncfusion/ej2-react-popups';\nimport { omit } from 'lodash';\nimport { FC, Key, useContext, useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Col, Row, Spinner } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\n// ** Internationalization Context\nimport { ToolbarItems } from '@syncfusion/ej2-react-grids';\nimport { TableColumn } from 'utility/types';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport { IntlContext } from '../../../utility/context/Internationalization';\nimport { L10n, setCulture } from '@syncfusion/ej2-base';\n\n/**\n * Componente \"tonto\" para mostrar tablas en catálogos\n * Props:\n * columns:\n * Una lista de objetos con la información de las columnas, cada objeto debe tener fieldName y columnName\n * Por defecto, la tabla ordenará según el primer parámetro, para usar el orden por defecto debe pasarse el prop allowSorting=false\n * data:\n * Una lista de objetos con la información a presentar\n * onSelect:\n * Función para manejar la acción cuando se selecciona un ítem, recibe un parámetro, el objeto seleccionado\n * onDeselect:\n * Equivalente a onSelect, maneja la acción de deseleccionar\n */\n\ninterface SortedColumn {\n sortedColumnIndex: number;\n direction: 'Ascending' | 'Descending';\n}\n\ninterface Props {\n setTableRef?: (value: GridComponent | null) => void;\n id?: string;\n version?: number;\n enablePersistence?: boolean;\n toolbarOptions?: ToolbarItems[];\n toolbarClick?: any;\n omitPersistenceKeys?: string[];\n enableVirtualization?: boolean;\n rerender?: Date | Key;\n selectAll?: Date | Key;\n deselectAll?: Date | Key;\n columns: TableColumn[];\n initialFilterColumns?: any[];\n sortSettings?: any;\n sortedColumn?: SortedColumn;\n data: any[];\n actionSave?: (value: any) => any;\n onDrop?: Function;\n onSelect?: Function;\n onDeselect?: Function;\n selected?: any;\n changeSelected?: Function;\n rerenderSelected?: Date;\n isFetching?: boolean;\n allowSorting?: boolean;\n allowRowDragAndDrop?: boolean;\n allowPaging?: boolean;\n pageSize?: number;\n allowResizing?: boolean;\n allowReordering?: boolean;\n allowFiltering?: boolean;\n allowMultipleSelection?: boolean;\n allowExcelExport?: boolean;\n initialSelectedRowIndex?: number;\n persistSelectIndexes?: boolean;\n frozenColumns?: number;\n height?: number;\n allowGrouping?: boolean;\n groupSettings?: any;\n allowDeleting?: boolean;\n usingAdvancedFilters?: boolean;\n sharedLink?: boolean;\n}\n\nconst Table: FC = (props) => {\n const { isFetching } = props;\n\n return !isFetching ? (\n \n ) : (\n \n \n \n \n \n );\n};\nconst TableComponent = (props: Props) => {\n const {\n id,\n version,\n enablePersistence,\n omitPersistenceKeys,\n enableVirtualization,\n columns,\n rerender,\n selectAll,\n deselectAll,\n initialFilterColumns,\n sortSettings = undefined,\n data,\n actionSave,\n onDrop,\n onSelect,\n onDeselect,\n selected,\n changeSelected,\n rerenderSelected,\n allowSorting,\n allowRowDragAndDrop,\n allowPaging,\n pageSize,\n allowResizing,\n allowReordering,\n allowFiltering,\n allowMultipleSelection,\n sortedColumn,\n frozenColumns,\n initialSelectedRowIndex,\n persistSelectIndexes,\n height,\n toolbarOptions,\n allowExcelExport,\n toolbarClick,\n setTableRef,\n allowGrouping,\n groupSettings,\n usingAdvancedFilters = false,\n sharedLink = false\n } = props;\n\n const [state, changeState] = useState(Object);\n const [show, setShow] = useState(true);\n const [locale, setLocale] = useState();\n const stateRef = useRef(state);\n /**\n * Key must be a React.Key type\n * when its a date, javascript automatically converts to key\n */\n const [key, changeKey] = useState(new Date());\n const [tooltip, setTooltip] = useState(null);\n const [tableColumns, setTableColumns] = useState([]);\n const [selectedRowIndexes, setSelectedRowIndexes] = useState([]);\n const [scrollLeft, setScrollLeft] = useState(null);\n const intlContext = useContext(IntlContext);\n const dataTable = data?.map((row, i) => ({\n ...row,\n dataRowTableId: i\n }));\n\n const { user, authSystems } = useSelector((state) => ({\n user: authSelectors?.getAuthUser(state),\n authSystems: authSelectors?.getAuthSystems(state)\n }));\n\n const currentLocale = intlContext.locale === 'es' ? 'es-US' : intlContext.locale;\n setCulture(currentLocale);\n\n const notFoundMessage = usingAdvancedFilters\n ? appIntl()?.formatMessage({ id: 'common.noRecordsTryAdvancedFilters' })\n : appIntl()?.formatMessage({ id: 'common.noRecordsToDisplay' });\n\n L10n.load({\n [currentLocale]: {\n grid: {\n EmptyRecord: notFoundMessage // Set the dynamic \"No Records Found\" message\n }\n }\n });\n\n useEffect(() => {\n //Elimina del localStorage las keys que se quieren eliminar\n try {\n if (id && enablePersistence && omitPersistenceKeys && omitPersistenceKeys?.length > 0) {\n const value = window?.localStorage?.getItem('grid' + id);\n if (value) {\n const savedVersion = parseInt(\n JSON?.parse(window?.localStorage?.getItem('grid' + id + '_version') || '0')\n );\n if ((version || 0) === savedVersion) {\n const model = omit(JSON?.parse(value), omitPersistenceKeys);\n window?.localStorage?.setItem('grid' + id, JSON?.stringify(model));\n } else {\n window?.localStorage?.removeItem('grid' + id);\n window?.localStorage?.setItem('grid' + id + '_version', JSON?.stringify(version));\n }\n }\n }\n } catch (error) {\n console.warn('1');\n console.warn(error);\n }\n }, []);\n\n useEffect(() => {\n try {\n if (state) {\n stateRef.current = state;\n }\n //Al cargar por primera vez la tabla se realiza un autoFit de todas las columnas\n if (state?.headerModule && state?.autoFitColumns) {\n state?.autoFitColumns();\n }\n } catch (error) {\n console.warn('2');\n console.warn(error);\n }\n }, [state]);\n\n useEffect(() => {\n //Se setean la columna que se quiere ordenar en la tabla\n try {\n if (\n state?.headerModule &&\n state?.sortSettings &&\n sortedColumn?.sortedColumnIndex &&\n tableColumns?.length > 0 &&\n (state?.sortSettings?.columns?.length === 0 ||\n tableColumns[sortedColumn?.sortedColumnIndex]?.fieldName !==\n state?.sortSettings?.columns[0]?.field ||\n sortedColumn.direction !== state?.sortSettings?.columns[0]?.direction)\n ) {\n state.sortSettings.columns = [\n {\n field: tableColumns[sortedColumn?.sortedColumnIndex]?.fieldName,\n direction: sortedColumn?.direction\n }\n ];\n reset();\n }\n } catch (error) {\n console.warn('3');\n console.warn(error);\n }\n }, [state?.sortSettings, tableColumns?.length, sortedColumn?.sortedColumnIndex]);\n\n useDeepCompareEffect(() => {\n //Se restringe dependiendo del nivel de acceso del usuario\n try {\n if (columns?.length > 0) {\n if (user?.accessLevelId == 11 || user?.accessLevelId == 13) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) => column?.fieldName && !['operatorName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 7) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n !['operatorName', 'organizationName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 4) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n !['operatorName', 'organizationName', 'divisionName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 2 || user?.accessLevelId == 20) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n ![\n 'operatorName',\n 'organizationName',\n 'divisionName',\n 'subdivisionName'\n ]?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 15 || user?.accessLevelId == 9 || sharedLink) {\n setTableColumns(columns?.filter((column) => column !== undefined && column !== null));\n }\n }\n } catch (error) {\n //\n console.warn('4');\n console.warn(error);\n }\n }, [user, columns?.length]);\n\n useEffect(() => {\n try {\n if (\n selected &&\n changeSelected &&\n dataTable?.length > 0 &&\n typeof state?.getFilteredRecords === 'function'\n ) {\n if (state?.selectRowsByRange) state?.selectRowsByRange(0, dataTable?.length);\n var selectedRows: any[] = [];\n selectedRows = state?.getFilteredRecords();\n if (selectedRows?.length === 0) {\n const input = document?.getElementById(`${id}_searchbar`);\n if (input) {\n selectedRows = dataTable?.filter((data) =>\n tableColumns\n ?.filter((column) => typeof data[column?.fieldName] === 'string')\n ?.map((column) =>\n data[column?.fieldName]\n ?.toLowerCase()\n ?.trim()\n ?.includes(input['value']?.toLowerCase()?.trim())\n )\n ?.includes(true)\n );\n } else {\n selectedRows = [\n ...selected,\n ...dataTable?.filter(\n (row, i) => !selected?.map((row) => row?.dataRowTableId)?.includes(i)\n )\n ];\n }\n }\n changeSelected(selectedRows);\n }\n } catch (error) {\n console.warn('5');\n console.warn(error);\n }\n }, [selectAll]);\n\n useEffect(() => {\n try {\n if (state?.clearSelection) state?.clearSelection();\n if (selected && changeSelected) {\n changeSelected([]);\n }\n } catch (error) {\n console.warn('6');\n console.warn(error);\n }\n }, [deselectAll]);\n\n // useEffect(() => {\n // try {\n // if (persistSelectIndexes) {\n // if (state?.selectionModule?.selectedRowIndexes?.length > 0) {\n // setSelectedRowIndexes([state?.selectionModule?.selectedRowIndexes, false]);\n // }\n // }\n // reset();\n // } catch (error) {\n // console.warn('7');\n // console.warn(error);\n // }\n // }, [dataTable]);\n\n useEffect(() => {\n try {\n if (locale) {\n setShow(false);\n setTimeout(() => setShow(true), 1000);\n } else {\n setLocale(intlContext?.locale);\n }\n } catch (error) {\n console.warn('8');\n console.warn(error);\n }\n }, [intlContext?.locale]);\n\n const compareDeps = tableColumns?.map((col) => ({\n fieldName: col?.fieldName,\n headerText: col?.headerText,\n hide: col?.hide\n }));\n useDeepCompareEffect(() => {\n try {\n console.log('rerender by tableColumns map');\n reset();\n if (rerender) setTimeout(() => changeKey(rerender), 200);\n } catch (error) {\n console.warn('9');\n console.warn(error);\n }\n }, [rerender, compareDeps]);\n\n useEffect(() => {\n try {\n if (state?.selectRows && selected)\n state?.selectRows(\n selected?.map((object) => {\n return object?.dataRowTableId;\n })\n );\n if (changeSelected) changeSelected(selected);\n } catch (error) {\n console.warn('10');\n console.warn(error);\n }\n }, [rerenderSelected]);\n\n const reset = () => {\n if (scrollLeft) {\n setTimeout(() => {\n stateRef.current.scrollModule['content'].scrollLeft = scrollLeft;\n setScrollLeft(null);\n }, 25);\n }\n /* if (state?.scrollModule?.content?.scrollTop > 0) state.scrollModule.content.scrollTop = 0; */\n if (state?.refresh) state?.refresh();\n const select: any[] = selected;\n if (selected && changeSelected) changeSelected([]);\n };\n\n const select = (event: any) => {\n if (selected && changeSelected) {\n if (Array?.isArray(event?.data)) {\n if (event?.data?.length > 0)\n changeSelected([\n ...selected,\n ...event?.data?.filter(\n (row) => !selected?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n ]);\n else\n changeSelected([\n ...selected,\n ...dataTable?.filter(\n (row, i) =>\n event?.rowIndexes?.includes(i) &&\n !selected?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n ]);\n } else if (event?.data === undefined)\n changeSelected([...selected, ...dataTable?.filter((row, i) => i === event?.rowIndex)]);\n else changeSelected([...selected, event?.data]);\n if (onSelect) onSelect(event);\n }\n };\n\n const deselect = (event: any) => {\n if (selected && changeSelected) {\n if (Array?.isArray(event?.data))\n changeSelected(\n selected?.filter(\n (row) => !event?.data?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n );\n else\n changeSelected(\n selected?.filter(\n (row) =>\n row?.dataRowTableId !==\n (event?.data?.dataRowTableId ?? dataTable[event?.rowIndex]?.dataRowTableId)\n )\n );\n if (onDeselect) onDeselect(event);\n }\n };\n\n const toolbar: ToolbarItems[] | undefined =\n toolbarOptions ??\n (tableColumns && tableColumns?.some((column) => column.allowEditing) ? undefined : ['Search']);\n\n return show ? (\n {\n if (t) {\n setTooltip(t);\n }\n }}\n beforeRender={(arg) => {\n if (arg && tooltip) {\n const target = arg?.target;\n const idColumnTooltip = target?.id;\n const indexColumnTooltip = target?.getAttribute('index') || 0;\n const parent =\n arg?.target?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement\n ?.children[1]?.children[0]?.children[1]?.children[indexColumnTooltip] ||\n arg?.target?.parentElement;\n if (idColumnTooltip && parent) {\n if (tableColumns[idColumnTooltip]?.tooltipColumn) {\n for (let index = 0; index < parent?.childElementCount; index++) {\n const children = parent?.children[index];\n const columnTitle = children?.getAttribute('aria-label');\n if (\n columnTitle &&\n children?.classList?.contains('e-hide') &&\n children\n ?.getAttribute('aria-label')\n ?.includes(tableColumns[idColumnTooltip]?.tooltipColumn)\n ) {\n tooltip.content = children?.innerHTML;\n tooltip.cssClass = children?.innerHTML ? '' : 'hidden-tooltip';\n }\n }\n } else {\n tooltip.content = tableColumns[idColumnTooltip]?.tooltipText;\n tooltip.cssClass = tableColumns[idColumnTooltip]?.tooltipText ? '' : 'hidden-tooltip';\n }\n }\n }\n }}\n >\n {tableColumns?.length > 0 && (\n {\n try {\n if (event && event?.name === 'cellSave') {\n const columns = event?.rowData;\n columns[event?.columnName] = event?.value;\n setScrollLeft(state?.scrollModule?.content?.scrollLeft);\n if (actionSave) actionSave(columns);\n }\n } catch (error) {\n console.warn('cs');\n console.warn(error);\n }\n }}\n rowDrop={(event) => {\n try {\n if (onDrop) onDrop(event);\n } catch (error) {\n console.warn('rd');\n console.warn(error);\n }\n }}\n enablePersistence={enablePersistence}\n enableVirtualization={\n tableColumns &&\n (tableColumns?.some((column) => column?.allowEditing) || dataTable?.length <= 100)\n ? false\n : enableVirtualization\n }\n locale={currentLocale}\n dataSource={dataTable?.map((row, i) => ({\n ...row,\n ...tableColumns\n ?.filter((col) => col?.type === 'dateTime')\n ?.reduce(\n (obj, item) =>\n Object?.assign(obj, {\n [item?.fieldName]: row[item?.fieldName] ? new Date(row[item?.fieldName]) : null\n }),\n {}\n )\n }))}\n gridLines={'Horizontal'}\n rowSelected={(event) => {\n select(event);\n }}\n rowDeselected={(event) => {\n deselect(event);\n }}\n ref={(ref) => {\n if (setTableRef) setTableRef(ref);\n changeState(ref);\n }}\n allowPaging={allowPaging}\n pageSettings={{\n pageSize: enableVirtualization ? 100 : pageSize,\n currentPage: initialSelectedRowIndex\n ? Math?.ceil((initialSelectedRowIndex + 1) / (pageSize ?? 15))\n : undefined\n }}\n allowResizing={allowResizing}\n allowRowDragAndDrop={allowRowDragAndDrop}\n allowExcelExport={allowExcelExport}\n allowReordering={allowReordering}\n allowFiltering={allowFiltering}\n filterSettings={{\n columns: initialFilterColumns,\n type: 'Menu'\n }}\n allowSorting={allowSorting}\n sortSettings={\n sortSettings\n ? sortSettings\n : tableColumns[0]\n ? {\n columns: [{ field: tableColumns[0]?.fieldName, direction: 'Ascending' }]\n }\n : undefined\n }\n toolbarClick={toolbarClick}\n className={toolbar && toolbar?.length > 0 ? 'grid-round-header' : 'grid-round-header'}\n toolbar={toolbar}\n resizeSettings={{\n mode: 'Auto'\n }}\n selectionSettings={\n allowMultipleSelection\n ? {\n enableSimpleMultiRowSelection: true,\n type: 'Multiple'\n }\n : undefined\n }\n selectedRowIndex={\n initialSelectedRowIndex != null ? initialSelectedRowIndex % (pageSize ?? 15) : undefined\n }\n dataBound={() => {\n try {\n if (selectedRowIndexes?.length > 0 && selectedRowIndexes[0]?.length > 0) {\n if (selectedRowIndexes[1]) {\n state?.selectRows(selectedRowIndexes[0]);\n setSelectedRowIndexes([]);\n } else setSelectedRowIndexes([selectedRowIndexes[0], true]);\n }\n } catch (error) {\n console.warn('dbound');\n console.warn(error);\n }\n }}\n editSettings={{\n allowEditing:\n toolbarOptions?.includes('Edit') ||\n (tableColumns && tableColumns?.some((column) => column?.allowEditing)),\n allowAdding: toolbarOptions?.includes('Add'),\n allowDeleting: toolbarOptions?.includes('Delete'),\n mode: 'Batch'\n }}\n groupSettings={groupSettings}\n allowGrouping={allowGrouping}\n noRecordsTemplate={usingAdvancedFilters && appIntl().formatMessage({ id: 'common.id' })}\n >\n \n {tableColumns?.map((column, i) =>\n column?.columns && column?.columns?.length > 0 ? (\n \n stackedColumn?.columns && stackedColumn?.columns?.length > 0\n ? {\n autoFit: true,\n customAttributes: stackedColumn?.customAttributes,\n headerText:\n (stackedColumn?.staticText ||\n (stackedColumn?.headerText\n ? appIntl()?.formatMessage({ id: stackedColumn?.headerText })\n : '')) +\n (stackedColumn?.metric\n ? stackedColumn?.staticText || stackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric) +\n ')'\n : authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric\n : ''),\n key: stackedColumn?.fieldName || stackedColumn?.customKey,\n type: stackedColumn.type || 'string',\n visible: stackedColumn?.hide !== true,\n columns: stackedColumn?.columns?.map((stackedStackedColumn) => ({\n autoFit: true,\n key: stackedStackedColumn?.fieldName,\n field: stackedStackedColumn?.fieldName,\n maxWidth: stackedStackedColumn?.maxWidth,\n minWidth: stackedStackedColumn?.minWidth,\n // commandsTemplate: stackedColumn.template,\n headerText:\n (stackedStackedColumn?.staticText ||\n (stackedStackedColumn?.headerText\n ? appIntl()?.formatMessage({\n id: stackedStackedColumn?.headerText\n })\n : '')) +\n (stackedStackedColumn?.metric\n ? stackedColumn?.staticText || stackedStackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedStackedColumn?.metric] !== undefined\n ? authSystems[stackedStackedColumn?.metric]\n : stackedStackedColumn?.metric) +\n ')'\n : authSystems[stackedStackedColumn?.metric] !== undefined\n ? authSystems[stackedStackedColumn?.metric]\n : stackedStackedColumn?.metric\n : ''),\n allowEditing: stackedStackedColumn?.allowEditing ?? false,\n isPrimaryKey: stackedStackedColumn?.isPrimaryKey,\n editType:\n stackedStackedColumn?.editType ??\n (stackedStackedColumn?.type === 'number'\n ? 'numericedit'\n : stackedStackedColumn?.type === 'boolean'\n ? 'booleanedit'\n : stackedStackedColumn?.type === 'dateTime'\n ? 'datetimeedit'\n : 'stringedit'),\n editTemplate: stackedStackedColumn?.editTemplate ?? null,\n headerTemplate: stackedStackedColumn?.headerTemplate,\n format: stackedStackedColumn?.formatColumn,\n type: stackedStackedColumn?.type || 'string',\n displayAsCheckBox: stackedStackedColumn?.type === 'boolean',\n template: stackedStackedColumn?.template,\n customAttributes: stackedStackedColumn?.customAttributes\n ? stackedStackedColumn?.customAttributes\n : {\n class: stackedStackedColumn?.hasTooltip\n ? 'hasTooltip'\n : 'withoutTooltip',\n id: i + '-' + j\n },\n visible: stackedStackedColumn?.hide !== true,\n freeze: j < (frozenColumns ?? -1) ? 'Left' : undefined,\n // valueAccessor: (field, data) =>\n // stackedColumn.format ? stackedColumn.format(data[field]) : data[field],\n edit: stackedStackedColumn?.edit,\n textAlign: stackedStackedColumn?.textAlign\n ? stackedStackedColumn?.textAlign\n : 'Left'\n }))\n }\n : {\n autoFit: true,\n key: stackedColumn?.fieldName,\n field: stackedColumn?.fieldName,\n maxWidth: stackedColumn?.maxWidth,\n minWidth: stackedColumn?.minWidth,\n // commandsTemplate: stackedColumn.template,\n headerText:\n (stackedColumn?.staticText ||\n (stackedColumn?.headerText\n ? appIntl()?.formatMessage({ id: stackedColumn?.headerText })\n : '')) +\n (stackedColumn?.metric\n ? stackedColumn?.staticText || stackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric) +\n ')'\n : authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric\n : ''),\n allowEditing: stackedColumn?.allowEditing ?? false,\n isPrimaryKey: stackedColumn?.isPrimaryKey,\n editType:\n stackedColumn?.editType ??\n (stackedColumn?.type === 'number'\n ? 'numericedit'\n : stackedColumn?.type === 'boolean'\n ? 'booleanedit'\n : stackedColumn?.type === 'dateTime'\n ? 'datetimeedit'\n : 'stringedit'),\n editTemplate: stackedColumn?.editTemplate ?? null,\n headerTemplate: stackedColumn?.headerTemplate,\n format: stackedColumn?.formatColumn,\n type: stackedColumn?.type || 'string',\n displayAsCheckBox: stackedColumn?.type === 'boolean',\n template: stackedColumn?.template,\n customAttributes: column?.customAttributes\n ? {\n class: 'side-borders-columns-subColumns',\n id: i + '-' + j\n }\n : {\n class: column?.hasTooltip ? 'hasTooltip' : 'withoutTooltip',\n id: i + '-' + j\n },\n visible: stackedColumn?.hide !== true,\n freeze: j < (frozenColumns ?? -1) ? 'Left' : undefined,\n // valueAccessor: (field, data) =>\n // stackedColumn?.format ? stackedColumn.format(data[field]) : data[field],\n edit: stackedColumn?.edit,\n textAlign: stackedColumn?.textAlign ? stackedColumn?.textAlign : 'Left'\n }\n )}\n >\n ) : (\n \n column?.format ? column?.format(data[field]) : data[field]\n }\n edit={column?.edit}\n textAlign={column?.textAlign ? column?.textAlign : 'Left'}\n >\n )\n )}\n {tableColumns\n ?.filter((column) => column?.tooltipColumn)\n ?.map((column) => (\n \n ))}\n \n {frozenColumns === 0 && (\n \n \n {tableColumns &&\n tableColumns?.filter((column) => column?.aggregateType)?.length > 0 ? (\n \n {tableColumns\n ?.filter((column) => column?.aggregateType)\n ?.map((column) => (\n (\n \n {appIntl()?.formatMessage({\n id: column?.aggregateText || 'common.table' + column?.aggregateType\n })}\n :{' '}\n {column?.aggregateType === 'Average'\n ? props[column?.aggregateType]?.toFixed(2)\n : props[column?.aggregateType]}\n \n )}\n />\n ))}\n \n ) : (\n \n (\n \n {appIntl()?.formatMessage({ id: 'common.tableCount' })}: {props?.Count}\n \n )}\n />\n \n )}\n \n \n )}\n \n \n )}\n \n ) : (\n \n \n \n \n \n );\n};\n\nTable.defaultProps = {\n enablePersistence: true,\n omitPersistenceKeys: [\n 'selectedRowIndex',\n 'searchSettings',\n 'filterSettings',\n 'scrollPosition',\n 'pageSettings'\n ],\n enableVirtualization: false,\n isFetching: false,\n allowSorting: true,\n allowPaging: true,\n pageSize: 15,\n allowRowDragAndDrop: false,\n allowResizing: true,\n allowFiltering: true,\n allowReordering: true,\n sortedColumn: {\n sortedColumnIndex: 0,\n direction: 'Ascending'\n },\n allowMultipleSelection: false,\n frozenColumns: 0,\n height: 450,\n allowDeleting: false,\n allowGrouping: false\n};\n\nexport default Table;\n","import { combineReducers } from 'redux';\n\nimport moment from 'moment';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport * as authSelectors from 'redux/reducers/auth';\n\nimport * as types from '../types';\nimport * as customersTypes from '../../Customers/types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.OFFICES_FETCH_COMPLETED:\n case types.OFFICES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((officeId) => {\n newState[officeId] = {\n isSelected: false,\n ...state[officeId],\n ...entities[officeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.OFFICE_ADD_COMPLETED: {\n const { oldId, office } = action.payload;\n const newState = omit(state, oldId);\n newState[office.officeId] = {\n ...state[oldId],\n ...office,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.OFFICE_EDIT_COMPLETED: {\n const { office } = action.payload;\n return {\n ...state,\n [office.officeId]: {\n ...omit(state[office.officeId], ['oldOffice']),\n ...omit(office, ['oldOffice']),\n isConfirmed: true\n }\n };\n }\n\n case customersTypes.CUSTOMER_ADD_COMPLETED:\n case customersTypes.CUSTOMER_EDIT_COMPLETED: {\n const { office } = action.payload;\n const newState = { ...state };\n newState[office.officeId] = {\n isSelected: false,\n ...(newState[office.officeId] ?? {}),\n ...office,\n isConfirmed: true\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.OFFICE_ADD_STARTED: {\n const office = action.payload;\n const newState = { ...state };\n newState[office.officeId] = {\n isSelected: false,\n ...office,\n isConfirmed: false\n };\n return newState;\n }\n case types.OFFICE_EDIT_STARTED: {\n const office = action.payload;\n return {\n ...state,\n [office.officeId]: {\n ...state[office.officeId],\n oldOffice: state[office.officeId],\n ...office,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.OFFICE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.OFFICE_EDIT_FAILED: {\n const { oldOffice } = action.payload;\n return {\n ...state,\n [oldOffice.officeId]: {\n ...omit(state[oldOffice.officeId], ['oldOffice']),\n ...oldOffice,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.OFFICE_REMOVE_COMPLETED: {\n const { officeId } = action.payload;\n return omit(state, officeId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.OFFICE_SELECTED: {\n const officeId = action.payload;\n const newState = {\n ...state,\n [officeId]: {\n ...state[officeId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.OFFICE_DESELECTED: {\n const officeId = action.payload;\n return {\n ...state,\n [officeId]: {\n ...state[officeId],\n isSelected: false\n }\n };\n }\n\n case types.OFFICES_ALL_SELECTED: {\n const officeIds = action.payload;\n const newState = { ...state };\n if (officeIds.length == 0) {\n forEach(state, (office: any, officeId) => {\n newState[officeId] = {\n ...office,\n isSelected: true\n };\n });\n } else {\n officeIds.forEach((officeId) => {\n newState[officeId] = {\n ...state[officeId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.OFFICES_ALL_DESELECTED: {\n const officeIds = action.payload;\n const newState = { ...state };\n if (officeIds.length == 0) {\n forEach(state, (office: any, officeId) => {\n newState[officeId] = {\n ...office,\n isSelected: false\n };\n });\n } else {\n officeIds.forEach((officeId) => {\n newState[officeId] = {\n ...state[officeId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.OFFICES_FETCH_COMPLETED:\n case types.OFFICES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.OFFICE_ADD_COMPLETED: {\n const { oldId, office } = action.payload;\n return state.map((officeId) => (officeId === oldId ? office.officeId : officeId));\n }\n\n case customersTypes.CUSTOMER_ADD_COMPLETED:\n case customersTypes.CUSTOMER_EDIT_COMPLETED: {\n const { office } = action.payload;\n return uniq([...state, office.officeId]);\n }\n\n case types.OFFICE_REMOVE_COMPLETED: {\n const { officeId } = action.payload;\n return state.filter((officeIdState) => officeIdState !== officeId);\n }\n\n //CASE ADD STARTED\n case types.OFFICE_ADD_STARTED: {\n const office = action.payload;\n return [...state, office.officeId];\n }\n\n //CASE ADD FAILED\n case types.OFFICE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((officeIdState) => officeIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.OFFICES_FETCH_STARTED: {\n return true;\n }\n case types.OFFICES_FETCH_COMPLETED:\n case types.OFFICES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.OFFICES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.OFFICES_PARTIAL_FETCH_COMPLETED:\n case types.OFFICES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.OFFICE_ADD_STARTED: {\n return true;\n }\n case types.OFFICE_ADD_COMPLETED:\n case types.OFFICE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.OFFICE_EDIT_STARTED: {\n return true;\n }\n case types.OFFICE_EDIT_COMPLETED:\n case types.OFFICE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.OFFICE_REMOVE_STARTED: {\n return true;\n }\n case types.OFFICE_REMOVE_COMPLETED:\n case types.OFFICE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.OFFICES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICES_FETCH_STARTED:\n case types.OFFICES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.OFFICES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICES_PARTIAL_FETCH_STARTED:\n case types.OFFICES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.OFFICE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICE_ADD_STARTED:\n case types.OFFICE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.OFFICE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICE_EDIT_STARTED:\n case types.OFFICE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.OFFICE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICE_REMOVE_STARTED:\n case types.OFFICE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst offices = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default offices;\n\n//Own state\nexport const getOwnState = (state) => state.offices;\n\n//Information\nexport const getOffice = (state, officeId) => {\n const office = getOwnState(state).byId[officeId];\n if (office) {\n const startTime = office.startTime ? office.startTime.split(':') : undefined;\n const endTime = office.endTime ? office.endTime.split(':') : undefined;\n const parsers = authSelectors.getParsers(state);\n const authSystems = authSelectors.getAuthSystems(state);\n return {\n ...office,\n startTime: startTime\n ? moment(new Date().setHours(startTime[0], startTime[1], startTime[2])).format(\n 'YYYY-MM-DD HH:mm'\n )\n : undefined,\n endTime: endTime\n ? moment(new Date().setHours(endTime[0], endTime[1], endTime[2])).format('YYYY-MM-DD HH:mm')\n : undefined,\n averageCapacityFormat: office.averageCapacity\n ? `${parsers.convertCubicMetersToAuthUserVolumeSystem(office.averageCapacity).toFixed(2)} ${\n authSystems.volume\n }`\n : undefined,\n minCapacityFormat: office.minCapacity\n ? `${parsers.convertCubicMetersToAuthUserVolumeSystem(office.minCapacity).toFixed(2)} ${\n authSystems.volume\n }`\n : undefined,\n maxCapacityFormat: office.maxCapacity\n ? `${parsers.convertCubicMetersToAuthUserVolumeSystem(office.maxCapacity).toFixed(2)} ${\n authSystems.volume\n }`\n : undefined\n };\n } else return undefined;\n};\nexport const getOfficesList = (state) =>\n getOwnState(state)\n .order.map((id) => getOffice(state, id))\n .filter((office) => office.officeStatus > 0);\n\nexport const getOfficesListByMembership = (state, membership) => {\n //Se filtra por membership\n return getOfficesList(state).filter(\n (office) =>\n membership &&\n (!membership.organizationId || membership.organizationId === office.organizationId) &&\n (!membership.divisionId || membership.divisionId === office.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === office.subdivisionId)\n );\n};\n\nexport const getNotAssignedOfficesListByCustomer = (state, locationId, customerId) =>\n getOfficesList(state).filter(\n (office) =>\n office.customerId === customerId &&\n (!office.locationId || (locationId && office.locationId === locationId))\n );\n\nexport const getMainOffice = (state, customerId) =>\n getOfficesList(state).filter(\n (office) => customerId === office.customerId && office.isMainOffice > 0\n )[0];\n\nexport const getSelectedOffices = (state) => {\n const selectedOffices = getOfficesList(state).filter((office) => office.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedOffices.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedOffices.length > 0) return selectedOffices;\n};\n\nexport const getSelectedOffice = (state) => {\n const selectedOffices = getOfficesList(state).filter((office) => office.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOffices.length === 1) return selectedOffices[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOffices = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOffices = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOffice = (state) => getOwnState(state).isAdding;\nexport const isEditingOffice = (state) => getOwnState(state).isEditing;\nexport const isRemovingOffice = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListOfficesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOfficesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingOfficeErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOfficeErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingOfficeErrors = (state) => getOwnState(state).errorRemoving;\n","import * as types from '../types';\n\nexport const startFetchingProtocols = (filters = {}) => ({\n type: types.PROTOCOLS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingProtocols = (entities, order, operatorId, organizationId) => ({\n type: types.PROTOCOLS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failFetchingProtocols = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.PROTOCOLS_FETCH_FAILED,\n patload: {\n error\n }\n});\n\nexport const startPartialFetchingProtocols = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.PROTOCOLS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\n\nexport const completePartialFetchingProtocols = (entities, order, operatorId, organizationId) => ({\n type: types.PROTOCOLS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failPartialFetchingProtocols = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.PROTOCOLS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingProtocol = (protocol) => ({\n type: types.PROTOCOLS_ADD_STARTED,\n payload: protocol\n});\nexport const completeAddingProtocol = (oldId, protocol) => ({\n type: types.PROTOCOLS_ADD_COMPLETED,\n payload: { oldId, protocol }\n});\nexport const failAddingProtocol = (oldId, error) => ({\n type: types.PROTOCOLS_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingProtocol = (protocol) => ({\n type: types.PROTOCOLS_EDIT_STARTED,\n payload: protocol\n});\nexport const completeEditingProtocol = (protocol) => ({\n type: types.PROTOCOLS_EDIT_COMPLETED,\n payload: protocol\n});\nexport const failEditingProtocol = (oldProtocol, error) => ({\n type: types.PROTOCOLS_EDIT_FAILED,\n payload: {\n oldProtocol,\n error\n }\n});\n\nexport const startRemovingProtocol = (protocolId) => ({\n type: types.PROTOCOLS_REMOVE_STARTED,\n payload: {\n protocolId\n }\n});\nexport const completeRemovingProtocol = (protocolId) => ({\n type: types.PROTOCOLS_REMOVE_COMPLETED,\n payload: {\n protocolId\n }\n});\nexport const failRemovingProtocol = (protocolId, error) => ({\n type: types.PROTOCOLS_REMOVE_FAILED,\n payload: {\n protocolId,\n error\n }\n});\n\nexport const selectProtocol = (protocolId) => ({\n type: types.PROTOCOLS_SELECTED,\n payload: protocolId\n});\n\nexport const selectAllProtocols = (\n ProtocolIds = [] //List of ProtocolIds\n) => ({\n type: types.PROTOCOLS_ALL_SELECTED,\n payload: ProtocolIds\n});\n\nexport const deselectProtocol = (protocolId) => ({\n type: types.PROTOCOLS_DESELECTED,\n payload: protocolId\n});\n\nexport const deselectAllProtocols = (\n protocolIds = [] //List of ProtocolIds\n) => ({\n type: types.PROTOCOLS_ALL_DESELECTED,\n payload: protocolIds\n});\n","import {\n NoticeByDateRequest,\n NoticeByHourmeterRequest\n} from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter';\n\nexport const startFetchingNotices = (filters = {}) => ({\n type: types.NOTICES_BY_HOURMETER_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_HOURMETER_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingNotices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.NOTICES_BY_HOURMETER_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingNotices = (entityTypeId) => ({\n type: types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingNotices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingNotice = (notice: NoticeByHourmeterRequest) => ({\n type: types.NOTICE_BY_HOURMETER_ADD_STARTED,\n payload: notice\n});\n\nexport const completeAddingNotice = (id: string, oldId: string, notice) => ({\n type: types.NOTICE_BY_HOURMETER_ADD_COMPLETED,\n payload: { id, oldId, notice }\n});\n\nexport const failAddingNotice = (oldId, error) => ({\n type: types.NOTICE_BY_HOURMETER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingNotice = (notice: NoticeByHourmeterRequest) => ({\n type: types.NOTICE_BY_HOURMETER_EDIT_STARTED,\n payload: notice\n});\n\nexport const completeEditingNotice = (notice) => ({\n type: types.NOTICE_BY_HOURMETER_EDIT_COMPLETED,\n payload: notice\n});\n\nexport const failEditingNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_HOURMETER_EDIT_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\n//===================== RENEW ========================================\nexport const startRenewNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_HOURMETER_RENEW_STARTED,\n payload: notice\n});\n\nexport const completeRenewNotice = (notice) => ({\n type: types.NOTICE_BY_HOURMETER_RENEW_COMPLETED,\n payload: notice\n});\n\nexport const failRenewNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_HOURMETER_RENEW_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\nexport const startRemovingNotice = (request: { noticeId: number; unitId: number }) => ({\n type: types.NOTICE_BY_HOURMETER_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingNotice = (id) => ({\n type: types.NOTICE_BY_HOURMETER_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingNotice = (id, error) => ({\n type: types.NOTICE_BY_HOURMETER_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","const permissions = {\n trackingUnitsList: 'UP001',\n trackingUnitsCreate: 'UP002',\n trackingUnitsEdit: 'UP003',\n trackingUnitsDelete: 'UP004',\n viewUnitMap: 'UP025',\n lastCommunicationDate: 'UP026',\n downtime: 'UP027',\n readDowntimeReasons: 'UP028',\n addDowntimeReasons: 'UP029',\n editDowntimeReasons: 'UP030',\n removeDowntimeReasons: 'UP031',\n changeToInactive: 'UP032',\n changeToPlaced: 'UP033',\n changeToActivated: 'UP034',\n changeToRemoved: 'UP035',\n changeToCanceled: 'UP036',\n cellularProvider: 'UP022',\n viewUnitSpecialFunctions: 'UF001',\n addUnitSpecialFunctions: 'UF002',\n editUnitSpecialFunctions: 'UF003',\n deleteUnitSpecialFunctions: 'UF004'\n};\n\nexport default permissions;\n","/* -------------------------------------------------------------------------- */\n/* Componente TimeRangeInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un daterange genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport { Label, FormGroup, Row, Col } from 'reactstrap';\nimport moment from 'moment';\nimport Flatpickr from 'react-flatpickr';\nimport { Spanish } from 'flatpickr/dist/l10n/es';\nimport { english } from 'flatpickr/dist/l10n/default';\nimport { FormattedMessage } from 'react-intl';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { XSquare } from 'react-feather';\nimport { createDateWithHoursAndMinutes } from 'utility/Utils';\nimport { useEffect } from 'react';\n\ninterface Props {\n field: any;\n fieldstate: any;\n errorMessage?: any;\n required?: boolean;\n defaultHour?: number;\n defaultMinute?: number;\n maxTime?: any;\n minTime?: any;\n showTime?: boolean;\n enableTime?: boolean;\n label?: any;\n disabled?: boolean;\n allowNulls?: boolean;\n inFormat?: boolean;\n}\n\nconst TimeInput = (props: Props) => {\n const {\n field,\n fieldstate,\n required = false,\n maxTime,\n errorMessage,\n minTime,\n label,\n disabled,\n allowNulls = false,\n inFormat = false,\n defaultHour = 0,\n defaultMinute = 0\n } = props;\n\n const defaultDate: Date = createDateWithHoursAndMinutes(defaultHour, defaultMinute);\n\n useEffect(() => {\n if (defaultDate && !field?.value) field.onChange(defaultDate);\n }, []);\n\n return (\n \n \n \n \n ) => {\n const dateValue: Date = value[0];\n if (value.length > 0) {\n if (inFormat) field.onChange(moment(dateValue).format('HH:mm'));\n else field.onChange(dateValue);\n }\n }}\n onClose={(value) => {\n if (value.length === 0) field.onBlur(null);\n }}\n />\n \n {allowNulls && (\n \n {\n field.onChange(null);\n }}\n />\n \n )}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nTimeInput.defaultProps = {\n required: false,\n enableTime: false,\n showTime: true,\n disabled: false\n};\n\nexport default TimeInput;\n","import { LatLngBoundsExpression } from 'leaflet';\nimport { useEffect } from 'react';\n\nexport const useScript = (url) => {\n useEffect(() => {\n let script;\n try {\n if ($(`script[src=\"${url}\"]`).length === 0) {\n script = document.createElement('script');\n script.src = url;\n script.async = true;\n document.body.appendChild(script);\n }\n } catch {}\n }, [url]);\n};\n\nexport const getRectBoundsFromLatLng = (latitude, longitude, radius): LatLngBoundsExpression => {\n var dy = radius; //radius in meters\n dy = (dy * 90) / 10002069; //10,000Km es la distancia media del ecuador al polo sobre el meridiano (90grad)\n var dx = Math.cos((latitude * Math.PI) / 180) * 40075000; //40,075Km es circunferencia en el ecuador\n dx = (radius * 360) / dx; //--la dx cambia segun la latitud\n var maxlat = latitude + dy;\n var maxlon = longitude + dx;\n var minlat = latitude - dy;\n var minlon = longitude - dx;\n\n var bounds = {\n minLatitude: minlat,\n minLongitude: minlon,\n maxLatitude: maxlat,\n maxLongitude: maxlon\n };\n return [\n [bounds.minLatitude, bounds.minLongitude],\n [bounds.maxLatitude, bounds.maxLongitude]\n ];\n};\nexport const getIsInnerGeoreferenceFromLatLng = (latitude, longitude, radius, unitPositions) => {\n var dy = radius; //radius in meters\n dy = (dy * 90) / 10002069; //10,000Km es la distancia media del ecuador al polo sobre el meridiano (90grad)\n var dx = Math.cos((latitude * Math.PI) / 180) * 40075000; //40,075Km es circunferencia en el ecuador\n dx = (radius * 360) / dx; //--la dx cambia segun la latitud\n var maxlat = latitude + dy;\n var maxlon = longitude + dx;\n var minlat = latitude - dy;\n var minlon = longitude - dx;\n\n var bounds = {\n minLatitude: minlat,\n minLongitude: minlon,\n maxLatitude: maxlat,\n maxLongitude: maxlon\n };\n const matches = unitPositions.filter((unitPosition) => {\n if (\n unitPosition?.latitude >= bounds.minLatitude &&\n unitPosition?.latitude <= bounds.maxLatitude\n ) {\n return unitPosition;\n }\n });\n\n return { matches: matches, matchStatus: matches.length > 0 };\n\n /* return [\n [bounds.minLatitude, bounds.minLongitude],\n [bounds.maxLatitude, bounds.maxLongitude]\n ]; */\n};\n\nexport const getRectangleFromLatLng = (latitude, longitude, radius) => {\n var dy = radius; //radius in meters\n dy = (dy * 90) / 10002069; //10,000Km es la distancia media del ecuador al polo sobre el meridiano (90grad)\n var dx = Math.cos((latitude * Math.PI) / 180) * 40075000; //40,075Km es circunferencia en el ecuador\n dx = (radius * 360) / dx; //--la dx cambia segun la latitud\n var maxlat = latitude + dy;\n var maxlon = longitude + dx;\n var minlat = latitude - dy;\n var minlon = longitude - dx;\n\n var bounds = {\n minLatitude: minlat,\n minLongitude: minlon,\n maxLatitude: maxlat,\n maxLongitude: maxlon\n };\n return [\n [bounds.minLatitude, bounds.minLongitude],\n [bounds.minLatitude, bounds.maxLongitude],\n [bounds.maxLatitude, bounds.maxLongitude],\n [bounds.maxLatitude, bounds.minLongitude],\n [bounds.minLatitude, bounds.minLongitude]\n ];\n};\n\nexport const getTriangleFromLatLng = (latitude, longitude, radius) => {\n var dy = radius; //radius in meters\n dy = (dy * 90) / 10002069; //10,000Km es la distancia media del ecuador al polo sobre el meridiano (90grad)\n var dx = Math.cos((latitude * Math.PI) / 180) * 40075000; //40,075Km es circunferencia en el ecuador\n dx = (radius * 360) / dx; //--la dx cambia segun la latitud\n var maxlat = latitude + dy;\n var maxlon = longitude + dx;\n var minlat = latitude - dy;\n var minlon = longitude - dx;\n\n var bounds = {\n minLatitude: minlat,\n minLongitude: minlon,\n maxLatitude: maxlat,\n maxLongitude: maxlon\n };\n return [\n [bounds.minLatitude, bounds.minLongitude],\n [bounds.minLatitude, bounds.maxLongitude],\n [bounds.maxLatitude, bounds.maxLongitude],\n [bounds.minLatitude, bounds.minLongitude]\n ];\n};\n","const permissions = {\n addLocation: 'LO001',\n editLocation: 'LO002',\n removeLocation: 'LO003',\n searchLocation: 'LO004',\n listLocations: 'LO005',\n importLocation: 'LO006',\n listPrivateOrganizationLocations: 'LO007',\n listLocationsOnMap: 'LO008',\n searchLocations: 'LO009',\n searchExternalLocations: 'LO010'\n};\n\nexport default permissions;\n","const paths = {\n //Paths Catalogs\n sparepartsCatalog: '/vehicleMaintenance/catalog/sparepart',\n workshopCatalog: '/vehicleMaintenance/catalog/workshop',\n categoriesCatalog: '/vehicleMaintenance/catalog/categories',\n providersCatalog: '/vehicleMaintenance/catalog/providers',\n\n //reportes\n generalReport: '/vehicleMaintenance/report/general',\n byCategoryReport: '/vehicleMaintenance/report/byCategory',\n byUnitReport: '/vehicleMaintenance/report/byUnit',\n byWorkShopReport: '/vehicleMaintenance/report/byWorkshop',\n\n //tickets\n importTicket: '/vehicleMaintenance/ticket/import',\n\n //preventive notices\n preventiveNotices: '/vehicleMaintenance/preventiveNotices',\n\n //maintenanceLines\n maintenanceLineList: '/vehicleMaintenance/maintenanceLines/list',\n maintenanceLineEdit: '/vehicleMaintenance/maintenanceLines/edit',\n\n // workshop orders\n addWorkshopOrders: '/vehicleMaintenance/workshopOrders/add'\n};\n\nexport default paths;\n","import { combineReducers } from 'redux';\n\nimport { union, omit } from 'lodash';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansExecutions';\nimport * as typesLocations from '../../types/workplansExecutionLocations';\nimport * as locationSelectors from '../../../Locations/reducers';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n const { workplanExecutionLocationsEntities, workplanExecutionLocationsOrder } =\n action.payload;\n const newState = { ...state };\n workplanExecutionLocationsOrder.forEach((workplanExecutionLocationId) => {\n newState[workplanExecutionLocationId] = {\n isSelected: false,\n workplanExecutionLocationId,\n ...state[workplanExecutionLocationId],\n ...workplanExecutionLocationsEntities[workplanExecutionLocationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED: {\n const { oldId, workplanExecutionLocation } = action.payload;\n const newState = omit(state, oldId);\n newState[workplanExecutionLocation.workplanExecutionLocationId] = {\n ...state[oldId],\n ...workplanExecutionLocation,\n isConfirmed: true\n };\n return newState;\n }\n\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED: {\n const workplanExecutionLocation = action.payload;\n return {\n ...state,\n [workplanExecutionLocation.workplanExecutionLocationId]: {\n ...omit(state[workplanExecutionLocation.workplanExecutionLocationId], [\n 'oldWorkplanExecutionLocation'\n ]),\n ...omit(workplanExecutionLocation, ['oldWorkplanExecutionLocation']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED: {\n const workplanExecutionLocation = action.payload;\n const newState = { ...state };\n newState[workplanExecutionLocation.workplanExecutionLocationId] = {\n isSelected: false,\n ...workplanExecutionLocation,\n isConfirmed: false\n };\n return newState;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED: {\n const workplanExecutionLocation = action.payload;\n return {\n ...state,\n [workplanExecutionLocation.workplanExecutionLocationId]: {\n ...state[workplanExecutionLocation.workplanExecutionLocationId],\n oldWorkplanExecutionLocation:\n state[workplanExecutionLocation.workplanExecutionLocationId],\n ...workplanExecutionLocation,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED: {\n const { oldWorkplanExecutionLocation } = action.payload;\n return {\n ...state,\n [oldWorkplanExecutionLocation.workplanId]: {\n ...omit(state[oldWorkplanExecutionLocation.workplanId], ['oldWorkplanExecutionLocation']),\n ...oldWorkplanExecutionLocation,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED: {\n const { workplanExecutionLocationId } = action.payload;\n return omit(state, workplanExecutionLocationId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n const { workplanExecutionLocationsOrder } = action.payload;\n return union(workplanExecutionLocationsOrder);\n }\n\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED: {\n const { oldId, workplanExecutionLocation } = action.payload;\n return state.map((workplanExecutionLocationId) =>\n workplanExecutionLocationId === oldId\n ? workplanExecutionLocation.workplanExecutionLocationId\n : workplanExecutionLocationId\n );\n }\n\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED: {\n const { workplanExecutionLocationId } = action.payload;\n return state.filter(\n (workplanExecutionLocationIdState) =>\n workplanExecutionLocationIdState !== workplanExecutionLocationId\n );\n }\n\n //CASE ADD STARTED\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED: {\n const workplanExecutionLocation = action.payload;\n return [...state, workplanExecutionLocation.workplanExecutionLocationId];\n }\n\n //CASE ADD FAILED\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter(\n (workplanExecutionLocationIdState) => workplanExecutionLocationIdState !== oldId\n );\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED: {\n return true;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED: {\n return true;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED: {\n return true;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst locations = combineReducers({\n byId,\n order,\n isAdding,\n isEditing,\n isRemoving,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default locations;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansExecutions.locations;\n\n//Information\nexport const getLocation = (state, workplanExecutionLocationId) => {\n const intl = appIntl();\n const style = getComputedStyle(document.body);\n const workplanExecutionLocation = getOwnState(state).byId[workplanExecutionLocationId];\n if (workplanExecutionLocation) {\n const location = locationSelectors.getLocation(state, workplanExecutionLocation.locationId);\n return {\n ...location,\n ...workplanExecutionLocation,\n boundsCustomColor: style.getPropertyValue(\n ['A', 'T', 'V'].includes(workplanExecutionLocation.locationVisitStatus)\n ? '--success'\n : '--danger'\n ),\n locationClassDefaultColor: style.getPropertyValue(\n ['A', 'T', 'V'].includes(workplanExecutionLocation.locationVisitStatus)\n ? '--success'\n : '--danger'\n ),\n jobStatusLabel: workplanExecutionLocation.jobStatus\n ? intl.formatMessage({\n id: 'jobs.jobStatus.' + workplanExecutionLocation.jobStatus\n })\n : '',\n sequenceComplianceLabel: ['0', '1', '2', 0, 1, 2].includes(\n workplanExecutionLocation.validSequence\n )\n ? intl.formatMessage({\n id:\n 'workplans.sequenceCompliance.' +\n // 0: Pending, 1: fulfilled, 2: unfulfilled\n workplanExecutionLocation.validSequence\n })\n : '',\n locationVisitStatusLabel: workplanExecutionLocation.locationVisitStatus\n ? intl.formatMessage({\n id: 'workplans.locationVisitStatus.' + workplanExecutionLocation.locationVisitStatus\n })\n : ''\n };\n } else return undefined;\n};\nexport const getLocationsList = (state) =>\n getOwnState(state).order.map((id) => getLocation(state, id));\nexport const getLocationsListByVisit = (state, visitId) =>\n getLocationsList(state).filter(\n (workplanExecutionLocation) => workplanExecutionLocation.visitId === visitId\n );\n\n//Status of sagas\nexport const isAddingLocation = (state) => getOwnState(state).isAdding;\nexport const isEditingLocation = (state) => getOwnState(state).isEditing;\nexport const isRemovingLocation = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getAddingLocationErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingLocationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingLocationErrors = (state) => getOwnState(state).errorRemoving;\n","import * as types from '../../types/workplansAssignments';\n\nexport const startFetchingAssignments = (filters = {}) => ({\n type: types.WORKPLAN_ASSIGNMENT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingAssignmentsWithSchedule = (entities, order) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const completeFetchingAssignmentsWithDateTime = (entities, order) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingAssignments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKPLAN_ASSIGNMENT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startRemovingAssignment = (assignmentId, assignmentType) => ({\n type: types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED,\n payload: {\n assignmentId,\n assignmentType\n }\n});\nexport const completeRemovingAssignmentWithSchedule = (assignmentId) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED,\n payload: {\n assignmentId\n }\n});\nexport const completeRemovingAssignmentWithDateTime = (assignmentId) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED,\n payload: {\n assignmentId\n }\n});\nexport const failRemovingAssignment = (assignmentId, error) => ({\n type: types.WORKPLAN_ASSIGNMENT_REMOVE_FAILED,\n payload: {\n assignmentId,\n error\n }\n});\n\nexport const startEditingAssignmentWithSchedule = (assignment) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED,\n payload: assignment\n});\nexport const completeEditingAssignmentWithSchedule = (assignment) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED,\n payload: assignment\n});\nexport const failEditingAssignmentWithSchedule = (oldAssignment, error) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED,\n payload: {\n oldAssignment,\n error\n }\n});\n\nexport const startEditingAssignmentWithDateTime = (assignment) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED,\n payload: assignment\n});\nexport const completeEditingAssignmentWithDateTime = (assignment) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED,\n payload: assignment\n});\nexport const failEditingAssignmentWithDateTime = (oldAssignment, error) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED,\n payload: {\n oldAssignment,\n error\n }\n});\n","//** React Imports\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { ENTITY_OPERATORS, ENTITY_ORGANIZATIONS } from 'views/screens/Entities/constants';\nimport * as AuthSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../screens/Entities/reducers';\n\nexport interface Membership {\n operatorId: number | undefined;\n organizationId: number | undefined;\n divisionId: number | undefined;\n subdivisionId: number | undefined;\n groupId: number | undefined;\n}\n\nexport interface DefaultOptions {\n // Tamaño de los inputs\n colSize?: any;\n // Permitir deseleccionar dropdowns\n showAllOperator?: boolean;\n showAllOrganization?: boolean;\n showAllAgent?: boolean;\n showAllDivision?: boolean;\n showAllSubdivision?: boolean;\n showAllGroup?: boolean;\n // Usar la membreship del usuario como valor por defecto\n useUserOperator?: boolean;\n useUserOrganization?: boolean;\n useUserAgent?: boolean;\n useUserDivision?: boolean;\n useUserSubdivision?: boolean;\n useUserGroup?: boolean;\n // Setear la membreship del usuario como valor por defecto aunque el usuario sea de nivel menor (Se usa para crear/editar una entidad)\n setUserOperator?: boolean;\n setUserOrganization?: boolean;\n setUserAgent?: boolean;\n setUserDivision?: boolean;\n setUserSubdivision?: boolean;\n setUserGroup?: boolean;\n // Filtrar por organizacion\n filterOrganization?: number;\n // Mostrar/ocultar un dropdown\n useOperator?: boolean;\n useOrganization?: boolean;\n useAgent?: boolean;\n useDivision?: boolean;\n useSubdivision?: boolean;\n useGroup?: boolean;\n // Habilitar/Deshabilitar un dropdown\n isOperatorDisabled?: boolean;\n isOrganizationDisabled?: boolean;\n isAgentDisabled?: boolean;\n isDivisionDisabled?: boolean;\n isSubdivisionDisabled?: boolean;\n isGroupDisabled?: boolean;\n // Placeholder de un dropdown\n subdivisionPlaceholder?: any;\n}\n\nconst defaultOptions = {\n colSize: '3',\n showAllOperator: false,\n showAllOrganization: false,\n showAllAgent: false,\n showAllDivision: false,\n showAllSubdivision: false,\n showAllGroup: false,\n useUserOperator: false,\n useUserOrganization: false,\n useUserAgent: false,\n useUserDivision: false,\n useUserSubdivision: false,\n useUserGroup: false,\n setUserOperator: true,\n setUserOrganization: true,\n setUserAgent: false,\n setUserDivision: true,\n setUserSubdivision: true,\n setUserGroup: true,\n useOperator: true,\n useOrganization: true,\n useAgent: false,\n useDivision: true,\n useSubdivision: true,\n useGroup: false,\n isOperatorDisabled: false,\n isOrganizationDisabled: false,\n isAgentDisabled: false,\n isDivisionDisabled: false,\n isSubdivisionDisabled: false,\n isGroupDisabled: false\n};\n\nexport const useMembership = (options, model) => {\n //Initialize State\n const [isInitialize, setIsInitialize] = useState(false);\n //State Model\n const [membershipDefaultValue, setMembershipDefaultValue] = useState(model);\n //State Options\n const [membershipOptions, setMembershipOptions] = useState({\n ...defaultOptions,\n ...options\n });\n\n //Al cambiar las opciones\n useDeepCompareEffect(() => {\n updateOptions(options);\n }, [options]);\n\n //Al cargar por primera vez el componente\n useEffect(() => {\n membershipAccessLevel();\n updateOptions({\n ...membershipOptions,\n ...membershipAccessLevel()\n });\n }, []);\n\n //Selectors\n const { user, areAllEntitiesUpdated } = useSelector((state) => ({\n user: AuthSelectors.getAuthUserForMembership(state),\n areAllEntitiesUpdated: entitySelectors.areAllEntitiesUpdated(state, [\n ENTITY_OPERATORS,\n ENTITY_ORGANIZATIONS\n ])\n }));\n\n //Al terminar de hacer update de las entities\n useEffect(() => {\n if (areAllEntitiesUpdated) {\n updateUserMembership({\n ...membershipOptions,\n ...membershipAccessLevel()\n });\n setIsInitialize(true);\n }\n }, [areAllEntitiesUpdated]);\n\n //Se restringe dependiendo del nivel de acceso del usuario\n const membershipAccessLevel = () => {\n var useOperator = membershipOptions.useOperator;\n var useOrganization = membershipOptions.useOrganization;\n var useDivision = membershipOptions.useDivision;\n var useSubdivision = membershipOptions.useSubdivision;\n if (user.accessLevelId == 11 || user.accessLevelId == 13) {\n useOperator = false;\n }\n if (user.accessLevelId == 7) {\n useOperator = false;\n useOrganization = false;\n }\n if (user.accessLevelId == 4) {\n useOperator = false;\n useOrganization = false;\n useDivision = false;\n }\n if (user.accessLevelId == 2 || user.accessLevelId == 20) {\n useOperator = false;\n useOrganization = false;\n useDivision = false;\n useSubdivision = false;\n }\n return {\n useOperator,\n useOrganization,\n useDivision,\n useSubdivision\n };\n };\n\n //Actualiza el modelo de defaultValues segun el membership del usuario\n const updateUserMembership = (membershipOptions) => {\n //Se cargan las membership del usuario\n var userMembership: any = membershipDefaultValue;\n //Se setea el operador del usuario en sesión\n if (\n ((membershipOptions.useOperator && membershipOptions.useUserOperator) ||\n (membershipOptions.setUserOperator && ![9, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.operatorId)\n ) {\n userMembership.operatorId = parseInt(user.operatorId);\n userMembership.operatorName = user.operatorName;\n }\n //Se setea la organización del usuario en sesión\n if (\n ((membershipOptions.useOrganization && membershipOptions.useUserOrganization) ||\n (membershipOptions.setUserOrganization &&\n ![9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.organizationId)\n ) {\n userMembership.organizationId = parseInt(user.organizationId);\n userMembership.organizationName = user.organizationName;\n }\n //Se setea la división del usuario en sesión\n if (\n ((membershipOptions.useDivision && membershipOptions.useUserDivision) ||\n (membershipOptions.setUserDivision &&\n ![7, 9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.divisionId)\n ) {\n userMembership.divisionId = parseInt(user.divisionId);\n userMembership.divisionName = user.divisionName;\n }\n //Se setea la subdivisión del usuario en sesión\n if (\n ((membershipOptions.useSubdivision && membershipOptions.useUserSubdivision) ||\n (membershipOptions.setUserSubdivision &&\n ![4, 7, 9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.subdivisionId)\n ) {\n userMembership.subdivisionId = parseInt(user.subdivisionId);\n userMembership.subdivisionName = user.subdivisionName;\n }\n updateModel(userMembership);\n };\n\n //Se actualiza todo el modelo\n const updateModel = (model) => {\n setMembershipDefaultValue({\n ...membershipDefaultValue,\n ...model\n });\n };\n\n //Se actualiza todas las opciones\n const updateOptions = (options) => {\n setMembershipOptions({\n ...membershipOptions,\n ...options\n });\n };\n\n return [membershipDefaultValue, membershipOptions, isInitialize];\n};\n","import { Fragment, useEffect, FC } from 'react';\nimport { Controller, useController } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { Col, Spinner } from 'reactstrap';\nimport * as groupsSelectors from 'views/screens/Groups/reducers';\nimport * as agentsSelectors from 'views/screens/Agents/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport FetchEntities, { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport DropdownInput from '../DropdownInput';\nimport { DefaultOptions, useMembership } from './hooks/useMembership';\nimport { group } from 'console';\n\n/* -------------------------------------------------------------------------- */\n/* COMPONENTE MEMBERSHIP */\n/* -------------------------------------------------------------------------- */\n// Lista de opciones que se le puede enviar al componente\n// dentro del prop \"options\":\n// ----------------------------------------\n// | Option | Default Value |\n// ----------------------------------------\n// | colSize | \"3\" |\n// | showAllOperator | false |\n// | showAllOrganization | false |\n// | showAllAgent | false |\n// | showAllDivision | false |\n// | showAllSubdivision | false |\n// | useUserOperator | false |\n// | useUserOrganization | false |\n// | useUserAgent | false |\n// | useUserDivision | false |\n// | useUserSubdivision | false |\n// | useOperator | true |\n// | useOrganization | true |\n// | useAgent | false |\n// | useDivision | true |\n// | useSubdivision | true |\n// | isOperatorDisabled | false |\n// | isOrganizationDisabled | false |\n// | isDivisionDisabled | false |\n// | isSubdivisionDisabled | false |\n// | isAgentDisabled | false |\n// | operatorPlaceholder | null |\n// | organizationPlaceholder| null |\n// | agentPlaceholder | null |\n// | divisionPlaceholder | null |\n// | subdivisionPlaceholder | null |\n// ----------------------------------------\n\ninterface PropsDropDowns {\n name: any;\n control: any;\n shouldUnregister?: boolean;\n isInModal?: boolean;\n additionalonchangefunction?: (\n newMembership: DefaultFilters,\n options: DefaultOptions | MembershipOptions\n ) => void;\n membershipDefaultValue: any;\n membershipOptions: MembershipOptions;\n}\n\ninterface Props extends Omit {\n options: DefaultOptions;\n defaultValue?: any;\n fetchEntities?: any;\n showDropdowns?: any;\n}\n\ninterface MembershipOptions {\n useOperator: boolean;\n useOrganization: boolean;\n useDivision: boolean;\n useSubdivision: boolean;\n useAgent: boolean;\n useGroup: boolean;\n showAllOperator: boolean;\n showAllOrganization: boolean;\n showAllDivision: boolean;\n showAllSubdivision: boolean;\n showAllAgent: boolean;\n showAllGroup: boolean;\n filterOperator: boolean;\n filterOrganization: boolean;\n filterDivision: boolean;\n filterSubdivision: boolean;\n filterGroup: boolean;\n isOperatorDisabled: boolean;\n isOrganizationDisabled: boolean;\n isDivisionDisabled: boolean;\n isSubdivisionDisabled: boolean;\n isAgentDisabled: boolean;\n isGroupDisabled: boolean;\n //\n colSize: number;\n subdivisionPlaceholder: string;\n}\n\nconst Dropdowns: FC = (props) => {\n const {\n name,\n control,\n shouldUnregister = false,\n isInModal = false,\n additionalonchangefunction = (newMembership, options) => null,\n membershipDefaultValue,\n membershipOptions\n } = props;\n\n const { field: operatorField, fieldState: operatorFieldState } = useController({\n name: name + '.operatorId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.operatorId,\n rules: { required: membershipOptions.useOperator && !membershipOptions.showAllOperator }\n });\n\n const { field: organizationField, fieldState: organizationFieldState } = useController({\n name: name + '.organizationId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.organizationId,\n rules: { required: membershipOptions.useOrganization && !membershipOptions.showAllOrganization }\n });\n\n const { field: divisionField, fieldState: divisionFieldState } = useController({\n name: name + '.divisionId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.divisionId,\n rules: { required: membershipOptions.useDivision && !membershipOptions.showAllDivision }\n });\n\n const { field: subdivisionField, fieldState: subdivisionFieldState } = useController({\n name: name + '.subdivisionId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.subdivisionId,\n rules: { required: membershipOptions.useSubdivision && !membershipOptions.showAllSubdivision }\n });\n\n const { field: groupField, fieldState: groupFieldState } = useController({\n name: name + '.groupId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.groupId,\n rules: { required: membershipOptions.useGroup && !membershipOptions.showAllGroup }\n });\n\n const intl = useIntl();\n //Selectors de las listas para los dropdowns\n const {\n operatorsList,\n organizationsList,\n divisionsList,\n subdivisionsList,\n agentsList,\n groupList\n } = useSelector((state) => ({\n operatorsList: operatorSelectors.getOperatorsList(state).map((operator) => ({\n value: operator.operatorId,\n label: operator.operatorName\n })),\n organizationsList: membershipOptions.useOperator\n ? organizationSelectors\n .getOrganizationsListBySelectedOperator(state, {\n operatorId: operatorField.value\n })\n .map((organization) => ({\n value: organization.organizationId,\n label: organization.organizationName\n }))\n : organizationSelectors.getOrganizationsList(state).map((organization) => ({\n value: organization.organizationId,\n label: organization.organizationName\n })),\n divisionsList:\n membershipOptions.useOrganization || membershipOptions.filterOrganization\n ? divisionSelectors\n .getDivisionsListBySelectedOrganization(state, {\n operatorId: operatorField.value,\n organizationId: organizationField.value ?? membershipOptions.filterOrganization\n })\n .map((division) => ({\n value: division.divisionId,\n label: division.divisionName\n }))\n : divisionSelectors.getDivisionsList(state).map((division) => ({\n value: division.divisionId,\n label: division.divisionName\n })),\n subdivisionsList: membershipOptions.useDivision\n ? subdivisionSelectors\n .getSubdivisionsListBySelectedDivision(state, {\n operatorId: operatorField.value,\n organizationId: organizationField.value,\n divisionId: divisionField.value\n })\n .map((subdivision) => ({\n value: subdivision.subdivisionId,\n label: subdivision.subdivisionName\n }))\n : subdivisionSelectors.getSubdivisionsList(state).map((subdivision) => ({\n value: subdivision.subdivisionId,\n label: subdivision.subdivisionName\n })),\n agentsList: membershipOptions.useAgent\n ? agentsSelectors\n .getAgentsListByMembership(state, {\n operatorId: operatorField.value\n })\n .map((agent) => ({\n value: agent.agentId,\n label: agent.agentName\n }))\n : agentsSelectors.getAgentsList(state).map((agent) => ({\n value: agent.agentId,\n label: agent.agentName\n })),\n groupList: groupsSelectors.getGroupsList(state).map((group) => ({\n value: group.groupId,\n label: group.groupName\n }))\n }));\n\n //Actualizar el modelo que tiene el padre del componente\n useEffect(() => {\n finalOnChange({\n operatorId: operatorField.value,\n organizationId: organizationField.value,\n divisionId: divisionField.value,\n subdivisionId: subdivisionField.value,\n groupId: groupField.value\n });\n }, [\n operatorField.value,\n organizationField.value,\n divisionField.value,\n subdivisionField.value,\n groupField.value\n ]);\n\n const finalOnChange = (values) => {\n additionalonchangefunction(values, membershipOptions);\n };\n return (\n \n \n {membershipOptions.useOperator && (\n \n {\n if (operatorField.value !== value) {\n operatorField.onChange(value);\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={operatorFieldState}\n forceinitialvalue={membershipDefaultValue.operatorId}\n required={!membershipOptions.showAllOperator}\n isClearable={membershipOptions.showAllOperator}\n onClear={() => {\n operatorField.onChange(null);\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'operatorInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isOperatorDisabled}\n options={operatorsList}\n label={intl.formatMessage({\n id: 'operators.operator'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllOperator ? 'common.all' : 'operators.selectOperator'\n })}\n />\n \n )}\n {membershipOptions.useOrganization && (\n \n {\n if (organizationField.value !== value) {\n organizationField.onChange(value);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={organizationFieldState}\n forceinitialvalue={membershipDefaultValue.organizationId}\n required={!membershipOptions.showAllOrganization}\n isClearable={membershipOptions.showAllOrganization}\n onClear={() => {\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'organizationInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isOrganizationDisabled}\n options={organizationsList}\n label={intl.formatMessage({\n id: 'organizations.organization'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllOrganization\n ? 'common.all'\n : 'organizations.selectOrganization'\n })}\n />\n \n )}\n {membershipOptions.useDivision && (\n \n {\n if (divisionField.value !== value) {\n divisionField.onChange(value);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={divisionFieldState}\n forceinitialvalue={membershipDefaultValue.divisionId}\n required={!membershipOptions.showAllDivision}\n isClearable={membershipOptions.showAllDivision}\n onClear={() => {\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'divisionInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isDivisionDisabled}\n options={divisionsList}\n label={intl.formatMessage({\n id: 'divisions.division'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllDivision ? 'common.all' : 'divisions.selectDivision'\n })}\n />\n \n )}\n {membershipOptions.useSubdivision && (\n \n \n \n )}\n {membershipOptions.useAgent && (\n \n (\n \n )}\n />\n \n )}\n {membershipOptions.useGroup && (\n \n {\n if (groupField.value !== value) {\n groupField.onChange(value);\n }\n }\n }}\n fieldstate={groupFieldState}\n forceinitialvalue={membershipDefaultValue.groupId}\n required={!membershipOptions.showAllGroup}\n isClearable={membershipOptions.showAllGroup}\n onClear={() => {\n groupField.onChange(null);\n }}\n id={'groupInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isGroupDisabled}\n options={groupList}\n label={intl.formatMessage({\n id: 'groups.group'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllGroup ? 'common.all' : 'users.selectGroup'\n })}\n />\n \n )}\n \n );\n};\n\nconst Membership: FC = (props) => {\n const {\n options = {},\n defaultValue = {\n groupId: null,\n agentId: null,\n operatorId: null,\n organizationId: null,\n divisionId: null,\n subdivisionId: null,\n operatorName: '',\n organizationName: '',\n divisionName: '',\n subdivisionName: '',\n agentName: '',\n groupName: ''\n },\n fetchEntities = true,\n showDropdowns = true,\n additionalonchangefunction\n } = props;\n //Se inicializa model y options\n const [membershipDefaultValue, membershipOptions, isInitialize] = useMembership(\n options,\n defaultValue\n );\n\n return (\n \n {fetchEntities && }\n {showDropdowns &&\n (isInitialize ? (\n \n ) : (\n \n \n \n ))}\n \n );\n};\n\nexport default Membership;\n","/* -------------------------------------------------------------------------- */\n/* Componente Switch */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Switch genérico que se utiliza en muchas pantallas de la aplicación.\nimport { useEffect, useState, Fragment } from 'react';\nimport { FormGroup, CustomInput, Tooltip } from 'reactstrap';\n\ninterface Props {\n field: any;\n label: any;\n tooltipMessage?: string;\n forceinitialvalue?: boolean;\n additionalonchangefunction?: Function;\n className?: string;\n disabled?: boolean;\n onAfterChange?: Function;\n}\n\nconst SwitchInput = (props: Props) => {\n const {\n field,\n label,\n forceinitialvalue,\n disabled = false,\n additionalonchangefunction,\n tooltipMessage = null,\n className = 'mt-2 mb-2',\n onAfterChange = (v, t) => {}\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n useEffect(() => {\n if (field.value != undefined) onChangeFinal(field.value);\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue != undefined) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n <>\n \n {label}}\n checked={field.value ?? ''}\n onChange={() => {\n onChangeFinal(!field.value);\n onAfterChange(!field.value, field.name);\n }}\n disabled={disabled}\n />\n \n {tooltipMessage && (\n \n {tooltipMessage}\n \n )}\n \n );\n};\n\nSwitchInput.defaultProps = {\n label: '',\n initialValue: false\n};\n\nexport default SwitchInput;\n","import deburr from 'lodash/deburr';\nimport { useState } from 'react';\nimport { renderToString } from 'react-dom/server';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Select, { components } from 'react-select';\nimport CreatableSelect from 'react-select/creatable';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport {\n Badge,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n Label,\n UncontrolledTooltip\n} from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport DefaultButton from 'views/components/DefaultButton';\nimport {\n isNullOrUndefined,\n isValidEmail,\n normalizeInputText,\n normalizeString\n} from '../../../utility/Utils';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport Icon from '../../../utility/icomoon';\n\nconst { Option, SingleValue, MultiValue, NoOptionsMessage, MultiValueLabel } = components;\n\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data &&\n candidate.data.label &&\n deburr(candidate.data.label.toLowerCase()).includes(deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n deburr(candidate.data.label_intl.toLowerCase()).includes(deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {`${props.data.label}`}\n
\n
\n );\n};\n\nconst IconMultipleValue = (props) => {\n return (\n \n {props.data.identifierIcon && (\n
{props.data.identifierIcon}
\n )}\n
\n {props.data.icon != null &&
{props.data.icon}
}\n {`${props.data.label}`}\n
\n {props.data.edit && (\n
\n props.data.edit(props.data.id)} />\n
\n )}\n
\n );\n};\n\nconst MultiSelectInput = (props) => {\n const {\n field,\n fieldstate,\n options = [],\n isInModal = false,\n isMultiple = true,\n canCreate = false,\n isLoading = false,\n errorMessage,\n underText = '',\n ...inputProps\n } = props;\n const intl = useIntl();\n\n const [inputValue, setInputValue] = useState('');\n const [innerOptions, setOptions] = useState([]);\n useDeepCompareEffect(() => {\n if (field.value && options.length > 0) {\n if (typeof field.value === 'string') {\n const newValue = options\n .filter((option) =>\n field.value\n .split(',')\n .includes(isNaN(option.value) ? option.value : option.value.toString())\n )\n .map((option) => option.value)\n .join(',');\n if (field.value.length !== newValue.length) field.onChange(newValue);\n } else {\n field.onChange('');\n }\n }\n setOptions(options);\n }, [\n options.map((op) => ({\n ...op,\n icon: typeof op.icon === 'object' ? renderToString(op.icon) : op.icon\n })),\n intl.locale\n ]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const styles = {\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused ? `1px solid ${primary} !important` : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n multiValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n // backgroundColor: 'rgba(0, 51, 204, 0.12)',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n };\n const SelectComponent = canCreate ? CreatableSelect : Select;\n\n const cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n });\n\n const MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n };\n\n const isOptionSelected = (option, value: string): boolean => {\n if (typeof value !== 'string') {\n return false;\n }\n const values = value.split(',');\n const optionValue = isNaN(option.value) ? option.value : option.value.toString();\n return values.includes(optionValue);\n };\n\n return (\n \n \n \n {props.prependcomponent}\n option.label.replace(/\\s+/g, ' ')}\n // formatOptionLabel={(option) => getValidOptions(option.label)}\n components={\n inputProps.components\n ? inputProps.components\n : {\n Option: IconOption,\n SingleValue: IconSingleValue,\n MultiValue: IconMultipleValue,\n MenuList\n }\n }\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={\n fieldstate.error != null ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'\n }\n onChange={(selectedOptions, action) => {\n if (action.action === 'create-option') {\n if (inputProps.onCreate) inputProps.onCreate(selectedOptions);\n }\n\n if (action.action === 'input-change') {\n const inputValue = selectedOptions.inputValue.replace(/\\s+/g, ' ');\n return { ...selectedOptions, inputValue };\n }\n\n field.onChange(\n selectedOptions\n ? isMultiple\n ? selectedOptions.map((selected) => selected.value.toString()).join(',')\n : selectedOptions.value.toString()\n : null\n );\n if (inputProps.onSelect) inputProps.onSelect(selectedOptions);\n setInputValue('');\n }}\n onBlur={field.onBlur}\n isValidNewOption={canCreate ? (fieldValue) => isValidEmail(fieldValue) : null}\n options={innerOptions}\n filterOption={filterOption}\n isClearable={inputProps.isClearable === true}\n value={options.filter((option) =>\n typeof field.value === 'string'\n ? field.value\n .split(',')\n .map((value) => value)\n .includes(isNaN(option.value) ? option.value : option.value.toString())\n : ''\n )}\n noOptionsMessage={(currentValue) =>\n canCreate\n ? appIntl().formatMessage(\n { id: 'common.invalidEmail' },\n { value: currentValue.fieldValue }\n )\n : appIntl().formatMessage({ id: 'common.noOptions' })\n }\n maxMenuHeight={250}\n formatCreateLabel={\n canCreate\n ? (value) => appIntl().formatMessage({ id: 'common.create' }, { value })\n : undefined\n }\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n inputValue={inputValue}\n onInputChange={(inputValue, action, c) => {\n const inputValueNormalized = normalizeInputText(inputValue);\n if (inputProps.onInputChange) inputProps.onInputChange(inputValueNormalized, action);\n\n if (typeof inputValueNormalized === 'string') {\n setInputValue(inputValueNormalized);\n }\n }}\n />\n {props.appendcomponent}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n {underText !== '' && (\n
\n {inputProps.underIcon &&\n (inputProps.underIcon.iconAction ? (\n \n ) : (\n \n ))}\n
\n {underText}\n
\n
\n )}\n
\n );\n};\n\nexport default MultiSelectInput;\n","import ReactHtmlParser from 'react-html-parser';\nimport {\n Badge,\n Card,\n CardBody,\n CardText,\n Col,\n ListGroup,\n ListGroupItem,\n Row,\n Media\n} from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport MapsBasic from 'views/components/Map';\nimport Avatar from '../../../../@core/components/avatar';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport FilesGallery from '../../../components/FilesGallery';\n\nconst style = getComputedStyle(document.body);\nconst successColor = style.getPropertyValue('--success');\nconst warningColor = style.getPropertyValue('--warning');\nconst dangerColor = style.getPropertyValue('--danger');\nconst infoColor = style.getPropertyValue('--info');\n\nexport const getJobDescriptionTemplate = (job) => {\n return job?.jobDescription ? ReactHtmlParser(job.jobDescription) : 'N/A';\n};\nexport const getJobPriorityColor = (priority) => {\n return priority == 1 ? dangerColor : priority == 2 ? warningColor : successColor;\n};\nexport const getImportedJobStatusColorClass = (success) => {\n return success ? 'light-success' : 'light-danger';\n};\nexport const getJobPriorityTemplate = (job) => {\n const color = job.jobPriority == 1 ? 'danger' : job.jobPriority == 2 ? 'warning' : 'success';\n const priorityColor = `light-${color}`;\n return (\n \n \n \n {appIntl().formatMessage({ id: `jobs.priority.${job.jobPriority}` })}\n \n \n );\n};\n\nexport const getJobTypeIcon = (jobBacklogTypeId) => {\n switch (parseInt(jobBacklogTypeId)) {\n case 1:\n return 'Pickup';\n case 2:\n return 'Delivery';\n case 3:\n return 'PickupAndDelivery';\n case 4:\n return 'LongProcess';\n case 5:\n return 'Maintainance';\n case 6:\n return 'Repair';\n case 7:\n return 'Assistance';\n case 8:\n return 'Visit';\n case 9:\n return 'Emergency';\n case 10:\n return 'Other';\n case 11:\n return 'Meeting';\n default:\n return 'JobsBacklog';\n }\n};\n\nexport const jobTypesList = [\n {\n jobTypeId: 1,\n icon: ,\n label: 'jobs.jobType.1'\n },\n {\n jobTypeId: 2,\n icon: ,\n label: 'jobs.jobType.2'\n },\n {\n jobTypeId: 3,\n icon: ,\n label: 'jobs.jobType.3'\n },\n {\n jobTypeId: 4,\n icon: ,\n label: 'jobs.jobType.4'\n },\n {\n jobTypeId: 5,\n icon: ,\n label: 'jobs.jobType.5'\n },\n {\n jobTypeId: 6,\n icon: ,\n label: 'jobs.jobType.6'\n },\n {\n jobTypeId: 7,\n icon: ,\n label: 'jobs.jobType.7'\n },\n {\n jobTypeId: 8,\n icon: ,\n label: 'jobs.jobType.8'\n },\n {\n jobTypeId: 9,\n icon: ,\n label: 'jobs.jobType.9'\n },\n {\n jobTypeId: 10,\n icon: ,\n label: 'jobs.jobType.10'\n },\n {\n jobTypeId: 11,\n icon: ,\n label: 'jobs.jobType.11'\n }\n];\n\nexport const getJobTypeTemplate = (job, center = true) => {\n return (\n
\n \n \n \n {appIntl().formatMessage({\n id: `jobs.jobType.${job.jobTypeId}`\n })}\n \n \n
\n );\n};\n\nexport const getJobRequesterTemplate = (job) => {\n return job.requesterUserName ? (\n \n \n \n ) : (\n 'N/A'\n );\n};\n\nexport const getJobRequesterInfoTemplate = (job) => {\n return job.requesterUserName ? (\n \n \n {`${job.requesterCompleteName}`}\n \n ) : (\n 'N/A'\n );\n};\n\nexport const getUsersText = (job) => {\n let users;\n if (!job.users) {\n users = [];\n } else {\n users = job.users.split(';');\n }\n\n return users.map((user) => user.split(',')[1]).join(' + ');\n};\n\nexport const getJobUsersRowTemplate = (job, center = true) => {\n let users;\n if (!job.users) {\n users = [];\n } else {\n users = job.users.split(';');\n }\n\n return (\n \n {users.map((userSplit, idx) => {\n const user = userSplit.split(',');\n const userName = user[0];\n const completeName = user[1];\n const userImageUrl = user[2];\n return (\n \n \n \n );\n })}\n \n );\n};\n\nexport const getJobNotificationEmailsTemplate = (job) => {\n let notificationEmails;\n if (!job.notificationEmails) {\n notificationEmails = [];\n } else {\n notificationEmails = job.notificationEmails.split(',');\n }\n return notificationEmails.length > 0 ? (\n \n {notificationEmails.map((nemail, idx) => {\n return (\n \n \n {`${nemail}`}\n \n );\n })}\n \n ) : (\n 'N/A'\n );\n};\n\nexport const getJobUsersInfoTemplate = (job) => {\n let users;\n if (!job.users) {\n users = [];\n } else {\n users = job.users.split(';');\n }\n return (\n \n {users.map((userSplit, idx) => {\n const user = userSplit.split(',');\n const userName = user[0];\n const completeName = user[1];\n const userImageUrl = user[2];\n return (\n \n \n {`${completeName} <${user[0]}>`}\n \n );\n })}\n \n );\n};\n\nexport const getJobFormsInfoTemplate = (job) => {\n let forms;\n if (!job.forms) {\n forms = [];\n } else {\n forms = job.forms.split(';');\n }\n\n return forms.length > 0 ? (\n \n {forms.map((formSplit, idx) => {\n const form = formSplit.split(',');\n const organicationFormId = form[0];\n const organizationFormName = form[1];\n const formResponsesCount = form[2];\n return (\n \n \n {`${organizationFormName}`}\n\n \n {formResponsesCount}\n \n \n );\n })}\n \n ) : (\n 'N/A'\n );\n};\n\nexport const getJobFilesInfoTemplate = (job) => {\n let files;\n if (!job.files) {\n files = [];\n } else {\n files = job.files.split(';');\n }\n\n return files.length > 0 ? (\n \n \n {\n const file = fileSplit.split(',');\n return {\n fileName: file[1],\n fileUrl: file[2],\n fileExtension: file[4]\n };\n })}\n />\n \n \n ) : (\n 'N/A'\n );\n};\n\nexport const getTotalEstimatedTimeTemplate = (job) => {\n return {job.estimatedDurationText};\n};\n\nexport const getTotalExecutionTimeTemplate = (job: {\n jobId?: string | number;\n estimatedDuration?: number;\n totalExecutionTime?: number;\n totalExecutionTimeText?: string;\n}) => {\n const totalExecutionIsOnTime =\n job?.totalExecutionTime &&\n job?.estimatedDuration &&\n job?.totalExecutionTime <= job?.estimatedDuration &&\n job.estimatedDuration != 0;\n // const totalExecutionIsLate =\n // job.totalExecutionTime > job.estimatedDuration && job.estimatedDuration != 0;\n const totalExecutionIsNotEstimated = job.estimatedDuration == 0;\n const totalExecutionTimeColor = totalExecutionIsNotEstimated\n ? 'light-warning'\n : totalExecutionIsOnTime\n ? 'light-success'\n : 'light-info';\n return (\n \n \n \n {job.totalExecutionTimeText ?? ''}\n \n \n );\n};\n\nexport const getJobStatusColor = (jobStatus) => {\n const colorsJobStatus = {\n canceled: '#490002',\n other: '#626262',\n finalized: '#2ed573',\n active: '#7D39F6',\n rescheduled: '#1AA6FB',\n scheduledFuture: '#FD9800',\n paused: '#ff7a00',\n incomplete: '#ff4459',\n backlog: '#00EAD5'\n };\n switch (parseInt(jobStatus)) {\n case 1:\n return colorsJobStatus.active;\n case 2:\n return colorsJobStatus.paused;\n case 3:\n return colorsJobStatus.finalized;\n case 4:\n return colorsJobStatus.incomplete;\n case 5:\n return colorsJobStatus.rescheduled;\n case 6:\n return colorsJobStatus.scheduledFuture;\n case 7:\n return colorsJobStatus.canceled;\n case 8:\n return colorsJobStatus.backlog;\n\n default:\n return colorsJobStatus.other;\n }\n};\n\nexport const getJobStatusColorClass = (jobStatus) => {\n switch (parseInt(jobStatus)) {\n case 1:\n return 'light-active';\n case 2:\n return 'light-paused';\n case 3:\n return 'light-finalized';\n case 4:\n return 'light-incomplete';\n case 5:\n return 'light-rescheduled';\n case 6:\n return 'light-scheduled';\n case 7:\n return 'light-canceled';\n case 8:\n return 'light-backlog';\n\n default:\n return 'light-other';\n }\n};\n\nexport const getJobStatusIcon = (jobStatus) => {\n switch (parseInt(jobStatus)) {\n case 1:\n return 'PlayCircle';\n case 2:\n return 'PauseCircle';\n case 3:\n return 'CheckCircle';\n case 4:\n return 'AlertTriangle';\n case 5:\n return 'RotateCw';\n case 6:\n return 'Calendar';\n case 7:\n return 'XCircle';\n case 8:\n return 'Server';\n default:\n return 'Jobs';\n }\n};\n\nexport const getJobStatusTemplate = (job) => {\n return (\n \n \n \n {job.jobStatusText}\n \n \n );\n};\n\nexport const cardJobTemplate = (job: any) => {\n return (\n
\n
\n
\n
{job.jobTitle}
\n
{getJobTypeTemplate(job, false)}
\n
\n
\n
\n
{getJobDescriptionTemplate(job)}
\n
\n
\n \n \n {getJobUsersRowTemplate(job, false)}\n \n \n
\n

{job.startDateFormat}

\n

{job.dueDateFormat}

\n
\n \n
\n
\n
\n );\n};\n\nexport const getJobStatusTitleColumnsTemplate = (job) => {\n return (\n \n \n {job.jobStatusText}\n \n \n {`${job.count} ${job.intlTasks}`}\n \n \n );\n};\n\nexport const getJobStatusText = (job) => {\n const today = new Date();\n if (\n job.startDate != null &&\n new Date(job.startDate).getDate() == today.getDate() &&\n job.jobStatus == 6\n ) {\n return appIntl().formatMessage({ id: `jobs.status.${job.jobStatus}.today` });\n }\n return appIntl().formatMessage({ id: `jobs.status.${job.jobStatus}` });\n};\n\nexport const getJobLocationTemplate = (job) => {\n return (\n job.locationId != null && (\n \n \n \n )\n );\n};\nexport const getJobLocationInfoTemplate = (job) => {\n return job.locationId != null ? (\n
\n \n
\n ) : null;\n};\n\nexport const followingJobsSuccessChangeStatus = ({\n messageId,\n propertyChange,\n status,\n successJobs,\n intl\n}) => {\n return (\n \n \n \n {intl.formatMessage(\n { id: messageId },\n { propertyChange: intl.formatMessage({ id: propertyChange }), status: status }\n )}\n \n \n {successJobs?.map((job, i) => {\n return (\n \n \n {job.jobId}\n \n {job.jobTitle}\n \n );\n })}\n \n \n \n );\n};\n\nexport const minsToDurationTimeText = (mins: number) => {\n // time definitions in order to make it explicit\n const minutesInADay = 3600;\n const secondsInAHour = 3600;\n const secondInAMinute = 60;\n const hoursInADay = 24;\n\n let seconds = Math.round(mins * secondInAMinute); // calculates all the seconds\n const days = Math.floor(seconds / (minutesInADay * hoursInADay)); //calculates the days\n\n seconds -= days * secondsInAHour * hoursInADay; // subtract the days from the seconds\n\n const hours = Math.floor(seconds / secondsInAHour); // calculates all the hours\n\n seconds -= hours * secondsInAHour; // subtract hour seconds from second\n\n const minutes = Math.floor(seconds / secondInAMinute); // calculates minutes\n\n seconds -= minutes * secondInAMinute; // subtract all the minute seconds from the seconds\n\n // ['12 d', '5 h', '15 m', '10 s']\n const timeArray: string[] = [];\n days && timeArray.push(days + 'd');\n (days || hours) && timeArray.push(hours + 'h');\n (days || hours || minutes) && timeArray.push(minutes + 'm');\n timeArray.push(seconds + 's');\n\n // '12d 5h 15m 10s'\n return timeArray.join(' ');\n};\n\nexport const convertHtmlToText = (html) => {\n // Create a new div element\n var tempDivElement = document.createElement('div');\n\n // Set the HTML content with the given value\n tempDivElement.innerHTML = html;\n\n // Retrieve the text property of the element\n return tempDivElement.textContent || tempDivElement.innerText || '';\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport * as officeSelectors from 'views/screens/Offices/reducers';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CUSTOMERS_FETCH_COMPLETED:\n case types.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((customerId) => {\n newState[customerId] = {\n isSelected: false,\n ...state[customerId],\n ...entities[customerId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CUSTOMER_ADD_COMPLETED: {\n const { oldId, customer } = action.payload;\n const newState = omit(state, oldId);\n newState[customer.customerId] = {\n ...state[oldId],\n ...customer,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.CUSTOMER_EDIT_COMPLETED: {\n const { customer } = action.payload;\n return {\n ...state,\n [customer.customerId]: {\n ...omit(state[customer.customerId], ['oldCustomer']),\n ...omit(customer, ['oldCustomer']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.CUSTOMER_ADD_STARTED: {\n const customer = action.payload;\n const newState = { ...state };\n newState[customer.customerId] = {\n isSelected: false,\n ...customer,\n isConfirmed: false\n };\n return newState;\n }\n case types.CUSTOMER_EDIT_STARTED: {\n const customer = action.payload;\n return {\n ...state,\n [customer.customerId]: {\n ...state[customer.customerId],\n oldCustomer: state[customer.customerId],\n ...customer,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.CUSTOMER_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.CUSTOMER_EDIT_FAILED: {\n const { oldCustomer } = action.payload;\n return {\n ...state,\n [oldCustomer.customerId]: {\n ...omit(state[oldCustomer.customerId], ['oldCustomer']),\n ...oldCustomer,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.CUSTOMER_REMOVE_COMPLETED: {\n const { customerId } = action.payload;\n return omit(state, customerId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.CUSTOMER_SELECTED: {\n const customerId = action.payload;\n const newState = {\n ...state,\n [customerId]: {\n ...state[customerId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.CUSTOMER_DESELECTED: {\n const customerId = action.payload;\n return {\n ...state,\n [customerId]: {\n ...state[customerId],\n isSelected: false\n }\n };\n }\n\n case types.CUSTOMERS_ALL_SELECTED: {\n const customerIds = action.payload;\n const newState = { ...state };\n if (customerIds.length == 0) {\n forEach(state, (customer: any, customerId) => {\n newState[customerId] = {\n ...customer,\n isSelected: true\n };\n });\n } else {\n customerIds.forEach((customerId) => {\n newState[customerId] = {\n ...state[customerId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.CUSTOMERS_ALL_DESELECTED: {\n const customerIds = action.payload;\n const newState = { ...state };\n if (customerIds.length == 0) {\n forEach(state, (customer: any, customerId) => {\n newState[customerId] = {\n ...customer,\n isSelected: false\n };\n });\n } else {\n customerIds.forEach((customerId) => {\n newState[customerId] = {\n ...state[customerId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CUSTOMERS_FETCH_COMPLETED:\n case types.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.CUSTOMER_ADD_COMPLETED: {\n const { oldId, customer } = action.payload;\n return state.map((customerId) => (customerId === oldId ? customer.customerId : customerId));\n }\n\n case types.CUSTOMER_REMOVE_COMPLETED: {\n const { customerId } = action.payload;\n return state.filter((customerIdState) => customerIdState !== customerId);\n }\n\n //CASE ADD STARTED\n case types.CUSTOMER_ADD_STARTED: {\n const customer = action.payload;\n return [...state, customer.customerId];\n }\n\n //CASE ADD FAILED\n case types.CUSTOMER_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((customerIdState) => customerIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMERS_FETCH_STARTED: {\n return true;\n }\n case types.CUSTOMERS_FETCH_COMPLETED:\n case types.CUSTOMERS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMERS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.CUSTOMERS_PARTIAL_FETCH_COMPLETED:\n case types.CUSTOMERS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMER_ADD_STARTED: {\n return true;\n }\n case types.CUSTOMER_ADD_COMPLETED:\n case types.CUSTOMER_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMER_EDIT_STARTED: {\n return true;\n }\n case types.CUSTOMER_EDIT_COMPLETED:\n case types.CUSTOMER_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMER_REMOVE_STARTED: {\n return true;\n }\n case types.CUSTOMER_REMOVE_COMPLETED:\n case types.CUSTOMER_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMERS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMERS_FETCH_STARTED:\n case types.CUSTOMERS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMERS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMERS_PARTIAL_FETCH_STARTED:\n case types.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMER_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMER_ADD_STARTED:\n case types.CUSTOMER_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMER_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMER_EDIT_STARTED:\n case types.CUSTOMER_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMER_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMER_REMOVE_STARTED:\n case types.CUSTOMER_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst customers = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default customers;\n\n//Own state\nexport const getOwnState = (state) => state.customers;\n\n//Information\nexport const getCustomer = (state, customerId: number): types.Customer | undefined => {\n const customer = getOwnState(state).byId[customerId];\n if (customer) {\n const office = officeSelectors.getOffice(state, customer.officeId) ?? {};\n return {\n ...customer,\n ...omit(office, ['privateCode', 'isConfirmed', 'isSelected']),\n officePrivateCode: office?.privateCode\n };\n } else return undefined;\n};\nexport const getCustomersList = (state): types.Customer[] =>\n getOwnState(state)\n .order.map((id) => getCustomer(state, id))\n .filter((customer) => customer.customerStatus > 0);\n\nexport const getCustomersListByMembership = (state, membership) => {\n //Se filtra por membership\n return getCustomersList(state).filter(\n (customer) =>\n membership &&\n (!membership.organizationId || membership.organizationId === customer.organizationId) &&\n (!membership.divisionId || membership.divisionId === customer.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === customer.subdivisionId)\n );\n};\n\nexport const getNotAssignedCustomersList = (state, locationId) =>\n getCustomersList(state).filter(\n // @ts-ignore location is saved on \"office\" not \"customer\" #TODO: Implement type for office\n (customer) => !customer?.locationId || (locationId && customer?.locationId === locationId)\n );\n\nexport const getSelectedCustomers = (state) => {\n const selectedCustomers = getCustomersList(state).filter((customer) => customer.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedCustomers.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedCustomers.length > 0) return selectedCustomers;\n};\n\nexport const getSelectedCustomer = (state) => {\n const selectedCustomers = getCustomersList(state).filter((customer) => customer.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedCustomers.length === 1) return selectedCustomers[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListCustomers = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListCustomers = (state) => getOwnState(state).isFetchingList;\nexport const isAddingCustomer = (state) => getOwnState(state).isAdding;\nexport const isEditingCustomer = (state) => getOwnState(state).isEditing;\nexport const isRemovingCustomer = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListCustomersErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListCustomersErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingCustomerErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingCustomerErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingCustomerErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n addGeofence: 'GF002',\n editGeofence: 'GF004',\n removeGeofence: 'GF003',\n listGeofencesOnMap: 'GF001',\n listGeofences: 'GF005',\n listAsignedGeofences: 'GF006',\n asignGeofenceToUnit: 'GF007',\n unasignGeofenceToUnit: 'GF008'\n};\n\nexport default permissions;\n","import union from 'lodash/union';\nimport { combineReducers } from 'redux';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport Icon from '../../../../utility/icomoon';\nimport * as types from '../../../types/static-catalogs';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.LOCATION_CLASSES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((locationClassId) => {\n newState[locationClassId] = {\n isSelected: false,\n ...state[locationClassId],\n ...entities[locationClassId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.LOCATION_CLASSES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.LOCATION_CLASSES_FETCH_STARTED: {\n return true;\n }\n case types.LOCATION_CLASSES_FETCH_COMPLETED:\n case types.LOCATION_CLASSES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case types.LOCATION_CLASSES_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.LOCATION_CLASSES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_CLASSES_FETCH_STARTED:\n case types.LOCATION_CLASSES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst locationClasses = combineReducers({\n byId,\n order,\n isFetchingList,\n hasAlreadyFetched,\n errorFetchingList\n});\n\nexport default locationClasses;\n\n//Own state\nexport const getOwnState = (state) => state.staticCatalogs.locationClasses;\n\n//Information\nexport const getLocationClass = (state, locationClassId) =>\n getOwnState(state).byId[locationClassId];\n\nexport const getLocationClassIconName = (state, locationClassId) => {\n let lc = getLocationClass(state, locationClassId);\n return lc ? (lc.locationClassIconName ? lc.locationClassIconName : 'MapPin') : 'MapPin';\n};\nexport const getLocationClassDropdownOption = (state, locationClassId) => {\n let lc = getLocationClass(state, locationClassId);\n return lc != undefined\n ? {\n ...lc,\n id: lc.locationClassId,\n value: lc.locationClassId,\n icon: (\n \n ),\n label: appIntl().formatMessage({ id: `locations.locationClass.${lc.locationClassId}` })\n }\n : null;\n};\n\nexport const getLocationClassesList = (state) =>\n getOwnState(state).order.map((id) => getLocationClass(state, id));\n\n//Status of sagas\nexport const isFetchingListLocationClasses = (state) => getOwnState(state).isFetchingList;\nexport const haveLocationClassesBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\n\n//Errors\nexport const getFetchingListLocationClassesErrors = (state) => getOwnState(state).errorFetchingList;\n","export const ETAMONITORING_DESTINATIONS_FETCH_STARTED = 'ETAMONITORING_DESTINATION_FETCH_STARTED';\nexport const ETAMONITORING_DESTINATIONS_FETCH_COMPLETED =\n 'ETAMONITORING_DESTINATION_FETCH_COMPLETED';\nexport const ETAMONITORING_DESTINATIONS_FETCH_FAILED = 'ETAMONITORING_DESTINATION_FETCH_FAILED';\n\nexport interface EtaDestination {\n isSelected: boolean;\n etaModelId: number;\n modelName: string;\n}\n","import { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Button, Tooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n id: string;\n icon: string;\n permissions?: any[];\n handleClick?: any;\n className?: string;\n tooltipMessage?: any;\n visible?: boolean;\n color?: string;\n cursor?: string;\n size?: number;\n}\n\nconst DefaultSimpleButton = (props: Props) => {\n const store = useSelector((state) => state);\n const {\n handleClick,\n tooltipMessage,\n icon,\n id,\n permissions,\n color,\n cursor = 'pointer',\n size,\n className,\n visible = true\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n return !permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions) ? (\n
\n {visible ? (\n <>\n handleClick && handleClick()}\n />\n {tooltipMessage && (\n \n {tooltipMessage}\n \n )}\n \n ) : null}\n
\n ) : null;\n};\n\nDefaultSimpleButton.defaultProps = {\n id: 'DefaultSimpleButton',\n icon: 'Plus',\n isDisabled: false,\n className: ''\n};\n\nexport default DefaultSimpleButton;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { normalize } from 'normalizr';\nimport * as schemas from '../schemas';\nimport camelcaseKeys from 'camelcase-keys';\n\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport { persistReducer } from 'redux-persist';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_COMPLETED: {\n const { oldId, group } = action.payload;\n const newState = omit(state, oldId);\n newState[group.groupId] = {\n ...state[oldId],\n ...group\n };\n return newState;\n }\n\n case types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED:\n case types.GROUP_EDIT_COMPLETED: {\n const group = action.payload;\n return {\n ...state,\n [group.groupId]: {\n ...omit(state[group.groupId], ['oldGroup']),\n ...omit(group, ['oldGroup'])\n }\n };\n }\n\n case types.GROUPS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((groupId) => {\n const {\n entities: { users }\n } = normalize(\n entities[groupId].entities[0].map((entity) => camelcaseKeys(entity)),\n schemas.users\n ); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(\n entities[groupId].entities[1].map((entity) => camelcaseKeys(entity)),\n schemas.locations\n ); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(\n entities[groupId].entities[2].map((entity) => camelcaseKeys(entity)),\n schemas.workplans\n ); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(\n entities[groupId].entities[3].map((entity) => camelcaseKeys(entity)),\n schemas.units\n ); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(\n entities[groupId].entities[4].map((entity) => camelcaseKeys(entity)),\n schemas.geofences\n ); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(\n entities[groupId].entities[5].map((entity) => camelcaseKeys(entity)),\n schemas.drivers\n ); //normalize data to byId for drivers\n\n newState[groupId] = {\n ...state[groupId],\n isSelected: false,\n users: users ?? {},\n locations: locations ?? {},\n workplans: workplans ?? {},\n units: units ?? {},\n geofences: geofences ?? {},\n drivers: drivers ?? {},\n ...omit(entities[groupId], 'entities')\n };\n });\n return newState;\n }\n\n case types.GROUP_FETCH_COMPLETED: {\n const { entities, order, groupId } = action.payload;\n const newState = { ...state };\n const {\n entities: { users }\n } = normalize(\n entities[groupId].entities[0].map((entity) => camelcaseKeys(entity)),\n schemas.users\n ); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(\n entities[groupId].entities[1].map((entity) => camelcaseKeys(entity)),\n schemas.locations\n ); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(\n entities[groupId].entities[2].map((entity) => camelcaseKeys(entity)),\n schemas.workplans\n ); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(\n entities[groupId].entities[3].map((entity) => camelcaseKeys(entity)),\n schemas.units\n ); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(\n entities[groupId].entities[4].map((entity) => camelcaseKeys(entity)),\n schemas.geofences\n ); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(\n entities[groupId].entities[5].map((entity) => camelcaseKeys(entity)),\n schemas.drivers\n ); //normalize data to byId for drivers\n\n newState[groupId] = {\n ...state[groupId],\n isSelected: false,\n users: users ?? {},\n locations: locations ?? {},\n workplans: workplans ?? {},\n units: units ?? {},\n geofences: geofences ?? {},\n drivers: drivers ?? {},\n ...omit(entities[groupId], 'entities')\n };\n\n return newState;\n }\n\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((groupId) => {\n const {\n entities: { users }\n } = normalize(\n entities[groupId].entities[0].map((entity) => camelcaseKeys(entity)),\n schemas.users\n ); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(\n entities[groupId].entities[1].map((entity) => camelcaseKeys(entity)),\n schemas.locations\n ); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(\n entities[groupId].entities[2].map((entity) => camelcaseKeys(entity)),\n schemas.workplans\n ); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(\n entities[groupId].entities[3].map((entity) => camelcaseKeys(entity)),\n schemas.units\n ); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(\n entities[groupId].entities[4].map((entity) => camelcaseKeys(entity)),\n schemas.geofences\n ); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(\n entities[groupId].entities[5].map((entity) => camelcaseKeys(entity)),\n schemas.drivers\n ); //normalize data to byId for drivers\n\n newState[groupId] = {\n ...state[groupId],\n isSelected: false,\n users: users ?? {},\n locations: locations ?? {},\n workplans: workplans ?? {},\n units: units ?? {},\n geofences: geofences ?? {},\n drivers: drivers ?? {},\n ...omit(entities[groupId], 'entities')\n };\n });\n return newState;\n }\n\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED: {\n const { entities, groupId } = action.payload;\n const newState = { ...state };\n newState[groupId] = {\n users: entities.users,\n locations: entities.locations,\n workplans: entities.workplans,\n units: entities.units,\n geofences: entities.geofences,\n drivers: entities.drivers,\n ...state[groupId]\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.GROUP_ADD_STARTED: {\n const { group, users, userInSession } = action.payload;\n const newState = { ...state };\n const usersToAdd = {};\n users\n .filter((user) => (group.isInGroup === 0 ? user.userName !== userInSession : user))\n .map((user) => {\n usersToAdd[user.userName] = user;\n });\n newState[group.groupId] = {\n isSelected: true,\n users: usersToAdd,\n locations: {},\n workplans: {},\n units: {},\n geofences: {},\n drivers: {},\n profileId: 1,\n locationsCount: 0,\n workPlansCount: 0,\n userCount: users.length,\n unitCount: 0,\n geofenceCount: 0,\n driverCount: 0,\n ...group,\n isInGroup: group.isInGroup\n };\n return newState;\n }\n\n case types.GROUP_ADD_WITH_ENTITIES_STARTED: {\n const { group, userInSession, entityType, entities, params } = action.payload;\n const newState = { ...state };\n const usersToAdd = { [`${userInSession.userName}`]: userInSession };\n const entitiesToAdd = entities.map((entity) =>\n entityType === 'users'\n ? {\n userId: entity.userId,\n userName: entity.userName,\n completeName: entity.completeName,\n userImage: entity.userImage,\n profileId: params.profileId\n }\n : entityType === 'locations'\n ? {\n locationId: entity.locationId,\n locationName: entity.locationName,\n radius: entity.radius,\n latitude: entity.latitude,\n longitude: entity.longitude,\n organizationName: entity.organizationName\n }\n : entityType === 'workplans'\n ? {\n workPlanId: entity.workplanId,\n workPlanName: entity.workplanName,\n organizationName: entity.organizationName\n }\n : entityType === 'units'\n ? {\n unitId: entity.unitId,\n groupName: group.groupName,\n unitName: entity.unitName,\n themeId: entity.themeId,\n privateCode: entity.privateCode,\n organizationName: entity.organizationName\n }\n : entityType === 'geofences'\n ? {\n geofenceId: entity.geofenceId,\n geofenceName: entity.geofenceName,\n notifyAdmin: params.notifyAdmin,\n notifyOwner: params.notifyOwner,\n shape: entity.shape,\n notifyEmails: params.notifyEmails\n }\n : entityType === 'drivers'\n ? {\n driverId: entity.driverId,\n driverName: entity.driverName,\n driverPhoto: entity.driverPhoto,\n licenseNumber: entity.licenseNumber,\n licenseType: entity.licenseType,\n licenseExpireDate: entity.licenseExpireDate\n }\n : entity\n );\n\n newState[group.groupId] = {\n isSelected: false,\n users: usersToAdd,\n locations: {},\n workplans: {},\n units: {},\n geofences: {},\n drivers: {},\n profileId: 1,\n locationsCount: 0,\n workPlansCount: 0,\n userCount: 1,\n unitCount: 0,\n geofenceCount: 0,\n driverCount: 0,\n ...group,\n isInGroup: group.isInGroup\n };\n\n entitiesToAdd.forEach((entity) => {\n newState[group.groupId] = {\n ...newState[group.groupId],\n [entityType]: {\n ...newState[group.groupId][entityType],\n [entityType === 'users'\n ? entity.userName\n : entityType === 'locations'\n ? entity.locationId\n : entityType === 'workplans'\n ? entity.workplanId\n : entityType === 'units'\n ? entity.unitId\n : entityType === 'geofences'\n ? entity.geofenceId\n : entityType === 'drivers'\n ? entity.driverId\n : entity.entityId]: entity\n },\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n newState[group.groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] + 1\n };\n });\n return newState;\n }\n\n case types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED:\n case types.GROUP_EDIT_STARTED: {\n const group = action.payload;\n return {\n ...state,\n [group.groupId]: {\n ...state[group.groupId],\n oldGroup: state[group.groupId],\n ...group\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED:\n case types.GROUP_EDIT_FAILED: {\n const { oldGroup } = action.payload;\n return {\n ...state,\n [oldGroup.groupId]: {\n ...omit(state[oldGroup.groupId], ['oldGroup']),\n ...oldGroup\n }\n };\n }\n\n //TYPES REMOVE AND ADD ENTITIES\n case types.GROUP_REMOVE_ENTITIES_COMPLETED: {\n const groupId = action.payload.groupId;\n const entityType = action.payload.entityType; // users, locations, workplans, units, geofences, drivers\n const entities = action.payload.entities;\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n [entityType]: omit(state[groupId][entityType], entities),\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n state[groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] - entities.length\n }\n };\n return newState;\n }\n\n case types.GROUP_ADD_ENTITIES_COMPLETED: {\n const group = action.payload.group;\n const entityType = action.payload.entityType; // users, locations, workplans, units, geofences, drivers\n const entities = action.payload.entities;\n const params = action.payload.params;\n const newState = { ...state };\n\n const entitiesToAdd = entities.map((entity) =>\n entityType === 'users'\n ? {\n userId: entity.userId,\n userName: entity.userName,\n completeName: entity.completeName,\n userImage: entity.userImage,\n profileId: params.profileId\n }\n : entityType === 'locations'\n ? {\n locationId: entity.locationId,\n locationName: entity.locationName,\n radius: entity.radius,\n latitude: entity.latitude,\n longitude: entity.longitude,\n organizationName: entity.organizationName\n }\n : entityType === 'workplans'\n ? {\n workPlanId: entity.workPlanId,\n workPlanName: entity.workPlanName,\n organizationName: entity.organizationName\n }\n : entityType === 'units'\n ? {\n unitId: entity.unitId,\n groupName: group.groupName,\n unitName: entity.unitName,\n themeId: entity.themeId,\n privateCode: entity.privateCode,\n organizationName: entity.organizationName\n }\n : entityType === 'geofences'\n ? {\n geofenceId: entity.geofenceId,\n geofenceName: entity.geofenceName,\n notifyAdmin: params.notifyAdmin,\n notifyOwner: params.notifyOwner,\n shape: entity.shape,\n notifyEmails: params.notifyEmails\n }\n : entityType === 'drivers'\n ? {\n driverId: entity.driverId,\n driverName: entity.driverName,\n driverPhoto: entity.driverPhoto,\n licenseNumber: entity.licenseNumber,\n licenseType: entity.licenseType,\n licenseExpireDate: entity.licenseExpireDate\n }\n : entity\n );\n\n entitiesToAdd.forEach((entity) => {\n newState[group.groupId] = {\n ...state[group.groupId],\n [entityType]: {\n ...newState[group.groupId][entityType],\n [entityType === 'users'\n ? entity.userName\n : entityType === 'locations'\n ? entity.locationId\n : entityType === 'workplans'\n ? entity.workPlanId\n : entityType === 'units'\n ? entity.unitId\n : entityType === 'geofences'\n ? entity.geofenceId\n : entityType === 'drivers'\n ? entity.driverId\n : entity.entityId]: entity\n },\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n newState[group.groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] + 1\n };\n });\n return newState;\n }\n\n //TYPE EDIT USER PROFILE IN GROUP\n case types.GROUP_USER_PROFILE_EDIT_COMPLETED: {\n const { groupId, userName, userNameInSession, profileId } = action.payload;\n const users = { ...state[groupId].users };\n users[userName] = { ...users[userName], profileId: profileId };\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n users: users,\n profileId: userNameInSession === userName ? profileId : state[groupId]['profileId']\n }\n };\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.GROUP_REMOVE_COMPLETED: {\n const { groupId } = action.payload;\n return omit(state, groupId);\n }\n\n //TYPES LEAVE COMPLETED\n case types.GROUP_LEAVE_COMPLETED: {\n const { groupId, isAsesor, asesorUsername } = action.payload;\n if (isAsesor === true) {\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n users: omit(state[groupId]['users'], asesorUsername),\n userCount: state[groupId]['userCount'] - 1,\n isInGroup: 0,\n profileId: 1\n }\n };\n return newState;\n }\n return omit(state, groupId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.GROUP_SELECTED: {\n const groupId = action.payload;\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.GROUP_DESELECTED: {\n const groupId = action.payload;\n return {\n ...state,\n [groupId]: {\n ...state[groupId],\n isSelected: false\n }\n };\n }\n\n case types.GROUPS_ALL_SELECTED: {\n const groupIds = action.payload;\n const newState = { ...state };\n if (groupIds.length == 0) {\n forEach(state, (group: any, groupId) => {\n newState[groupId] = {\n ...group,\n isSelected: true\n };\n });\n } else {\n groupIds.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GROUPS_ALL_DESELECTED: {\n const groupIds = action.payload;\n const newState = { ...state };\n if (groupIds.length == 0) {\n forEach(state, (group: any, groupId) => {\n newState[groupId] = {\n ...group,\n isSelected: false\n };\n });\n } else {\n groupIds.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.GROUPS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.GROUP_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_COMPLETED: {\n const { oldId, group } = action.payload;\n return state.map((groupId) => (groupId === oldId ? group.groupId : groupId));\n }\n\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GROUP_REMOVE_COMPLETED: {\n const { groupId } = action.payload;\n return state.filter((groupIdState) => groupIdState !== groupId);\n }\n\n case types.GROUP_LEAVE_COMPLETED: {\n const { groupId, isAsesor } = action.payload;\n return state.filter((groupIdState) =>\n isAsesor === true ? groupIdState : groupIdState !== groupId\n );\n }\n\n //CASE ADD STARTED\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_ADD_STARTED: {\n const { group, user } = action.payload;\n return [...state, group.groupId];\n }\n\n //CASE ADD FAILED\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((groupIdState) => groupIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_FETCH_COMPLETED:\n case types.GROUPS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingGroup = (state = false, action) => {\n switch (action.type) {\n case types.GROUP_FETCH_STARTED: {\n return true;\n }\n case types.GROUP_FETCH_COMPLETED:\n case types.GROUP_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingAllEntities = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED:\n case types.GROUPS_ALL_ENTITIES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_PARTIAL_FETCH_COMPLETED:\n case types.GROUPS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_ADD_STARTED: {\n return true;\n }\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_COMPLETED:\n case types.GROUP_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_ADD_ENTITIES_STARTED:\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_REMOVE_ENTITIES_STARTED:\n case types.GROUP_EDIT_STARTED: {\n return true;\n }\n case types.GROUP_ADD_COMPLETED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_COMPLETED:\n case types.GROUP_EDIT_COMPLETED:\n case types.GROUP_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_REMOVE_STARTED: {\n return true;\n }\n case types.GROUP_REMOVE_COMPLETED:\n case types.GROUP_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isLeaving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_LEAVE_STARTED: {\n return true;\n }\n case types.GROUP_LEAVE_COMPLETED:\n case types.GROUP_LEAVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_STARTED:\n case types.GROUP_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_EDIT_STARTED:\n case types.GROUP_ADD_ENTITIES_STARTED:\n case types.GROUP_ADD_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_STARTED:\n case types.GROUP_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_REMOVE_STARTED:\n case types.GROUP_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorLeaving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_LEAVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_LEAVE_STARTED:\n case types.GROUP_LEAVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_FETCH_STARTED:\n case types.GROUPS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingGroup = (state = null, action) => {\n switch (action.type) {\n case types.GROUP_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_FETCH_STARTED:\n case types.GROUP_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAllEntities = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_STARTED:\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_PARTIAL_FETCH_STARTED:\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst groups: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isFetchingAllEntities,\n isAdding,\n isEditing,\n isRemoving,\n isLeaving,\n errorPartialFetchingList,\n errorFetchingList,\n errorFetchingAllEntities,\n errorAdding,\n errorEditing,\n errorRemoving,\n errorLeaving,\n isFetchingGroup,\n errorFetchingGroup\n});\n\nconst groupsPersistedConfig = {\n key: 'groups',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(groupsPersistedConfig, groups);\n\n//Own state\nexport const getOwnState = (state) => state.groups;\n\n//Information\nexport const getGroup = (state, groupId) => {\n const group = getOwnState(state).byId[groupId];\n if (group) {\n return {\n ...group\n };\n } else return undefined;\n};\nexport const getUsersInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.users ? Object.values(group.users) : [];\n};\nexport const getLocationsInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.locations ? Object.values(group.locations) : [];\n};\nexport const getWorkplansInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.workplans ? Object.values(group.workplans) : [];\n};\nexport const getUnitsInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.units ? Object.values(group.units) : [];\n};\nexport const getGeofencesInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.geofences ? Object.values(group.geofences) : [];\n};\nexport const getDriversInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.divers ? Object.values(group.divers) : [];\n};\n\nexport const getGroupsList = (state) =>\n getOwnState(state)\n .order.map((id) => getGroup(state, id))\n .filter((group) => group.groupStatus > 0);\n\nexport const getAllGroupsList = (state) =>\n getOwnState(state).order.map((id) => getGroup(state, id));\n\nexport const getSelectedGroups = (state) => {\n const selectedGroups = getGroupsList(state).filter((group) => group.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedGroups.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedGroups.length > 0) return selectedGroups;\n};\n\nexport const getUnfilteredSelectedGroup = (state) =>\n getAllGroupsList(state).find((group) => group.isSelected) ?? null;\n\nexport const getSelectedGroup = (state) => {\n const selectedGroups = getGroupsList(state).filter((group) => group.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedGroups.length === 1) return selectedGroups[0];\n //De lo contrario se devuelve null\n else return null;\n};\nexport const getGroupsListByMembership = (state, membership) => {\n return getGroupsList(state).filter(\n (group) =>\n membership &&\n (!membership.operatorId || membership.operatorId === group.operatorId) &&\n (!membership.organizationId || membership.organizationId === group.organizationId) &&\n (!membership.divisionId || membership.divisionId === group.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === group.subdivisionId) &&\n group.unitStatus > 0\n );\n};\n\n//Status of sagas\nexport const isPartialFetchingListGroups = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListGroups = (state) => getOwnState(state).isFetchingList;\nexport const isFetchingAllEntitiesGroups = (state) => getOwnState(state).isFetchingAllEntitities;\nexport const isAddingGroup = (state) => getOwnState(state).isAdding;\nexport const isEditingGroup = (state) => getOwnState(state).isEditing;\nexport const isRemovingGroup = (state) => getOwnState(state).isRemoving;\nexport const isLeavingGroup = (state) => getOwnState(state).isLeaving;\nexport const isFetchingGroupById = (state) => getOwnState(state).isFetchingGroup;\n\n//Errors\nexport const getPartialFetchingListGroupsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListGroupsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getFetchingAllEntitiesErrors = (state) => getOwnState(state).errorFetchingAllEntities;\nexport const getAddingGroupErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingGroupErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingGroupErrors = (state) => getOwnState(state).errorRemoving;\nexport const getLeavingGroupErrors = (state) => getOwnState(state).errorLeaving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../../types/configurations';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((configurationId) => {\n newState[configurationId] = {\n isSelected: false,\n ...entities[configurationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONFIGURATIONS_FETCH_STARTED: {\n return true;\n }\n case types.CONFIGURATIONS_FETCH_COMPLETED:\n case types.CONFIGURATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONFIGURATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONFIGURATIONS_FETCH_STARTED:\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst configurations = combineReducers({\n byId,\n order,\n isFetchingList,\n errorFetchingList\n});\n\nexport default configurations;\n\n//Own state\nexport const getOwnState = (state) => state.staticCatalogs.brands.models.configurations;\n\n//Information\nexport const getConfiguration = (state, configurationId) =>\n getOwnState(state).byId[configurationId];\nexport const getConfigurationsList = (state) =>\n getOwnState(state).order.map((id) => getConfiguration(state, id));\n\nexport const getConfigurationsFromBrand = (state, brandId) =>\n getConfigurationsList(state).filter((configuration) => configuration.brandId === brandId);\n\n//Status of sagas\nexport const isFetchingListConfigurations = (state) => getOwnState(state).isFetchingList;\n\n//Errors\nexport const getFetchingListConfigurationsErrors = (state) => getOwnState(state).errorFetchingList;\n","import { SaveCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\n\nexport const startFetchingCategories = (filters = {}) => ({\n type: types.CATEGORIES_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingCategories = (entities, order) => ({\n type: types.CATEGORIES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingCategories = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.CATEGORIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingCategories = (entityTypeId) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingCategories = (entities, order) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingCategories = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingCategory = (category: SaveCategoryDTO) => ({\n type: types.CATEGORY_ADD_STARTED,\n payload: category\n});\n\nexport const completeAddingCategory = (id: string, oldId: string, category) => ({\n type: types.CATEGORY_ADD_COMPLETED,\n payload: { id, oldId, category }\n});\n\nexport const failAddingCategory = (oldId, error) => ({\n type: types.CATEGORY_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingCategory = (category: SaveCategoryDTO) => ({\n type: types.CATEGORY_EDIT_STARTED,\n payload: category\n});\n\nexport const completeEditingCategory = (category) => ({\n type: types.CATEGORY_EDIT_COMPLETED,\n payload: category\n});\n\nexport const failEditingCategory = (oldCategory, error) => ({\n type: types.CATEGORY_EDIT_FAILED,\n payload: {\n oldCategory,\n error\n }\n});\n\nexport const startRemovingCategory = (request: { categoryId: number; categoryName: string }) => ({\n type: types.CATEGORY_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingCategory = (id) => ({\n type: types.CATEGORY_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingCategory = (id, error) => ({\n type: types.CATEGORY_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import * as types from '../../types/routesExecutions';\n\nexport const startFetchingRoutesExecutions = (filters = {}) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutesExecutions = (entities, order, indicators) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators\n }\n});\nexport const failFetchingRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCancelRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_CANCEL_STARTED,\n payload: { routes }\n});\nexport const completeCancelRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_CANCEL_COMPLETED,\n payload: { routes }\n});\nexport const failCancelRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_CANCEL_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditRouteExecution = (routeExecution) => ({\n type: types.ROUTE_EXECUTION_EDIT_STARTED,\n payload: routeExecution\n});\nexport const completeEditRouteExecution = (routeExecution) => ({\n type: types.ROUTE_EXECUTION_EDIT_COMPLETED,\n payload: routeExecution\n});\nexport const failEditRouteExecution = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTE_EXECUTION_EDIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFinalizeRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_STARTED,\n payload: { routes }\n});\nexport const completeFinalizeRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_COMPLETED,\n payload: { routes }\n});\nexport const failFinalizeRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCompleteRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_STARTED,\n payload: { routes }\n});\nexport const completeCompleteRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_COMPLETED,\n payload: { routes }\n});\nexport const failCompleteRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startRemoveRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_REMOVE_STARTED,\n payload: { routes }\n});\nexport const completeRemoveRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_REMOVE_COMPLETED,\n payload: { routes }\n});\nexport const failRemoveRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_REMOVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPauseRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_PAUSE_STARTED,\n payload: { routes }\n});\nexport const completePauseRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_PAUSE_COMPLETED,\n payload: { routes }\n});\nexport const failPauseRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_PAUSE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startStartRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_START_STARTED,\n payload: { routes }\n});\nexport const completeStartRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_START_COMPLETED,\n payload: { routes }\n});\nexport const failStartRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_START_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startManualTransitRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED,\n payload: { routes }\n});\nexport const completeManualTransitRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED,\n payload: { routes }\n});\nexport const failManualTransitRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeToAlternateRoute = (routeAssignmentId, routeId, reason) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED,\n payload: { routeAssignmentId, routeId, reason }\n});\nexport const completeChangeToAlternateRoute = (routeAssignmentId, routeId, reason) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED,\n payload: { routeAssignmentId, routeId, reason }\n});\nexport const failChangeToAlternateRoute = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startShareRoutesExecutions = (routeAssignments: string, emailList: string) => ({\n type: types.ROUTES_EXECUTION_SHARE_STARTED,\n payload: { routeAssignments, emailList }\n});\nexport const completeShareRoutesExecutions = (routeAssignments: string, emailList: string) => ({\n type: types.ROUTES_EXECUTION_SHARE_COMPLETED,\n payload: { routeAssignments, emailList }\n});\nexport const failShareRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_SHARE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignUnitRoutesExecutions = (assignation) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitRoutesExecutions = (assignation) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import { NoticeByOdometerRequest } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer';\n\nexport const startFetchingNotices = (filters = {}) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingNotices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingNotices = (entityTypeId) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingNotices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_STARTED,\n payload: notice\n});\n\nexport const completeAddingNotice = (id: string, oldId: string, notice) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_COMPLETED,\n payload: { id, oldId, notice }\n});\n\nexport const failAddingNotice = (oldId, error) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_STARTED,\n payload: notice\n});\n\nexport const completeEditingNotice = (notice) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_COMPLETED,\n payload: notice\n});\n\nexport const failEditingNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\n//===================== RENEW ========================================\nexport const startRenewNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_STARTED,\n payload: notice\n});\n\nexport const completeRenewNotice = (notice) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_COMPLETED,\n payload: notice\n});\n\nexport const failRenewNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\nexport const startRemovingNotice = (request: { noticeId: number; unitId: number }) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingNotice = (id) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingNotice = (id, error) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import React, { useState } from 'react';\nimport { Button, Tooltip } from 'reactstrap';\nimport { useSelector } from 'react-redux';\nimport { Trash } from 'react-feather';\nimport { FormattedMessage } from 'react-intl';\n\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n isDisabled?: boolean;\n id?: any;\n permissions?: any[];\n handleClick: any;\n tooltipLabel?: string;\n tooltipMessage?: string;\n visible?: boolean;\n}\n\nconst DeleteButton = (props: Props) => {\n const store = useSelector((state) => state);\n const {\n id = '',\n isDisabled,\n handleClick,\n tooltipLabel,\n tooltipMessage,\n permissions,\n visible = true\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n handleClick()}\n >\n \n {tooltipMessage && (\n \n \n \n )}\n \n ) : null;\n};\n\nDeleteButton.defaultProps = {\n isDisabled: false\n};\n\nexport default DeleteButton;\n","import React from 'react';\nimport { FormattedMessage, injectIntl, IntlShape } from 'react-intl';\n/**\n * Componente \"tonto\" para mostrar tablas en catálogos\n * Props:\n * textId:\n * El id del texto a traducir\n */\nconst TitleH4 = ({ textId, center = false, textTransform = '', style = {} }) => (\n

\n \n

\n);\n\nexport default TitleH4;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport { type } from 'os';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.DRIVERS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((driverId) => {\n newState[driverId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[driverId],\n ...entities[driverId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((driverId) => {\n newState[driverId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[driverId],\n ...entities[driverId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.DRIVER_ADD_COMPLETED: {\n const { oldId, driver } = action.payload;\n const newState = omit(state, oldId);\n newState[driver.driverId] = {\n isShownInMap: false,\n ...state[oldId],\n ...driver,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.DRIVER_EDIT_COMPLETED: {\n const driver = action.payload;\n return {\n ...state,\n [driver.driverId]: {\n isShownInMap: false,\n ...omit(state[driver.driverId], ['oldDriver']),\n ...omit(driver, ['oldDriver']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.DRIVER_ADD_STARTED: {\n const driver = action.payload;\n const newState = { ...state };\n newState[driver.driverId] = {\n isShownInMap: false,\n isSelected: false,\n ...omit(driver, 'files'),\n isConfirmed: false\n };\n return newState;\n }\n case types.DRIVER_EDIT_STARTED: {\n const driver = action.payload;\n return {\n ...state,\n [driver.driverId]: {\n isShownInMap: false,\n ...state[driver.driverId],\n oldDriver: state[driver.driverId],\n ...omit(driver, 'files'),\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.DRIVER_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.DRIVER_EDIT_FAILED: {\n const { oldDriver } = action.payload;\n return {\n ...state,\n [oldDriver.driverId]: {\n isShownInMap: false,\n ...omit(state[oldDriver.driverId], ['oldDriver']),\n ...oldDriver,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.DRIVER_REMOVE_COMPLETED: {\n const { driverId } = action.payload;\n return omit(state, driverId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.DRIVER_SELECTED: {\n const driverId = action.payload;\n const newState = {\n ...state,\n [driverId]: {\n ...state[driverId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.DRIVER_DESELECTED: {\n const driverId = action.payload;\n return {\n ...state,\n [driverId]: {\n ...state[driverId],\n isSelected: false\n }\n };\n }\n\n case types.DRIVERS_ALL_SELECTED: {\n const driverIds = action.payload;\n const newState = { ...state };\n if (driverIds.length == 0) {\n forEach(state, (driver: any, driverId) => {\n newState[driverId] = {\n ...driver,\n isSelected: true\n };\n });\n } else {\n driverIds.forEach((driverId) => {\n newState[driverId] = {\n ...state[driverId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.DRIVERS_ALL_DESELECTED: {\n const driverIds = action.payload;\n const newState = { ...state };\n if (driverIds.length == 0) {\n forEach(state, (driver: any, driverId) => {\n newState[driverId] = {\n ...driver,\n isSelected: false\n };\n });\n } else {\n driverIds.forEach((driverId) => {\n newState[driverId] = {\n ...state[driverId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.DRIVER_ASSIGN_SENSOR_COMPLETED: {\n const driverId = action.payload.driverId;\n const sensor = action.payload.sensor;\n const newState = {\n ...state,\n [driverId]: {\n ...state[driverId],\n sensorId: sensor.sensorId,\n sensorName: sensor.sensorName\n }\n };\n return newState;\n }\n\n case types.DRIVER_UNASSIGN_SENSOR_COMPLETED: {\n const driverId = action.payload.driverId;\n return {\n ...state,\n [driverId]: {\n ...state[driverId],\n sensorId: null,\n sensorName: null\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.DRIVERS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.DRIVER_ADD_COMPLETED: {\n const { oldId, driver } = action.payload;\n return state.map((driverId) => (driverId === oldId ? driver.driverId : driverId));\n }\n\n case types.DRIVER_REMOVE_COMPLETED: {\n const { driverId } = action.payload;\n return state.filter((driverIdState) => driverIdState !== driverId);\n }\n\n //CASE ADD STARTED\n case types.DRIVER_ADD_STARTED: {\n const driver = action.payload;\n return [...state, driver.driverId];\n }\n\n //CASE ADD FAILED\n case types.DRIVER_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((driverIdState) => driverIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst isAssigningDrivers = (state: any = null, action: any) => {\n switch (action.type) {\n case types.START_MASSIVE_DRIVERS_ASSIGNMENT: {\n return true;\n }\n case types.COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT: {\n return false;\n }\n default: {\n return false;\n }\n }\n};\n\nconst importDriversAndUnits = (state: any = null, action) => {\n switch (action.type) {\n case types.START_IMPORT_DRIVERS_UNITS_IMPORT: {\n return [];\n }\n case types.COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT: {\n return action.payload ?? [];\n }\n default: {\n return action.payload ?? [];\n }\n }\n};\nconst isImportingDriversAndUnitsList = (state: any = null, action: any) => {\n switch (action.type) {\n case types.START_IMPORT_DRIVERS_UNITS_IMPORT: {\n return true;\n }\n case types.COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT: {\n return false;\n }\n default: {\n return false;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVERS_FETCH_STARTED: {\n return true;\n }\n case types.DRIVERS_FETCH_COMPLETED:\n case types.DRIVERS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVERS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.DRIVERS_PARTIAL_FETCH_COMPLETED:\n case types.DRIVERS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVER_ADD_STARTED: {\n return true;\n }\n case types.DRIVER_ADD_COMPLETED:\n case types.DRIVER_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVER_EDIT_STARTED: {\n return true;\n }\n case types.DRIVER_EDIT_COMPLETED:\n case types.DRIVER_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVER_REMOVE_STARTED: {\n return true;\n }\n case types.DRIVER_REMOVE_COMPLETED:\n case types.DRIVER_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVERS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVERS_FETCH_STARTED:\n case types.DRIVERS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVERS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVERS_PARTIAL_FETCH_STARTED:\n case types.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVER_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVER_ADD_STARTED:\n case types.DRIVER_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVER_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVER_EDIT_STARTED:\n case types.DRIVER_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVER_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVER_REMOVE_STARTED:\n case types.DRIVER_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVERS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst drivers: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched,\n isImportingDriversAndUnitsList,\n importDriversAndUnits,\n isAssigningDrivers\n});\n\nconst driversPersistedConfig = {\n key: 'drivers',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order', 'importDriversAndUnits']\n // blackList: [],\n};\n\nexport default persistReducer(driversPersistedConfig, drivers);\n// export default drivers;\n\n//Own state\nexport const getOwnState = (state) => state.drivers;\n\n//Information\nexport const getDriver = (state, driverId): types.Driver | null =>\n getOwnState(state).byId[driverId] ?? null;\n\nexport const getDriversList = (state): types.Driver[] =>\n getOwnState(state)\n .order.map((id) => getDriver(state, id))\n .filter((driver) => driver.driverStatus > 0);\n\nexport const getDriversListByMembership = (state, membership) => {\n //Se filtra por membership\n return getDriversList(state).filter(\n (driver) =>\n membership &&\n (!membership.operatorId || membership.operatorId === driver.operatorId) &&\n (!membership.organizationId || membership.organizationId === driver.organizationId) &&\n (!membership.divisionId || membership.divisionId === driver.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === driver.subdivisionId) &&\n (!membership.groupId ||\n driver.groups?.split(',').includes(String(membership.groupId)) ||\n membership.groupId + '' === driver.groups)\n );\n};\n\nexport const getDriverByPrivateCode = (state: any, driverPrivateCode: string) => {\n return getDriversList(state).find((driver) => driver?.privateCode === driverPrivateCode);\n};\n\nexport const getDriverByPrivateCodeByMembership = (\n state: any,\n driverPrivateCode: string,\n membership: DefaultFilters\n) => {\n return getDriversListByMembership(state, membership).find(\n (driver) => driver?.privateCode === driverPrivateCode\n );\n};\n\nexport const getSelectedDrivers = (state) => {\n const selectedDrivers = getDriversList(state).filter((driver) => driver.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedDrivers.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedDrivers.length > 0) return selectedDrivers;\n};\n\nexport const getSelectedDriver = (state) => {\n const selectedDrivers = getDriversList(state).filter((driver) => driver.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedDrivers.length === 1) return selectedDrivers[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n// New list with the drivers info\nexport const getDriversByListOfIds = (state: any, driversIds: Array) => {\n return driversIds?.map((driverId) => getDriver(state, driverId));\n};\n\nexport const getDriversByListOfPrivateCodes = (state: any, driversPrivateCodes: Array) => {\n return driversPrivateCodes.map((driverPrivateCode) =>\n getDriverByPrivateCode(state, driverPrivateCode)\n );\n};\n\n/**\n * Get Driver by ID or privateCode\n * @param state Redux state\n * @param driverId Driver id\n * @param privateCode Driver private code\n * @returns founded driver or undefined\n */\nexport const getDriverByIdOrPrivateCode = (state: any, driverId: number, privateCode: string) => {\n if (driverId !== null && driverId !== undefined) {\n const driver = getDriver(state, driverId);\n if (driver) return driver;\n }\n if (privateCode !== null && privateCode !== undefined && !/^\\s$/.test(privateCode)) {\n const driver = getDriverByPrivateCode(state, privateCode);\n if (driver) return driver;\n }\n};\n\n//Status of sagas\nexport const isPartialFetchingListDrivers = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListDrivers = (state) => getOwnState(state).isFetchingList;\nexport const haveDriversBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingDriver = (state) => getOwnState(state).isAdding;\nexport const isEditingDriver = (state) => getOwnState(state).isEditing;\nexport const isRemovingDriver = (state) => getOwnState(state).isRemoving;\nexport const isCopyingDriver = (state) => getOwnState(state).isCopying;\nexport const isAssigningGeofenceDriver = (state) => getOwnState(state).isAssigningGeofence;\n\n// importing\nexport const isImportingDriversAndUnits = (state) =>\n getOwnState(state).isImportingDriversAndUnitsList;\nexport const importedDriversAndUnits = (state) => getOwnState(state).importDriversAndUnits;\n\n// Massive assignment\nexport const isAssigningDriversMassively = (state: any) => getOwnState(state).isAssigningDrivers;\n\n//Errors\nexport const getPartialFetchingListDriversErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListDriversErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingDriverErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingDriverErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingDriverErrors = (state) => getOwnState(state).errorRemoving;\n","/* -------------------------------------------------------------------------- */\n/* LocationDropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente utiliza DropdownInput para generar un LocationDropdownInput\n\nimport { env } from 'env';\nimport { useEffect, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport * as authSelectors from 'redux/reducers/auth';\nimport { DefaultRootState } from 'redux/storeConfig/types';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as locationActions from 'views/screens/Locations/actions';\nimport locationsPermissions from 'views/screens/Locations/permissions';\nimport * as locationSelectors from 'views/screens/Locations/reducers';\nimport SlidingPaneEditLocation from 'views/screens/Locations/views/SlidingPaneEditLocation';\nimport DropdownInput from '../DropdownInput';\nimport GoogleLocationsDropdownInput from '../GoogleLocationDropDown';\nconst logo = require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logo.svg`).default;\nconst LocationsDropdownInput = (props) => {\n const {\n field,\n byLocationClassId,\n locationsFilters,\n useGoogleLocations = false,\n createFromGoogleLocations = false,\n useLabel = true,\n notAssigned = false,\n customerId,\n officeId,\n initialLocationType = 1,\n showOrganization = false\n } = props;\n\n const dispatch = useDispatch();\n const intl = useIntl();\n\n const [googlePlaceId, setGooglePlaceId] = useState(undefined);\n const [isOpenSlidingPane, setIsOpenSlidingPane] = useState(false);\n const [editingLocation, setEditingLocation] = useState({});\n const [locationType, setLocationType] = useState(initialLocationType);\n\n const { locations, isFetching, isAdding, locationByPlaceId, user, store } = useSelector(\n (state: DefaultRootState) => ({\n locations: byLocationClassId\n ? locationSelectors.getLocationsListByLocationClassId(state, byLocationClassId)\n : locationSelectors.getLocationsList(state),\n isFetching:\n locationSelectors.isFetchingListLocations(state) ||\n locationSelectors.isPartialFetchingListLocations(state),\n isAdding: locationSelectors.isAddingLocation(state),\n locationByPlaceId: locationSelectors.getLocationByGooglePlaceId(state, googlePlaceId),\n user: authSelectors.getAuthUser(state),\n store: state\n })\n );\n //Reset value with initial when values are loaded from db\n const [resetValue, setResetValue] = useState(Date.now());\n const resetDropdown = () => {\n setResetValue(Date.now());\n };\n\n // useScript(\n // `https://maps.googleapis.com/maps/api/js?key=${user.googleMapsApiKey}&libraries=places`\n // );\n\n //Update reactselect values of locations when fetched is finished\n useEffect(() => {\n if (!isFetching) {\n resetDropdown();\n }\n }, [isFetching, props?.options?.length]);\n\n useEffect(() => {\n if (field.value?.googleLocation && createFromGoogleLocations) {\n setIsOpenSlidingPane(true);\n setEditingLocation(field.value);\n }\n }, [field.value, createFromGoogleLocations]);\n\n useEffect(() => {\n if (!isAdding && googlePlaceId && locationByPlaceId?.locationId) {\n setLocationType(1);\n setGooglePlaceId(undefined);\n field.onChange(locationByPlaceId.locationId);\n }\n }, [isAdding]);\n\n return (\n <>\n {!props.options && }\n {locationType === 1 && (\n : null\n }\n options={\n props.options ||\n (notAssigned\n ? locations.filter(\n (location) =>\n (!location.customerId && !location.officeId) ||\n (location.customerId === customerId && location.officeId === officeId)\n )\n : locations\n ).map((location) => {\n return {\n ...location,\n icon: showOrganization ? `${location.organizationName}` : undefined,\n id: location.locationId,\n value: location.locationId,\n label: location.locationName,\n label_intl: location.locationName\n };\n })\n }\n prependcomponent={\n useGoogleLocations &&\n authSelectors.getAuthUserHasPermissionsAny(store, [\n locationsPermissions.searchExternalLocations\n ]) && (\n setLocationType(2)}\n >\n \n {intl.formatMessage({ id: 'locations.systemLocations' })}\n \n \"logo\"\n \n )\n }\n appendcomponent={props.appendcomponent}\n />\n )}\n {locationType === 2 && useGoogleLocations && (\n setLocationType(1)} />\n )}\n setIsOpenSlidingPane(false)}\n editingLocation={editingLocation}\n onClose={() => {\n setEditingLocation(undefined);\n setLocationType(1);\n field.onChange(undefined);\n }}\n action={(values) => {\n setGooglePlaceId(editingLocation.locationId);\n dispatch(\n locationActions.startAddingLocation({\n ...editingLocation,\n googleLocation: {\n ...editingLocation.googleLocation,\n googlePlaceId: editingLocation.locationId\n },\n ...values,\n ...values.membership,\n enableDispatch: 0,\n dispatchNotificationFreq: 0,\n dispatchEmails: null,\n dispatchCompletionType: 0,\n locationTypeId: 0\n })\n );\n }}\n />\n \n );\n};\n\nexport default LocationsDropdownInput;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.AGENTS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((agentId) => {\n newState[agentId] = {\n isSelected: false,\n ...entities[agentId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.AGENTS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.AGENT_FETCH_COMPLETED: {\n const agent = action.payload;\n const newState = { ...state };\n newState[agent.agentId] = {\n isSelected: false,\n ...state[agent.agentId],\n ...agent,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.AGENT_ADD_COMPLETED: {\n const { oldId, agent } = action.payload;\n const newState = omit(state, oldId);\n newState[agent.agentId] = {\n ...state[oldId],\n ...agent,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.AGENT_EDIT_COMPLETED: {\n const agent = action.payload;\n return {\n ...state,\n [agent.agentId]: {\n ...omit(state[agent.agentId], ['oldAgent']),\n ...omit(agent, ['oldAgent']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.AGENT_ADD_STARTED: {\n const agent = action.payload;\n const newState = { ...state };\n newState[agent.agentId] = {\n isSelected: false,\n ...agent,\n isConfirmed: false\n };\n return newState;\n }\n case types.AGENT_EDIT_STARTED: {\n const agent = action.payload;\n return {\n ...state,\n [agent.agentId]: {\n ...state[agent.agentId],\n oldAgent: state[agent.agentId],\n ...agent,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.AGENT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.AGENT_EDIT_FAILED: {\n const oldAgent = action.payload;\n return {\n ...state,\n [oldAgent.agentId]: {\n ...omit(state[oldAgent.agentId], ['oldAgent']),\n ...oldAgent,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.AGENT_REMOVE_COMPLETED: {\n const { agentId } = action.payload;\n return omit(state, agentId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.AGENT_SELECTED: {\n const agentId = action.payload;\n const newState = {\n ...state,\n [agentId]: {\n ...state[agentId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.AGENT_DESELECTED: {\n const agentId = action.payload;\n return {\n ...state,\n [agentId]: {\n ...state[agentId],\n isSelected: false\n }\n };\n }\n\n case types.AGENTS_ALL_SELECTED: {\n const agentIds = action.payload;\n const newState = { ...state };\n if (agentIds.length == 0) {\n forEach(state, (agent: any, agentId) => {\n newState[agentId] = {\n ...agent,\n isSelected: true\n };\n });\n } else {\n agentIds.forEach((agentId) => {\n newState[agentId] = {\n ...state[agentId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.AGENTS_ALL_DESELECTED: {\n const agentIds = action.payload;\n const newState = { ...state };\n if (agentIds.length == 0) {\n forEach(state, (agent: any, agentId) => {\n newState[agentId] = {\n ...agent,\n isSelected: false\n };\n });\n } else {\n agentIds.forEach((agentId) => {\n newState[agentId] = {\n ...state[agentId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.AGENTS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.AGENTS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.AGENT_FETCH_COMPLETED: {\n const agent = action.payload;\n return uniq([...state, agent.agentId]);\n }\n\n case types.AGENT_ADD_COMPLETED: {\n const { oldId, agent } = action.payload;\n return state.map((agentId) => (agentId === oldId ? agent.agentId : agentId));\n }\n\n case types.AGENT_REMOVE_COMPLETED: {\n const { agentId } = action.payload;\n return state.filter((agentIdState) => agentIdState !== agentId);\n }\n\n //CASE ADD STARTED\n case types.AGENT_ADD_STARTED: {\n const agent = action.payload;\n return [...state, agent.agentId];\n }\n\n //CASE ADD FAILED\n case types.AGENT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((agentIdState) => agentIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.AGENTS_FETCH_STARTED: {\n return true;\n }\n case types.AGENTS_FETCH_COMPLETED:\n case types.AGENTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.AGENT_FETCH_STARTED: {\n return true;\n }\n case types.AGENT_FETCH_COMPLETED:\n case types.AGENT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.AGENT_ADD_STARTED: {\n return true;\n }\n case types.AGENT_ADD_COMPLETED:\n case types.AGENT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.AGENT_EDIT_STARTED: {\n return true;\n }\n case types.AGENT_EDIT_COMPLETED:\n case types.AGENT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.AGENT_REMOVE_STARTED: {\n return true;\n }\n case types.AGENT_REMOVE_COMPLETED:\n case types.AGENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.AGENTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENTS_FETCH_STARTED:\n case types.AGENTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.AGENT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENT_FETCH_STARTED:\n case types.AGENT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.AGENT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENT_ADD_STARTED:\n case types.AGENT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.AGENT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENT_EDIT_STARTED:\n case types.AGENT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.AGENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENT_REMOVE_STARTED:\n case types.AGENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst agents = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default agents;\n\n//Own state\nexport const getOwnState = (state) => state.agents;\n\n//Information\nexport const getAgent = (state, agentId) => getOwnState(state).byId[agentId];\nexport const getAgentsList = (state) =>\n getOwnState(state)\n .order.map((id) => getAgent(state, id))\n .filter((agent) => agent.agentStatus > 0);\n\nexport const getAgentsListByMembership = (state, membership) => {\n return getAgentsList(state).filter(\n (agent) =>\n membership &&\n (!membership.operatorId || membership.operatorId === agent.operatorId) &&\n (!membership.organizationId || membership.organizationId === agent.organizationId) &&\n (!membership.divisionId || membership.divisionId === agent.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === agent.subdivisionId)\n );\n};\nexport const getSelectedAgents = (state) => {\n const selectedAgents = getAgentsList(state).filter((agent) => agent.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedAgents.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedAgents.length > 0) return selectedAgents;\n};\nexport const getSelectedAgent = (state) => {\n const selectedAgents = getAgentsList(state).filter((agent) => agent.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedAgents.length === 1) return selectedAgents[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isFetchingAgent = (state) => getOwnState(state).isFetching;\nexport const isFetchingListAgents = (state) => getOwnState(state).isFetchingList;\nexport const isAddingAgent = (state) => getOwnState(state).isAdding;\nexport const isEditingAgent = (state) => getOwnState(state).isEditing;\nexport const isRemovingAgent = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingAgentErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListAgentsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingAgentErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingAgentErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingAgentErrors = (state) => getOwnState(state).errorRemoving;\n","// @ts-nocheck\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport Lightbox from 'react-image-lightbox';\nimport { useState } from 'react';\nimport SwiperCore, {\n Navigation,\n Pagination,\n EffectFade,\n EffectCube,\n EffectCoverflow,\n Autoplay,\n Lazy,\n Virtual,\n Thumbs\n} from 'swiper';\n\nSwiperCore.use([\n Navigation,\n Pagination,\n EffectFade,\n EffectCube,\n EffectCoverflow,\n Autoplay,\n Lazy,\n Virtual,\n Thumbs\n]);\n\nconst defaultGalleryParams = {\n effect: 'fade',\n spaceBetween: 30,\n initialSlide: 0,\n centeredSlides: true,\n autoplay: {\n delay: 5000,\n disableOnInteraction: false,\n pauseOnMouseEnter: true,\n reverseDirection: false\n },\n loop: true,\n navigation: true,\n pagination: {\n clickable: true\n }\n};\n\ninterface MediaGalleryProps {\n isRtl: boolean;\n images: Image[];\n className: string;\n classNameThumbs?: string;\n classNameImg?: string;\n autoplay?: any;\n loop?: boolean;\n navigation?: boolean;\n pagination?: boolean;\n imagesPath: string;\n height: string; //percentage\n heightThumbs?: string; //percentage\n onSlideChange?: Function;\n useThumbs?: boolean;\n}\n\ninterface Image {\n imageUrl: string;\n fullImageUrl: string;\n imageName: string;\n imageId: any;\n imageDescription: string;\n imageType: number;\n imagePath: string;\n}\n\nconst MediaGallery = (props: MediaGalleryProps) => {\n const {\n isRtl,\n images,\n className,\n classNameImg,\n autoplay,\n loop,\n height,\n navigation,\n pagination,\n onSlideChange,\n useThumbs,\n classNameThumbs,\n heightThumbs\n } = props;\n\n const [lightboxIndex, setLightboxIndex] = useState(0);\n const [isLightboxOpen, setIsLightboxOpen] = useState(false);\n\n //if useThumbs\n const [thumbsSwiper, setThumbsSwiper] = useState(null); // if useThums\n const paramsThumbsDefault = {\n className: 'gallery-thumbs',\n spaceBetween: 10,\n slidesPerView: 4,\n freeMode: false,\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n onSwiper: setThumbsSwiper\n };\n\n const galleryOptions = {\n ...defaultGalleryParams,\n autoplay: autoplay != null ? autoplay : defaultGalleryParams.autoplay,\n loop: loop != null ? loop : defaultGalleryParams.loop,\n navigation: navigation != null ? navigation : defaultGalleryParams.navigation,\n pagination: pagination != null ? pagination : defaultGalleryParams.pagination,\n thumbs: useThumbs ? { swiper: thumbsSwiper } : undefined\n };\n\n return (\n <>\n {images.length > 1 ? (\n <>\n {\n if (onSlideChange)\n onSlideChange(\n swiper.activeIndex > 0 ? (swiper.activeIndex - 1) % images.length : 0\n );\n }}\n >\n {images.map((image, index) => {\n return (\n \n {\n setLightboxIndex(index);\n setIsLightboxOpen(true);\n }}\n />\n \n );\n })}\n \n {useThumbs && images.length >= 3 && (\n \n {images.map((image, index) => {\n return (\n \n \n \n );\n })}\n \n )}\n \n ) : (\n
\n {\n setLightboxIndex(0);\n setIsLightboxOpen(true);\n }}\n />\n
\n )}\n {isLightboxOpen && (\n setIsLightboxOpen(false)}\n onMovePrevRequest={() =>\n setLightboxIndex((lightboxIndex + images.length - 1) % images.length)\n }\n onMoveNextRequest={() => setLightboxIndex((lightboxIndex + 1) % images.length)}\n />\n )}\n \n );\n};\n\nMediaGallery.defaultProps = {\n isRtl: false,\n images: [],\n className: '',\n classNameImg: 'img-contain',\n classNameThumbs: '',\n autoplay: null,\n loop: null,\n navigation: null,\n pagination: null,\n imagesPath: '',\n height: '33%',\n heightThumbs: '10%',\n useThumbs: false,\n onSlideChange: (activeSlideId) => null\n};\n\nexport default MediaGallery;\n","const permissions = {\n listFleet: 'BA002',\n deviceAction1: 'UA001',\n deviceAction2: 'UA002',\n deviceAction3: 'UA026',\n deviceAction4: 'UA034',\n deviceAction5: 'UA035',\n deviceAction6: 'UA043',\n deviceAction8: 'UA048',\n deviceAction9: 'UA051',\n deviceAction11: 'UA023',\n deviceAction12: 'UA024',\n deviceAction13: 'UA055',\n deviceAction20: 'UA003',\n deviceAction21: 'UA004',\n deviceAction22: 'UA005',\n deviceAction23: 'UA006',\n deviceAction30: 'UA027',\n deviceAction31: 'UA028',\n deviceAction32: 'UA029',\n deviceAction33: 'UA030',\n deviceAction34: 'UA031',\n deviceAction35: 'UA032',\n deviceAction36: 'UA033',\n deviceAction50: 'UA007',\n deviceAction51: 'UA036',\n deviceAction52: 'UA037',\n deviceAction53: 'UA038',\n deviceAction54: 'UA039',\n deviceAction55: 'UA040',\n deviceAction56: 'UA041',\n deviceAction57: 'UA042',\n deviceAction60: 'UA044',\n deviceAction61: 'UA045',\n deviceAction70: 'UA046',\n deviceAction71: 'UA047',\n deviceAction80: 'UA049',\n deviceAction81: 'UA050',\n deviceAction90: 'UA008',\n deviceAction91: 'UA052',\n deviceAction92: 'UA053',\n deviceAction93: 'UA054',\n deviceAction100: 'UA013',\n deviceAction1000: 'UA009',\n deviceAction1001: 'UA014',\n deviceAction1002: 'UA010',\n deviceAction1003: 'UA015',\n deviceAction1004: 'UA016',\n deviceAction1005: 'UA017',\n deviceAction1006: 'UA018',\n deviceAction1007: 'UA019',\n deviceAction1008: 'UA020',\n deviceAction1009: 'UA011',\n deviceAction1010: 'UA021',\n deviceAction1011: 'UA022',\n deviceAction1200: 'UA025',\n downtime: 'UP027',\n sendScripts: 'SP001'\n};\n\nexport default permissions;\n","const permissions = {\n addTicket: 'FT001',\n importTicket: 'FT002',\n byUnitReport: 'FT003',\n consolidatedReport: 'FT004',\n addLocation: 'LO001',\n recordMultiple: 'FT005'\n};\n\nexport default permissions;\n","import * as types from '../types';\n\nexport const startFetchingUserNotifications = (filters = {}) => ({\n type: types.USER_NOTIFICATIONS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingUserNotifications = (entities, order) => ({\n type: types.USER_NOTIFICATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingUserNotifications = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.USER_NOTIFICATIONS_FETCH_FAILED,\n payload: {\n error\n }\n});\n\nexport const startPartialFetchingUserNotifications = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.USER_NOTIFICATIONS_PARTIAL_FETCH_STARTED,\n payload: {\n entityTypeId,\n operatorId,\n organizationId\n }\n});\n\nexport const completePartialFetchingUserNotifications = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.USER_NOTIFICATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failPartialFetchingUserNotifications = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.USER_NOTIFICATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error\n }\n});\n\nexport const startReadingUserNotification = (notificationIds) => ({\n type: types.USER_NOTIFICATION_READ_STARTED,\n payload: notificationIds\n});\n\nexport const completeReadingUserNotification = (notifications, notificationIds) => ({\n type: types.USER_NOTIFICATION_READ_COMPLETED,\n payload: {\n notifications,\n notificationIds\n }\n});\n\nexport const failReadingUserNotification = (notificationIds) => ({\n type: types.USER_NOTIFICATION_READ_FAILED,\n payload: notificationIds\n});\n\nexport const selectUserNotification = (notificationId) => ({\n type: types.USER_NOTIFICATION_SELECTED,\n payload: notificationId\n});\n\nexport const selectAllUserNotification = (notificationIds: any[] = []) => ({\n type: types.USER_NOTIFICATION_ALL_SELECTED,\n payload: notificationIds\n});\n\nexport const deselectUsermNotification = (notificationId) => ({\n type: types.USER_NOTIFICATION_DESELECTED,\n payload: notificationId\n});\n\nexport const deselectAllUserNotification = (notificationIds: any[] = []) => ({\n type: types.USER_NOTIFICATION_ALL_DESELECTED,\n payload: notificationIds\n});\n\nexport const userNotificationShown = (notificationId) => ({\n type: types.USER_NOTIFICATION_SHOWN,\n payload: notificationId\n});\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/workplan';\n\nexport interface deleteWorkplanExecutionLocationFilters {\n visitId: number;\n locationId: number;\n sequenceNumber: number;\n applyToWorkplan: boolean;\n locationName: string;\n}\n\nexport const getWorkplansListService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getAssignedWorkplansWithScheduleService = (\n request: any,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/getAssignedWithSchedule`, request);\n};\n\nexport const getAssignedWorkplansWithDateTimeService = (\n request: any,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/getAssignedWithDateTime`, request);\n};\n\nexport interface BulkInsertRequest {\n workplanType: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n workplans: string; // JSON string\n}\nexport const workplansBulkInsert = (request: BulkInsertRequest, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/workplansBulkInsert`, request);\n};\n\nexport const deleteWorkplanService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.workplanName}`,\n object: 'workplans.workplan',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const saveWorkplanService = (request: any, configAction: ConfigActions, isNew: boolean) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.workplanName}`,\n object: 'workplans.workplan',\n action: isNew ? 'Create' : 'Edit',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteWorkplanExecutionLocationService = (\n request: deleteWorkplanExecutionLocationFilters,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'workplans.location',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/deleteWorkplanExecutionLocation`, request);\n};\n\nexport const saveWorkplanExecutionLocationService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'workplans.location',\n action: 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/saveWorkplanExecutionLocation`, request);\n};\n","const permissions = {\n temperatureCatalog: 'TE001',\n temperatureStadistics: 'TE002',\n fuelCatalog: 'TE003',\n fuelReport: 'TE007',\n fuelStadistics: 'TE004',\n tirePressureCatalog: 'TE005',\n obd2Monitor: 'TE006',\n telemtryUnits: 'TU001',\n downtime: 'UP027'\n};\n \nexport default permissions;\n","import { NoticeByDateRequest } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate';\n\nexport const startFetchingNotices = (filters = {}) => ({\n type: types.NOTICES_BY_DATE_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_DATE_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingNotices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.NOTICES_BY_DATE_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingNotices = (entityTypeId) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingNotices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_ADD_STARTED,\n payload: notice\n});\n\nexport const completeAddingNotice = (id: string, oldId: string, notice) => ({\n type: types.NOTICE_BY_DATE_ADD_COMPLETED,\n payload: { id, oldId, notice }\n});\n\nexport const failAddingNotice = (oldId, error) => ({\n type: types.NOTICE_BY_DATE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_EDIT_STARTED,\n payload: notice\n});\n\nexport const completeEditingNotice = (notice) => ({\n type: types.NOTICE_BY_DATE_EDIT_COMPLETED,\n payload: notice\n});\n\nexport const failEditingNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_DATE_EDIT_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\n//===================== RENEW ========================================\nexport const startRenewNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_RENEW_STARTED,\n payload: notice\n});\n\nexport const completeRenewNotice = (notice) => ({\n type: types.NOTICE_BY_DATE_RENEW_COMPLETED,\n payload: notice\n});\n\nexport const failRenewNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_DATE_RENEW_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\nexport const startRemovingNotice = (request: { noticeId: number; unitId: number }) => ({\n type: types.NOTICE_BY_DATE_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingNotice = (id) => ({\n type: types.NOTICE_BY_DATE_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingNotice = (id, error) => ({\n type: types.NOTICE_BY_DATE_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect, useRef } from 'react';\nimport { Marker, Popup, Rectangle, useMap, Circle, GeoJSON, Polygon } from 'react-leaflet';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport wkx from 'wkx';\n\nexport interface MapGeofenceEditOptions {\n usePopovers?: boolean;\n geofence: any;\n onGeofenceDragend?: Function;\n onGeofenceEdit?: Function;\n showGeofence: boolean;\n isMapFullScreen?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* MapGeofenceEdit to edit a geofence in map */\n/* -------------------------------------------------------------------------- */\nconst MapGeofenceEdit = (props: MapGeofenceEditOptions) => {\n const map = useMap();\n const { showGeofence, geofence, onGeofenceEdit, usePopovers, isMapFullScreen = false } = props;\n\n const zoomMapAfterEdit = !isMapFullScreen;\n const zoomMapToGeofence = (geofence) => {\n if (geofence.shape == 'C') {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n let feature = L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0]);\n map.flyToBounds(feature.toBounds(geofence.radius * 2 ?? 300), {});\n } else {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n // map.setView(feature.getBounds().getCenter(), 16);\n map.flyToBounds(feature.getBounds(), {});\n }\n };\n const WKBtoGeoJSON = (geofence, wkt) => {\n // let wkbBuffer = new Buffer(hex);\n if (wkt) {\n let geometry = wkx.Geometry.parse(wkt);\n if (geofence.shape == 'P') {\n geometry.type = 'LineString';\n }\n const geoJSON = geometry.toGeoJSON();\n\n return geoJSON;\n }\n return undefined;\n };\n\n useEffect(() => {\n try {\n geofenceRef.current.pm.enableLayerDrag();\n geofenceRef.current.pm.enable({ removeLayerBelowMinVertexCount: false, draggable: true });\n if (usePopovers) {\n geofenceRef.current.openPopup();\n }\n } catch {}\n if (geofence && Object.keys(geofence).length > 0) {\n if (zoomMapAfterEdit) zoomMapToGeofence(geofence);\n }\n }, [geofence.geofenceId]);\n\n useEffect(() => {\n try {\n if (geofenceRef.current) {\n geofenceRef.current.pm.enableLayerDrag();\n geofenceRef.current.pm.enable({ removeLayerBelowMinVertexCount: false, draggable: true });\n }\n } catch {}\n }, [geofence.geofenceWktString]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const geofenceRef = useRef(null);\n\n const geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n\n return (\n <>\n {showGeofence && geofenceGeoJSON && (\n
\n {geofence.shape == 'C' && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n\n if (onGeofenceEdit)\n onGeofenceEdit({\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n if (onGeofenceEdit)\n onGeofenceEdit({\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'R' && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n ['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'P' &&\n !['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n [coords[1], coords[0]])\n // geofenceGeoJSON.coordinates[0].map((coords) => [coords[1], coords[0]])\n L.GeoJSON.coordsToLatLngs(geofenceGeoJSON.coordinates[0])\n }\n pathOptions={{ color: geofence.color ?? primary }}\n eventHandlers={{\n click: (e) => {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'U' && (\n \n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n )}\n
\n )}\n )\n \n );\n};\n\nMapGeofenceEdit.defaultProps = {\n geofence: {},\n showGeofence: false,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapGeofenceEdit;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport React, { Fragment, useEffect, useState } from 'react';\nimport { Circle, GeoJSON, Polygon, Tooltip, Rectangle, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport wkx from 'wkx';\nimport * as geofenceActions from '../../../../screens/Geofences/actions';\nimport * as geofenceSelectors from '../../../../screens/Geofences/reducers';\nimport SlidingpanelGeofenceInformation from '../../../../screens/Geofences/views/SlidingpanelGeofenceInformation';\nimport MarkerClusterGroup from '../MarkerClusterGroup';\n\nexport interface MapGeofencesOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToGeofenceBounds?: boolean;\n useSlidingpanelGeofenceInformation?: boolean;\n usePopovers?: boolean;\n geofences?: any[];\n selectedGeofenceIds?: any[];\n showGeofences?: boolean;\n clusterMarkers?: boolean;\n isMapFullScreen?: boolean;\n useIsShownGeofence?: boolean; //param only when you have a property in each geofence isShownInMap to show geofences on map\n initialShowSlidingPanelGeofenceInformationOpen?: boolean;\n initialGeofenceInformationOpenId?: any;\n editingGeofenceParent?: any;\n setEditingGeofenceParent?: Function;\n editingGeofenceParentRef?: any;\n startClusteringAt?: number; // receives the zoom level where it starts clustering\n membership?: any;\n resetMapHome?: any;\n}\n\nconst WKBtoGeoJSON = (wkt) => {\n // let wkbBuffer = new Buffer(hex);\n let geometry = wkx.Geometry.parse(wkt);\n\n return geometry.toGeoJSON();\n};\n\nexport const zoomMapToGeofence = (map, isMapFullScreen, geofence) => {\n if (geofence.shape == 'C') {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n let feature = L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0]);\n map.flyToBounds(\n feature.toBounds(geofence.radius * 2.5 ?? 300),\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n : {\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n } else {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence?.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n map.flyToBounds(\n feature.getBounds(),\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n : {\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n};\n\nconst MapGeofences = (props: MapGeofencesOptions) => {\n const context = useLeafletContext();\n const map = useMapEvents({\n moveend: () => {\n displayGeofences();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showGeofences = false,\n useIsShownGeofence = false,\n geofences = [],\n selectedGeofenceIds,\n setMapPositionToGeofenceBounds = false,\n useSlidingpanelGeofenceInformation = true,\n clusterMarkers = false,\n usePopovers,\n isMapFullScreen = false,\n initialShowSlidingPanelGeofenceInformationOpen = false,\n initialGeofenceInformationOpenId,\n editingGeofenceParent,\n setEditingGeofenceParent,\n editingGeofenceParentRef,\n startClusteringAt = undefined,\n resetMapHome\n } = props;\n const store = useSelector((state) => state);\n const dispatch = useDispatch();\n const [showGeofenceInformationSlidepanel, setShowGeofenceInformationSlidepanel] = useState(false);\n const [initialGeofenceId, setInitialGeofenceId] = useState();\n const [selectedGeofence, setSelectedGeofence] = useState({});\n const { isEditing, isAdding, mainGeofence } = useSelector((state) => ({\n isEditing: geofenceSelectors.isEditingGeofence(state),\n isAdding: geofenceSelectors.isAddingGeofence(state),\n mainGeofence: geofenceSelectors.getGeofence(\n state,\n editingGeofenceParentRef?.current?.parentGeofenceId\n )\n }));\n\n useEffect(() => {\n if (mainGeofence?.geofenceId) {\n zoomMapToGeofence(map, isMapFullScreen, mainGeofence);\n dispatch(geofenceActions.showGeofenceInMap(mainGeofence.geofenceId));\n return () => {\n dispatch(geofenceActions.hideGeofenceInMap(mainGeofence.geofenceId));\n };\n }\n }, [mainGeofence?.geofenceId]);\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n geofences: selectedGeofence?.geofenceId != null\n });\n }\n }, [selectedGeofence]);\n\n useEffect(() => {\n if (!isEditing && selectedGeofence.geofenceId) {\n setSelectedGeofence(geofenceSelectors.getGeofence(store, selectedGeofence.geofenceId));\n setShowGeofenceInformationSlidepanel(true);\n }\n }, [isEditing]);\n\n useEffect(() => {\n if (setMapPositionToGeofenceBounds && map && geofences.length > 0) {\n if (geofences.length == 1) {\n zoomMapToGeofence(map, isMapFullScreen, geofences[0]);\n } else {\n var bounds = [];\n geofences.map((geofence) => {\n let geofenceGeoJSON;\n\n geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (geofence.shape == 'C') {\n bounds = [\n ...bounds,\n L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0])\n ];\n } else if (geofence.shape == 'R') {\n bounds = [\n ...bounds,\n ...geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]]))\n ];\n } else if (geofence.shape == 'P') {\n bounds = [\n ...bounds,\n ...(geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => L.latLng([coords[1], coords[0]]))\n : geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]])))\n ];\n } else if (geofence.shape == 'U') {\n bounds = [\n ...bounds,\n _.flatten(\n geofenceGeoJSON.coordinates.map((coordinate) =>\n coordinate.map((coords) =>\n coords[1] && coords[0] ? L.latLng([coords[1], coords[0]]) : null\n )\n )\n )\n ];\n }\n });\n map.fitBounds(\n L.latLngBounds(bounds.filter((bound) => bound != null && bound instanceof L.LatLng))\n );\n }\n }\n }, [geofences.length, setMapPositionToGeofenceBounds]);\n\n //Open and select geofence if params are set\n useEffect(() => {\n if (initialShowSlidingPanelGeofenceInformationOpen && useSlidingpanelGeofenceInformation) {\n if (initialGeofenceInformationOpenId) {\n const initialGeofenceInformation = geofenceSelectors.getGeofence(\n store,\n initialGeofenceInformationOpenId\n );\n\n if (\n initialGeofenceId !== initialGeofenceInformationOpenId &&\n initialGeofenceInformation.shape\n ) {\n setInitialGeofenceId(initialGeofenceInformation.geofenceId);\n setSelectedGeofence(initialGeofenceInformation);\n zoomMapToGeofence(map, isMapFullScreen, initialGeofenceInformation);\n }\n setShowGeofenceInformationSlidepanel(true);\n }\n } else {\n setInitialGeofenceId(undefined);\n setSelectedGeofence({});\n setShowGeofenceInformationSlidepanel(false);\n }\n }, [initialGeofenceInformationOpenId]);\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n // Check if you want to cluster markers\n let WrapperMarkerClusterGroup = Fragment;\n const wrapperProps = {};\n if (clusterMarkers) {\n WrapperMarkerClusterGroup = MarkerClusterGroup;\n wrapperProps['disableClusteringAtZoom'] = startClusteringAt;\n }\n\n const [geofencesBounds, setGeofencesBounds] = useState([]);\n const displayGeofences = () => {\n setGeofencesBounds(\n geofences.filter((geofence) => {\n if (!geofence.geofenceWktString) return false;\n let geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n return map\n ? map.getBounds().contains(feature.getBounds()) ||\n map.getBounds().overlaps(feature.getBounds())\n : true;\n })\n );\n };\n useDeepCompareEffect(() => {\n displayGeofences();\n }, [showGeofences, isEditing, isAdding, geofences]);\n\n const onClickGeofence = (e, geofence) => {\n if (editingGeofenceParentRef?.current) {\n dispatch(geofenceActions.showGeofenceInMap(editingGeofenceParentRef?.current.geofenceId));\n if (setEditingGeofenceParent) setEditingGeofenceParent(undefined);\n }\n\n setSelectedGeofence({ ...geofence, layer: e.target });\n if (useSlidingpanelGeofenceInformation) {\n setShowGeofenceInformationSlidepanel(true);\n }\n zoomMapToGeofence(map, isMapFullScreen, geofence);\n };\n\n return (\n <>\n {(showGeofences || useIsShownGeofence) && (\n \n {geofencesBounds.map((geofence) => {\n const geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (\n geofenceGeoJSON.type == 'MultiPolygon' ||\n geofenceGeoJSON.type == 'GeometryCollection'\n ) {\n console.log('geofence = ', geofence.geofenceName);\n }\n return (\n ((showGeofences && !useIsShownGeofence) ||\n (useIsShownGeofence && geofence.isShownInMap)) && (\n
\n {geofence.shape == 'C' && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n center={L.latLng(\n geofenceGeoJSON.coordinates[1],\n geofenceGeoJSON.coordinates[0]\n )}\n radius={geofence.radius}\n pathOptions={{\n color:\n selectedGeofenceIds?.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'rgba(128, 128, 128, 0.6)'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'R' && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n bounds={geofenceGeoJSON.coordinates[0].map((coords) => [\n coords[1],\n coords[0]\n ])}\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n ['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n data={geofenceGeoJSON}\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n !['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n positions={\n geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => [coords[1], coords[0]])\n : geofenceGeoJSON.coordinates[0].map((coords) => [\n coords[1],\n coords[0]\n ])\n }\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'U' && (\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n // pmIgnore={true}\n style={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color\n }}\n data={geofenceGeoJSON}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n )}\n
\n )\n );\n })}\n
\n )}\n\n {\n setShowGeofenceInformationSlidepanel(false);\n setSelectedGeofence({});\n if (\n initialGeofenceInformationOpenId &&\n initialShowSlidingPanelGeofenceInformationOpen &&\n resetMapHome\n ) {\n resetMapHome();\n }\n }}\n isSlidepanelOpen={showGeofenceInformationSlidepanel}\n title={selectedGeofence.geofenceName}\n geofence={selectedGeofence}\n editingGeofenceParent={editingGeofenceParent}\n editingGeofenceParentRef={editingGeofenceParentRef}\n setEditingGeofenceParent={setEditingGeofenceParent}\n />\n \n );\n};\n\nMapGeofences.defaultProps = {\n setMapPositionToGeofenceBounds: false,\n useSlidingpanelGeofenceInformation: true,\n geofences: [],\n showGeofences: false,\n clusterMarkers: false,\n isMapFullScreen: false,\n initialShowSlidingPanelGeofenceInformationOpen: false,\n usePopovers: true,\n initialGeofenceInformationOpenId: undefined,\n useIsShownGeofence: false\n};\n\nexport default MapGeofences;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect, useRef } from 'react';\nimport { Marker, Popup, Rectangle, useMap } from 'react-leaflet';\nimport { getRectBoundsFromLatLng } from '../../utils';\n\nexport interface MapLocationEditOptions {\n usePopovers?: boolean;\n location: any;\n onLocationDragend?: Function;\n showLocation: boolean;\n useRectangleBounds: boolean;\n isMapFullScreen?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* MapLocationEdit to edit a marker in map */\n/* -------------------------------------------------------------------------- */\nconst MapLocationEdit = (props: MapLocationEditOptions) => {\n const map = useMap();\n const {\n showLocation,\n location,\n useRectangleBounds = true,\n useSlidingpanelLocationInformation,\n onLocationDragend,\n usePopovers,\n isMapFullScreen = false\n } = props;\n\n const zoomMapToLocation = (latLng) => {\n const maxZoom = Math.max(15, map.getZoom());\n setTimeout(function () {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds(\n [ll],\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom,\n animate: 15 > map.getZoom()\n }\n : {\n maxZoom,\n animate: 15 > map.getZoom()\n }\n );\n }, 500);\n };\n\n useEffect(() => {\n try {\n markerRef.current.pm.enable({ preventMarkerRemoval: true });\n if (usePopovers) {\n markerRef.current.openPopup();\n }\n } catch {}\n if (location.latitude != null && location.longitude != null) {\n zoomMapToLocation(L.latLng(location.latitude, location.longitude));\n }\n }, [location]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const markerRef = useRef(null);\n const popupRef = useRef(null);\n\n return (\n <>\n {showLocation && location?.latitude != null && location?.longitude != null && (\n
\n
`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })}\n position={[location.latitude, location.longitude]}\n eventHandlers={{\n click: (e) => {\n zoomMapToLocation(e.latlng);\n },\n 'pm:dragend': (e) => {\n if (onLocationDragend) onLocationDragend(e.target.getLatLng());\n }\n }}\n >\n {usePopovers && (\n \n \n {location.locationName}\n \n \n )}\n \n\n {useRectangleBounds && (\n \n )}\n \n )}\n )\n \n );\n};\n\nMapLocationEdit.defaultProps = {\n location: {},\n showLocation: false,\n useRectangleBounds: true,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapLocationEdit;\n","// @ts-nocheck\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Marker, Rectangle, Tooltip, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Media } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport Icon from 'utility/icomoon';\nimport { showUnitByZoomAndRadius } from 'views/screens/Locations/utils';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationActions from '../../../../screens/Locations/actions';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport SlidingpanelLocationInformation from '../../../../screens/Locations/views/SlidingpanelLocationInformation';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport MarkerClusterGroup from '../MarkerClusterGroup';\n\nexport interface MapLocationsOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToLocationBounds?: boolean;\n useSlidingpanelLocationInformation?: boolean;\n usePopovers?: boolean;\n locations?: any[];\n selectedLocationIds?: any[];\n showLocations?: boolean;\n useRectangleBounds?: boolean;\n clusterMarkers?: boolean;\n hideMarkersByZoom?: boolean;\n isMapFullScreen?: boolean;\n useIsShownLocation?: boolean; //param only when you have a property in each location isShownInMap to show locations on map\n initialShowSlidingPanelLocationInformationOpen?: boolean;\n initialLocationInformationOpenId?: any;\n editingLocationParent?: any;\n setEditingLocationParent?: Function;\n editingLocationParentRef?: any;\n selectedLocationInTable?: any;\n startClusteringAt?: number;\n membership?: any;\n zoomLimitSet?: any;\n resetMapHome?: any;\n spiderfyProps?: any;\n}\n\nconst MapLocations = (props: MapLocationsOptions) => {\n const map = useMapEvents({\n moveend: () => {\n displayMarkers();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showLocations = false,\n useIsShownLocation = false,\n locations = [],\n selectedLocationIds,\n useRectangleBounds = true,\n setMapPositionToLocationBounds = false,\n useSlidingpanelLocationInformation = true,\n clusterMarkers = false,\n hideMarkersByZoom = true,\n usePopovers,\n isMapFullScreen = false,\n initialShowSlidingPanelLocationInformationOpen = false,\n initialLocationInformationOpenId,\n editingLocationParent,\n setEditingLocationParent,\n editingLocationParentRef,\n selectedLocationInTable,\n startClusteringAt = undefined,\n zoomLimitSet = false,\n resetMapHome,\n spiderfyProps\n } = props;\n const dispatch = useDispatch();\n const [showLocationInformationSlidepanel, setShowLocationInformationSlidepanel] = useState(false);\n const [initialLocationId, setInitialLocationId] = useState();\n const [selectedLocation, setSelectedLocation] = useState({});\n const [isStartClusteringAtSet, setIsStartClusteringAtSet] = useState(false);\n const { store, user, isEditing, isAdding, isFetching } = useSelector((state) => ({\n store: state,\n user: authSelectors.getAuthUser(state),\n isEditing: locationSelectors.isEditingLocation(state),\n isAdding: locationSelectors.isAddingLocation(state),\n isFetching: locationSelectors.isFetchingListLocations(state)\n }));\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n locations: selectedLocation?.locationId != null\n });\n }\n }, [selectedLocation]);\n\n useEffect(() => {\n if (!isEditing && selectedLocation.locationId) {\n setSelectedLocation(locationSelectors.getLocation(store, selectedLocation.locationId));\n setShowLocationInformationSlidepanel(true);\n }\n }, [isEditing]);\n\n const zoomMapToLocation = (latLng) => {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds([ll], {\n paddingBottomRight: [selectedLocationInTable ? 0 : 550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n });\n };\n\n useDeepCompareEffect(() => {\n if (setMapPositionToLocationBounds && map && locations.length > 0) {\n if (locations.length == 1) {\n if (locations[0].latitude != null && locations[0].longitude != null) {\n var ll = L.latLng(locations[0].latitude, locations[0].longitude);\n map.flyToBounds(ll.toBounds(800), {});\n }\n } else {\n let bounds = L.latLngBounds(locations.map((loc) => [loc.latitude, loc.longitude]));\n map.fitBounds(bounds);\n }\n }\n }, [\n locations?.map((location) => ({\n latitude: location?.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n setMapPositionToLocationBounds\n ]);\n\n useEffect(() => {\n if (selectedLocationInTable) {\n var ll = L.latLng(selectedLocationInTable.latitude, selectedLocationInTable.longitude);\n zoomMapToLocation(ll);\n }\n }, [selectedLocationInTable]);\n\n //Open and select location if params are set\n useEffect(() => {\n if (initialShowSlidingPanelLocationInformationOpen && useSlidingpanelLocationInformation) {\n if (initialLocationInformationOpenId) {\n const initialLocationInformation = locationSelectors.getLocation(\n store,\n initialLocationInformationOpenId\n );\n\n if (\n initialLocationId !== initialLocationInformationOpenId &&\n initialLocationInformation.latitude != null &&\n initialLocationInformation.longitude != null\n ) {\n setInitialLocationId(initialLocationInformation.locationId);\n setSelectedLocation(initialLocationInformation);\n var ll = L.latLng(\n initialLocationInformation.latitude,\n initialLocationInformation.longitude\n );\n zoomMapToLocation(ll);\n }\n setShowLocationInformationSlidepanel(true);\n }\n } else {\n setInitialLocationId(undefined);\n setSelectedLocation({});\n setShowLocationInformationSlidepanel(false);\n }\n }, [initialLocationInformationOpenId]);\n\n useEffect(() => {\n if (\n showLocationInformationSlidepanel &&\n selectedLocation.locationId &&\n !initialLocationInformationOpenId\n ) {\n dispatch(locationActions.startFetchingLocation(selectedLocation.locationId));\n }\n }, [showLocationInformationSlidepanel, selectedLocation, initialLocationInformationOpenId]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n // Check if you want to cluster markers\n let WrapperMarkerClusterGroup = Fragment;\n\n let icon: JSX.Element | undefined = undefined;\n if (clusterMarkers) {\n WrapperMarkerClusterGroup = MarkerClusterGroup;\n icon = ;\n }\n\n const [markersComponents, setMarkersComponents] = useState([]);\n\n const displayMarkers = () => {\n const newMarkers = locations\n .filter(\n (location) =>\n location &&\n location.latitude != null &&\n location.longitude != null &&\n (map ? map.getBounds().contains(L.latLng(location.latitude, location.longitude)) : true)\n )\n .filter(\n (location) =>\n location.latitude != null &&\n location.longitude != null &&\n ((showLocations && !useIsShownLocation) || (useIsShownLocation && location.isShownInMap))\n )\n .map((location) => (\n
\n 0 &&\n selectedLocationIds.includes(location.locationId)\n ? 850\n : 800\n }\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: `
${\n location.locationClassContent ??\n ``\n }`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })}\n position={[location.latitude, location.longitude]}\n eventHandlers={{\n click: (e) => {\n if (editingLocationParentRef?.current) {\n dispatch(\n locationActions.showLocationInMap(editingLocationParentRef?.current.locationId)\n );\n if (setEditingLocationParent) setEditingLocationParent(undefined);\n }\n setSelectedLocation(location);\n if (useSlidingpanelLocationInformation) {\n setShowLocationInformationSlidepanel(true);\n }\n zoomMapToLocation(e.latlng);\n }\n }}\n >\n {usePopovers && (\n \n \n {location.locationName}\n \n\n {location.fullImageUrl && (\n <>\n

\n \n \n )}\n \n )}\n \n\n {useRectangleBounds && (\n \n )}\n
\n ));\n if (zoomLimitSet && !isStartClusteringAtSet) {\n setMarkersComponents([]);\n setIsStartClusteringAtSet(true);\n } else if (spiderfyProps && spiderfyProps.spiderfyActivated) {\n setMarkersComponents([]);\n spiderfyProps.setSpiderfyActivated(false);\n } else {\n setMarkersComponents(newMarkers);\n }\n };\n\n useDeepCompareEffect(() => {\n if (showLocations || useIsShownLocation) {\n displayMarkers();\n }\n }, [\n showLocations,\n isEditing,\n isAdding,\n locations?.map((location) => ({\n latitude: location.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n startClusteringAt,\n isStartClusteringAtSet\n ]);\n\n return (\n <>\n {(showLocations || useIsShownLocation) && (\n \n {markersComponents.length > 0 ? markersComponents : null}\n \n )}\n\n {\n setShowLocationInformationSlidepanel(false);\n setSelectedLocation({});\n if (\n initialLocationInformationOpenId &&\n initialShowSlidingPanelLocationInformationOpen &&\n resetMapHome\n ) {\n resetMapHome();\n }\n }}\n isSlidepanelOpen={showLocationInformationSlidepanel}\n title={selectedLocation.locationName}\n location={selectedLocation}\n editingLocationParent={editingLocationParent}\n editingLocationParentRef={editingLocationParentRef}\n setEditingLocationParent={setEditingLocationParent}\n />\n \n );\n};\n\nMapLocations.defaultProps = {\n setMapPositionToLocationBounds: false,\n useSlidingpanelLocationInformation: true,\n locations: [],\n showLocations: false,\n useRectangleBounds: true,\n clusterMarkers: false,\n hideMarkersByZoom: true,\n isMapFullScreen: false,\n initialShowSlidingPanelLocationInformationOpen: false,\n usePopovers: true,\n initialLocationInformationOpenId: undefined,\n useIsShownLocation: false\n};\n\nexport default MapLocations;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect } from 'react';\nimport { useMap } from 'react-leaflet';\nimport { useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { getRouteBounds } from 'views/screens/Routes/utils';\nimport wkx from 'wkx';\n\nexport interface MapObjectsBoundsOptions {\n isSelectedSomething?: any;\n setMapPositionToGeofenceBounds?: boolean;\n setMapPositionToLocationBounds?: boolean;\n setMapPositionToUnitBounds?: boolean;\n setMapPositionToUnitPositionsBounds?: boolean;\n setMapPositionToRouteBounds?: boolean;\n geofences?: any[];\n locations?: any[];\n units?: any[];\n routes?: any[];\n rerenderMapObjectBounds?: date;\n paddingBottomRight?: any[];\n paddingTopLeft?: any[];\n}\n\nconst MapObjectsBounds = (props: MapObjectsBoundsOptions) => {\n const context = useLeafletContext();\n\n const {\n isSelectedSomething,\n setMapPositionToGeofenceBounds = false,\n setMapPositionToLocationBounds = false,\n setMapPositionToUnitBounds = false,\n setMapPositionToUnitPositionsBounds = false,\n setMapPositionToRouteBounds = false,\n geofences = [],\n locations = [],\n units = [],\n routes = [],\n rerenderMapObjectBounds,\n paddingBottomRight,\n paddingTopLeft\n } = props;\n const store = useSelector((state) => state);\n const map = useMap();\n\n const zoomMapToObjects = () => {\n var bounds = [];\n if (setMapPositionToLocationBounds) {\n locations\n .filter((location) => location?.latitude != null && location?.longitude != null)\n .map((location) => {\n bounds = [...bounds, L.latLng(location.latitude, location.longitude)];\n });\n }\n if (setMapPositionToGeofenceBounds) {\n geofences.map((geofence) => {\n let geofenceGeoJSON;\n geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (geofence.shape == 'C') {\n bounds = [\n ...bounds,\n L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0])\n ];\n } else if (geofence.shape == 'R') {\n bounds = [\n ...bounds,\n ...geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]]))\n ];\n } else if (geofence.shape == 'P') {\n bounds = [\n ...bounds,\n ...(geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => L.latLng([coords[1], coords[0]]))\n : geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]])))\n ];\n } else if (geofence.shape == 'U') {\n bounds = [\n ...bounds,\n _.flatten(\n geofenceGeoJSON.coordinates.map((coordinate) =>\n coordinate.map((coords) =>\n coords[1] && coords[0] ? L.latLng([coords[1], coords[0]]) : null\n )\n )\n )\n ];\n }\n });\n }\n if (setMapPositionToUnitBounds) {\n units\n .filter((unit) => unit?.latitude != null && unit?.longitude != null)\n .map((unit) => {\n bounds = [...bounds, L.latLng(unit.latitude, unit.longitude)];\n });\n }\n if (setMapPositionToUnitPositionsBounds) {\n units\n .filter((unit) => unit?.historicalPositions?.polyline)\n .map((unit) => {\n unit.historicalPositions.polyline.map((position) => {\n bounds = [...bounds, L.latLng(position.latitude, position.longitude)];\n });\n });\n }\n if (setMapPositionToRouteBounds) {\n routes.map((route) => {\n bounds = [...bounds, ...getRouteBounds(route)];\n });\n }\n if (\n (setMapPositionToGeofenceBounds ||\n setMapPositionToLocationBounds ||\n setMapPositionToUnitBounds ||\n setMapPositionToUnitPositionsBounds ||\n setMapPositionToRouteBounds) &&\n bounds.length > 0\n ) {\n map.flyToBounds(\n L.latLngBounds(bounds.filter((bound) => bound != null && bound instanceof L.LatLng)),\n {\n paddingBottomRight: paddingBottomRight ?? undefined,\n paddingTopLeft: paddingTopLeft ?? undefined,\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n };\n\n const WKBtoGeoJSON = (wkt) => {\n // let wkbBuffer = new Buffer(hex);\n let geometry = wkx.Geometry.parse(wkt);\n\n return geometry.toGeoJSON();\n };\n useDeepCompareEffect(() => {\n if (\n isSelectedSomething == null ||\n Object.values(isSelectedSomething).filter((s) => s).length === 0\n )\n zoomMapToObjects();\n }, [\n isSelectedSomething,\n geofences,\n locations,\n setMapPositionToGeofenceBounds,\n rerenderMapObjectBounds\n ]);\n return null;\n};\n\nMapObjectsBounds.defaultProps = {\n setMapPositionToGeofenceBounds: false,\n setMapPositionToLocationBounds: false,\n geofences: [],\n locations: []\n};\n\nexport default MapObjectsBounds;\n","'use strict';\n\n/**\n * Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm)\n *\n * Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js)\n * by [Mark McClure](http://facstaff.unca.edu/mcmcclur/)\n *\n * @module polyline\n */\n\nvar polyline = {};\n\nfunction encode(coordinate, factor) {\n coordinate = Math.round(coordinate * factor);\n coordinate <<= 1;\n if (coordinate < 0) {\n coordinate = ~coordinate;\n }\n var output = '';\n while (coordinate >= 0x20) {\n output += String.fromCharCode((0x20 | (coordinate & 0x1f)) + 63);\n coordinate >>= 5;\n }\n output += String.fromCharCode(coordinate + 63);\n return output;\n}\n\n/**\n * Decodes to a [latitude, longitude] coordinates array.\n *\n * This is adapted from the implementation in Project-OSRM.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Array}\n *\n * @see https://github.com/Project-OSRM/osrm-frontend/blob/master/WebContent/routing/OSRM.RoutingGeometry.js\n */\npolyline.decode = function (str, precision) {\n var index = 0,\n lat = 0,\n lng = 0,\n coordinates = [],\n shift = 0,\n result = 0,\n byte = null,\n latitude_change,\n longitude_change,\n factor = Math.pow(10, precision || 5);\n\n // Coordinates have variable length when encoded, so just keep\n // track of whether we've hit the end of the string. In each\n // loop iteration, a single coordinate is decoded.\n while (index < str.length) {\n // Reset shift, result, and byte\n byte = null;\n shift = 0;\n result = 0;\n\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n\n latitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n\n shift = result = 0;\n\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n\n longitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n\n lat += latitude_change;\n lng += longitude_change;\n\n coordinates.push([lat / factor, lng / factor]);\n }\n\n return coordinates;\n};\n\n/**\n * Encodes the given [latitude, longitude] coordinates array.\n *\n * @param {Array.>} coordinates\n * @param {Number} precision\n * @returns {String}\n */\npolyline.encode = function (coordinates, precision) {\n if (!coordinates.length) {\n return '';\n }\n\n var factor = Math.pow(10, precision || 5),\n output = encode(coordinates[0][0], factor) + encode(coordinates[0][1], factor);\n\n for (var i = 1; i < coordinates.length; i++) {\n var a = coordinates[i],\n b = coordinates[i - 1];\n output += encode(a[0] - b[0], factor);\n output += encode(a[1] - b[1], factor);\n }\n\n return output;\n};\n\nfunction flipped(coords) {\n var flipped = [];\n for (var i = 0; i < coords.length; i++) {\n flipped.push(coords[i].slice().reverse());\n }\n return flipped;\n}\n\n/**\n * Encodes a GeoJSON LineString feature/geometry.\n *\n * @param {Object} geojson\n * @param {Number} precision\n * @returns {String}\n */\npolyline.fromGeoJSON = function (geojson, precision) {\n if (geojson && geojson.type === 'Feature') {\n geojson = geojson.geometry;\n }\n if (!geojson || geojson.type !== 'LineString') {\n throw new Error('Input must be a GeoJSON LineString');\n }\n return polyline.encode(flipped(geojson.coordinates), precision);\n};\n\n/**\n * Decodes to a GeoJSON LineString geometry.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Object}\n */\npolyline.toGeoJSON = function (str, precision) {\n var coords = polyline.decode(str, precision);\n return {\n type: 'LineString',\n coordinates: flipped(coords)\n };\n};\n\nexport default polyline;\n","import polyline from './poliyline';\n\nL.Routing = L.Routing || {};\nL.Routing.Google = L.Class.extend({\n options: {},\n initialize: function (options) {\n this.options = L.extend(this.options, {\n travelMode: google.maps.TravelMode.DRIVING,\n unitSystem: google.maps.UnitSystem.METRIC,\n provideRouteAlternatives: true\n });\n this.directionsService = new google.maps.DirectionsService();\n L.Util.setOptions(this, options);\n },\n _flatten: function (arrs) {\n var arr = [],\n i;\n for (i = 0; i < arrs.length; i++) arr = arr.concat(arrs[i]);\n return arr;\n },\n _decodePolyline: function (geometry) {\n var coords = polyline.decode(geometry, 5),\n latlngs = new Array(coords.length),\n i;\n for (i = 0; i < coords.length; i++) {\n latlngs[i] = new L.LatLng(coords[i][0], coords[i][1]);\n }\n\n return latlngs;\n },\n _maneuverToInstructionType: function (maneuver) {\n switch (maneuver) {\n case 'turn-right':\n return 'Right';\n case 'turn-slight-right':\n case 'ramp-right':\n case 'fork-right':\n return 'SlightRight';\n case 'turn-sharp-right':\n return 'SharpRight';\n case 'turn-left':\n return 'Left';\n case 'turn-slight-left':\n case 'ramp-left':\n case 'fork-left':\n return 'SlightLeft';\n case 'turn-sharp-left':\n return 'SharpLeft';\n case 'uturn-right':\n case 'uturn-left':\n return 'TurnAround';\n case 'roundabout-left':\n case 'roundabout-right':\n return 'Roundabout';\n default:\n return 'Straight';\n }\n },\n route: function (waypoints, callback, context, options) {\n var that = this;\n var directions = L.extend({}, this.options);\n if (options.geometryOnly) {\n directions.provideRouteAlternatives = false;\n }\n directions.origin = waypoints[0].latLng.lat + ',' + waypoints[0].latLng.lng;\n directions.destination =\n waypoints[waypoints.length - 1].latLng.lat + ',' + waypoints[waypoints.length - 1].latLng.lng;\n directions.waypoints = waypoints.slice(1, waypoints.length - 1).map(function (waypoint) {\n return {\n location: waypoint.latLng.lat + ',' + waypoint.latLng.lng,\n stopover: false\n };\n });\n\n this.directionsService.route(directions, function (result, status) {\n if (status == google.maps.DirectionsStatus.OK) {\n var r = result.routes.map(function (route) {\n var iroute = {},\n i,\n j,\n step;\n iroute.name = route.summary;\n iroute.summary = {\n totalDistance: that\n ._flatten(\n route.legs.map(function (leg) {\n return leg.steps.map(function (step) {\n return step.distance.value;\n });\n })\n )\n .reduce(function (previousValue, currentValue) {\n return previousValue + currentValue;\n }),\n totalTime: that\n ._flatten(\n route.legs.map(function (leg) {\n return leg.steps.map(function (step) {\n return step.duration.value;\n });\n })\n )\n .reduce(function (previousValue, currentValue) {\n return previousValue + currentValue;\n })\n };\n\n iroute.coordinates = [];\n var indices = [],\n indicesSecondary = [];\n\n var waypointIndices = [0];\n var nWaypoint = 1;\n\n for (i = 0; i < route.legs.length; i++) {\n indicesSecondary = [];\n var stepsPoints = [];\n\n for (j = 0; j < route.legs[i].steps.length; j++) {\n step = route.legs[i].steps[j];\n var points = that._decodePolyline(step.polyline.points);\n stepsPoints[j] = points.length;\n indicesSecondary.push(iroute.coordinates.length);\n iroute.coordinates = iroute.coordinates.concat(points);\n }\n indices.push(indicesSecondary);\n\n for (var j = 0; j < route.legs[i].via_waypoints.length; j++) {\n var si = route.legs[i].via_waypoint[j].step_index;\n var sp = route.legs[i].via_waypoint[j].step_interpolation;\n\n waypointIndices[nWaypoint] = indicesSecondary[si] + Math.floor(stepsPoints[si] * sp);\n nWaypoint++;\n }\n }\n\n iroute.inputWaypoints = waypoints || [];\n iroute.waypoints = iroute.actualWaypoints = waypoints;\n\n waypointIndices[nWaypoint] = iroute.coordinates.length - 1;\n iroute.waypointIndices = waypointIndices;\n\n if (!options.geometryOnly) {\n iroute.instructions = [];\n for (i = 0; i < route.legs.length; i++)\n for (j = 0; j < route.legs[i].steps.length; j++) {\n step = route.legs[i].steps[j];\n iroute.instructions.push({\n type: that._maneuverToInstructionType(step.maneuver),\n text: step.instructions.replace(/<(?:.|\\n)*?>/gm, ''),\n distance: step.distance.value,\n time: step.duration.value,\n index: indices[i][j],\n exit: null //instr.exit_number\n });\n }\n }\n return iroute;\n });\n try {\n callback.call(context || callback, null, r);\n } catch {}\n } else {\n try {\n callback.call(context, {\n status: status,\n message: result\n });\n } catch {}\n }\n });\n return this;\n }\n});\n\nL.Routing.google = function (options) {\n return new L.Routing.Google(options);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genérico que se utiliza en muchas pantallas de la aplicación.\n\n// @ts-nocheck\nimport '@geoman-io/leaflet-geoman-free';\nimport 'leaflet-routing-machine';\nimport { useState } from 'react';\nimport { Edit2, MapPin, MoreVertical, Plus, Trash } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { Col, InputGroupText, ListGroupItem, Media, Row, Tooltip } from 'reactstrap';\nimport { Controller } from 'react-hook-form';\nimport Icon from 'utility/icomoon';\nimport LocationsDropdownInput from 'views/formComponents/LocationDropDown';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport '../../utils/lrm-google';\n\ninterface Props {\n control: any;\n formValues: any;\n checkpoints: any[];\n createdLocations: any[];\n addCheckpoint: any;\n editCheckpoint: any;\n editPath: any;\n deleteCheckpoint: any;\n addNewMarkerOnMap: any;\n addGoogleLocationToCheckpoint: any;\n addLocationToCheckpoint: any;\n deleteLocationOfCheckpoint: any;\n item: any;\n index: number;\n}\n\nconst RouteItem = (props: Props) => {\n const {\n control,\n formValues,\n checkpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n item,\n index\n } = props;\n const intl = useIntl();\n const [mouseEnter, setMouseEnter] = useState(false);\n const [tooltipAddOpen, setTooltipAddOpen] = useState(false);\n const [tooltipEditOpen, setTooltipEditOpen] = useState(false);\n const [tooltipEditOpen2, setTooltipEditOpen2] = useState(false);\n const [tooltipEditSegmentOpen, setTooltipEditSegmentOpen] = useState(false);\n const [tooltipDeleteOpen, setTooltipDeleteOpen] = useState(false);\n\n const locations = useSelector((state) => {\n const dropDownLocations = [...locationSelectors.getLocationsList(state), ...createdLocations];\n return (\n item.locationId && !dropDownLocations.map((loc) => loc.locationId).includes(item.locationId)\n ? [...dropDownLocations, item]\n : dropDownLocations\n ).map((loc) =>\n loc.locationId === item.locationId ? { ...loc, locationName: item.checkpointName } : loc\n );\n });\n\n return (\n setMouseEnter(true)}\n onMouseLeave={() => setMouseEnter(false)}\n >\n \n \n item.latitude != null &&\n item.longitude != null &&\n editCheckpoint(\n item.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n )\n }\n >\n {index === 0 ? (\n \n ) : index === checkpoints.length - 1 ? (\n \n ) : (\n \n )}\n {item.latitude != null && item.longitude != null && (\n setTooltipEditOpen2(!tooltipEditOpen2)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n index === 0\n ? 'routes.editOrigin'\n : index === checkpoints.length - 1\n ? 'routes.editDestination'\n : 'routes.editCheckpoint'\n })}\n \n )}\n \n \n (\n {\n value\n ? formValues['checkpointId-' + item.checkpointId.toString()] !== value &&\n (value?.googleLocation\n ? addGoogleLocationToCheckpoint(item.checkpointId, value)\n : addLocationToCheckpoint(item.checkpointId, value))\n : formValues['checkpointId-' + item.checkpointId.toString()] &&\n deleteLocationOfCheckpoint(item.checkpointId);\n }}\n isInModal={true}\n forceinitialvalue={item.locationId}\n options={locations.map((location) => ({\n value: location.locationId,\n label: location.locationName\n }))}\n appendcomponent={\n <>\n \n item.latitude != null && item.longitude != null\n ? editCheckpoint(\n item.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n )\n : addNewMarkerOnMap(index)\n }\n >\n {item.latitude != null && item.longitude != null ? (\n \n ) : (\n \n )}\n setTooltipEditOpen(!tooltipEditOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n item.latitude != null && item.longitude != null\n ? index === 0\n ? 'routes.editOrigin'\n : index === checkpoints.length - 1\n ? 'routes.editDestination'\n : 'routes.editCheckpoint'\n : 'routes.selectPointOnMap'\n })}\n \n \n {checkpoints.length > 2 && (\n deleteCheckpoint(item.checkpointId)}\n >\n \n {/* setTooltipDeleteOpen(!tooltipDeleteOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n index === 0\n ? 'routes.deleteOrigin'\n : index === checkpoints.length - 1\n ? 'routes.deleteDestination'\n : 'routes.deleteCheckpoint'\n })}\n */}\n \n )}\n \n }\n placeholder={intl.formatMessage({\n id: 'locations.locationPlaceholder'\n })}\n />\n )}\n />\n \n \n \n {index !== checkpoints.length - 1 && (\n <>\n editPath(index)}\n />\n setTooltipEditSegmentOpen(!tooltipEditSegmentOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id: 'routes.editSegment'\n })}\n \n \n )}\n
\n {mouseEnter && (\n <>\n addCheckpoint(index)} />\n setTooltipAddOpen(!tooltipAddOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id: 'routes.addNewCheckPoint'\n })}\n \n \n )}\n
\n
\n \n );\n};\n\nRouteItem.defaultProps = {\n inputs: [],\n initialTab: 0,\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default RouteItem;\n","import { useEffect, useState } from 'react';\nimport { Minus } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Media, Row } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport MapsBasic from '../..';\nimport * as routeCheckpointsActions from '../../../../screens/Routes/actions/routeCheckpoints';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\n\ninterface Props {\n routeId: any;\n route: any;\n title: any;\n confirmText: any;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n hasButtonSubmit: boolean;\n hasButtonCancel: boolean;\n isGeneratingRoute: boolean;\n alternateRoutes: any;\n setAlternateRoutes: any;\n membership: any;\n}\n\nconst SlidingPaneAddAlternateRoute = (props: Props) => {\n const {\n routeId,\n route,\n title,\n confirmText,\n isOpenSlidingPane,\n closeSlidingPane,\n hasButtonSubmit,\n hasButtonCancel,\n isGeneratingRoute,\n alternateRoutes,\n setAlternateRoutes,\n membership\n } = props;\n\n const intl = useIntl();\n const dispatch = useDispatch();\n const { control, handleSubmit, watch } = useForm();\n const formValues = watch();\n const [rerenderMap, setRerenderMap] = useState(new Date());\n const [showOriginalRoute, setShowOriginalRoute] = useState(true);\n const [showAlternateRoute, setShowAlternateRoute] = useState(true);\n\n const { routes, routesOnMap } = useSelector((state) => {\n const selectedRoute = routeSelectors.getRoute(state, formValues?.alternateRoute);\n return {\n routes: routeSelectors.getRoutesListByMembership(state, membership),\n routesOnMap: [\n !isGeneratingRoute && showOriginalRoute ? route : undefined,\n selectedRoute && showAlternateRoute ? { ...selectedRoute, pathColor: 'darkRed' } : undefined\n ].filter((route) => route)\n };\n });\n useEffect(() => {\n if (formValues?.alternateRoute) {\n dispatch(routeCheckpointsActions.startFetchingRouteCheckpoints(formValues?.alternateRoute));\n }\n }, [formValues?.alternateRoute]);\n\n useDeepCompareEffect(() => {\n setRerenderMap(new Date());\n }, [routesOnMap]);\n\n return (\n closeSlidingPane()}\n >\n 0\n ? {\n showRoutes: true,\n isMapFullScreen: false,\n useSlidingPaneRouteInformation: false,\n routes: routesOnMap\n }\n : {}\n }\n mapObjectsBoundsOptions={{\n setMapPositionToRouteBounds: true,\n routes: routesOnMap,\n rerenderMapObjectBounds: rerenderMap\n }}\n >\n \n \n (\n \n routeId !== route.routeId &&\n !alternateRoutes.map((ar) => ar.routeId).includes(route.routeId) &&\n (!formValues?.membership?.organizationId ||\n formValues.membership.organizationId === route.organizationId)\n )\n .map((route) => ({\n id: route.routeId,\n value: route.routeId,\n label: route.routeName\n }))}\n label={intl.formatMessage({\n id: 'routes.alternateRoute'\n })}\n placeholder={intl.formatMessage({ id: 'routes.routePlaceholder' })}\n />\n )}\n />\n \n \n
\n \n \n \n \n {intl.formatMessage({ id: 'routes.originalRoute' })}\n setShowOriginalRoute(!showOriginalRoute)}\n id={'originalRouteEyeButton'}\n />\n \n \n \n \n \n {intl.formatMessage({ id: 'routes.alternateRoute' })}\n {formValues?.alternateRoute && (\n setShowAlternateRoute(!showAlternateRoute)}\n id={'alternateRouteEyeButton'}\n />\n )}\n \n \n \n \n \n {hasButtonSubmit && (\n {\n setAlternateRoutes([\n ...alternateRoutes,\n ...routes.filter((route) => route.routeId === values.alternateRoute)\n ]);\n closeSlidingPane();\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPane()}\n >\n \n \n )}\n \n \n \n );\n};\n\nSlidingPaneAddAlternateRoute.defaultProps = {\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default SlidingPaneAddAlternateRoute;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport { useState } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { ReactSortable } from 'react-sortablejs';\nimport { Button, Col, FormGroup, Label, Row, Spinner } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport AddButton from 'views/components/AddButton';\nimport DeleteButton from 'views/components/DeleteButton';\nimport Table from 'views/components/Table';\nimport TabsWrapper from 'views/components/TabsWrapper';\nimport Toolbar from 'views/components/Toolbar';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport WebtrackCustomInput from 'views/formComponents/WebtrackCustomInput';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\nimport RouteItem from '../RouteItem';\nimport SlidingPaneAddAlternateRoute from '../SlidingPaneAddAlternateRoute';\n\ninterface Props {\n routeId: any;\n width: any;\n title: any;\n subtitle: any;\n control: any;\n handleSubmit: any;\n formValues: any;\n errors: any;\n initialTab: number;\n confirmText: any;\n isOpenSlidingPane: any;\n closeSlidingPaneForm: any;\n inputs: any[];\n isLoading: boolean;\n hasButtonSubmit: boolean;\n hasButtonCancel: boolean;\n action: any;\n isGeneratingRoute: any;\n distanceRoute: any;\n paths: any[];\n checkpoints: any[];\n setCheckpoints: any;\n createdLocations: any[];\n addCheckpoint: any;\n editCheckpoint: any;\n editPath: any;\n deleteCheckpoint: any;\n addNewMarkerOnMap: any;\n addGoogleLocationToCheckpoint: any;\n addLocationToCheckpoint: any;\n deleteLocationOfCheckpoint: any;\n alternateRoutes: any;\n setAlternateRoutes: any;\n}\n\nconst columns = [\n {\n fieldName: 'routeId',\n headerText: 'common.id'\n },\n {\n fieldName: 'routeName',\n headerText: 'routes.name'\n },\n {\n fieldName: 'abbreviation',\n headerText: 'routes.abbreviation'\n },\n {\n fieldName: 'distanceFormat',\n headerText: 'routes.distance',\n metric: 'distance',\n type: 'number',\n formatColumn: 'N2'\n },\n {\n fieldName: 'sourceName',\n headerText: 'routes.origin'\n },\n {\n fieldName: 'targetName',\n headerText: 'routes.destination'\n },\n {\n fieldName: 'checkPoints',\n headerText: 'routes.checkpoints'\n }\n];\n\nconst SlidingPaneEditRoute = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n routeId,\n width,\n title,\n subtitle,\n confirmText,\n initialTab,\n isOpenSlidingPane,\n closeSlidingPaneForm,\n inputs,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n isGeneratingRoute,\n handleSubmit,\n control,\n formValues,\n errors,\n isLoading,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n alternateRoutes,\n setAlternateRoutes\n } = props;\n\n const intl = useIntl();\n const [selectedTab, setSelectedTab] = useState(initialTab);\n const [selected, changeSelected] = useState([]);\n const [isOpenSlidingPaneAddAlternateRoute, setSlidingPaneAddAlternateRoute] =\n useState(false);\n\n const { routes, authSystems } = useSelector((state) => ({\n routes: routeSelectors.getRoutesList(state),\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n useDeepCompareEffect(() => {\n const errorsKeys = Object.keys(errors);\n if (errorsKeys.length > 0) {\n if (\n selectedTab === 0 &&\n errorsKeys.filter((key) => ['abbreviation', 'routeName'].includes(key)).length === 0\n )\n setSelectedTab(1);\n else if (\n selectedTab === 1 &&\n errorsKeys.filter((key) => key.includes('checkpointId')).length === 0\n )\n setSelectedTab(0);\n else if (\n selectedTab === 2 &&\n errorsKeys.filter((key) => ['abbreviation', 'routeName'].includes(key)).length === 0\n )\n setSelectedTab(1);\n else if (\n selectedTab === 2 &&\n errorsKeys.filter((key) => key.includes('checkpointId')).length === 0\n )\n setSelectedTab(0);\n else setSelectedTab(0);\n }\n }, [Object.keys(errors)]);\n\n const closeSlidingPane = (isSaving) => {\n closeSlidingPaneForm(isSaving);\n };\n\n return (\n <>\n closeSlidingPane(false)}\n >\n {\n setSelectedTab(tabIndex);\n }}\n useCardContent={false}\n tabs={[\n {\n tabId: 0,\n title: 'routes.generalInformation'\n },\n {\n tabId: 1,\n icon: 'Route',\n title: 'routes.routeDesign'\n },\n {\n tabId: 2,\n icon: 'Shuffle',\n title: 'routes.alternateRoutes'\n }\n ]}\n tabsContent={[\n {\n tabId: 0,\n component: (\n \n {inputs.map((input, i) => (\n \n {input.subtitle && (\n
\n {input.subtitle.split('\\n').map((i, key) => {\n return key === 0 ? (\n {i}\n ) : (\n \n
\n {i}\n
\n );\n })}\n
\n )}\n \n \n ))}\n
\n )\n },\n {\n tabId: 1,\n component: (\n \n {isLoading ? (\n \n
\n
\n \n
\n
\n \n ) : (\n \n \n
\n \n \n
\n
\n \n )}\n \n \n {checkpoints.map((item, index) => (\n \n ))}\n \n \n
\n )\n },\n {\n tabId: 2,\n component: (\n <>\n setSlidingPaneAddAlternateRoute(true)}\n />,\n {\n setAlternateRoutes(\n alternateRoutes.filter((route) => route.routeId !== selected[0].routeId)\n );\n }}\n />\n ]}\n />\n \n \n )\n }\n ]}\n />\n \n \n {hasButtonSubmit && (\n {\n action(values);\n closeSlidingPane(true);\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPane(false)}\n >\n \n \n )}\n \n \n \n \n i === 0\n ? { ...chk, segmentPath: [] }\n : {\n ...chk,\n segmentPath: paths[i - 1]?.polyline?.getLatLngs()?.map((latlng) => ({\n latitude: latlng.lat,\n longitude: latlng.lng\n }))\n }\n )\n }}\n title={intl.formatMessage({ id: 'routes.alternateRoute' })}\n isGeneratingRoute={isGeneratingRoute}\n alternateRoutes={alternateRoutes}\n setAlternateRoutes={setAlternateRoutes}\n membership={formValues?.membership}\n isOpenSlidingPane={isOpenSlidingPaneAddAlternateRoute}\n closeSlidingPane={() => setSlidingPaneAddAlternateRoute(false)}\n confirmText={intl.formatMessage({ id: 'routes.addAlternateRoute' })}\n />\n \n );\n};\n\nSlidingPaneEditRoute.defaultProps = {\n inputs: [],\n initialTab: 0,\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default SlidingPaneEditRoute;\n","// @ts-nocheck\nimport '@geoman-io/leaflet-geoman-free';\nimport L, { polyline } from 'leaflet';\nimport 'leaflet-toolbar';\nimport 'leaflet.icon.glyph';\nimport React, { useEffect, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FormGroup, Label } from 'reactstrap';\nimport simplify from 'simplify-geometry';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n getIcon,\n getMarker,\n globalNotificationFrecs,\n routesCheckpointsIcons,\n routesEvents,\n startTimeWindow\n} from 'views/screens/Routes/utils';\nimport { geocodeByLatLng } from 'react-google-places-autocomplete';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport useGetAlternateRoutes from 'views/screens/Routes/hooks/useGetAlternateRoutes';\n\nexport interface MapRouteEditOptions {\n showRoute: boolean;\n route: any;\n routeCheckpoints: any;\n routePaths: any;\n setEditingRouteParent?: any;\n}\n\nconst getNullIfNaN = (data: unknown): null | number => {\n const converted = Number(data);\n\n return isNaN(converted) ? null : converted;\n};\n\nexport const useMapRouteEdit = (props: MapRouteEditOptions) => {\n const { route, routePaths, routeCheckpoints, setEditingRouteParent } = props;\n const { control, handleSubmit, watch, formState } = useForm();\n const intl = useIntl();\n const map = useMap();\n const dispatch = useDispatch();\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n //States to create new locations\n const isGeneratingRouteRef = React.useRef(false);\n const useCenterRoute = React.useRef(false);\n const [isStartingEdit, setIsStartingEdit] = useState(false);\n const [distanceRoute, setDistanceRoute] = useState({ distance: 0 });\n const counterGenerateRouteRef = React.useRef(0);\n const [checkpoints, setCheckpoints] = useState([]);\n const checkpointsRef = React.useRef(checkpoints);\n const [paths, setPaths] = useState(null);\n const pathsRef = React.useRef(paths);\n const [drawingRouteCheckpoint, setDrawingRouteCheckpoint] = useState(null);\n const drawingRouteCheckpointRef = React.useRef(drawingRouteCheckpoint);\n const [createdLocations, setCreatedLocations] = useState([]);\n const createdLocationsRef = React.useRef(createdLocations);\n const [isOpenSlidingPaneEditRoute, setOpenSlidingPaneEditRoute] = useState(false);\n const [widthSlidingPaneEditRoute, setWidthSlidingPaneEditRoute] = useState('50rem');\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const [slidingPaneEditRoutesProps, setSlidingPaneEditRouteProps] = useState({ inputs: [] });\n const [slidingPaneFormProps, setSlidingPaneFormProps] = useState({ inputs: [] });\n const slidingPaneFormPropsRef = React.useRef(slidingPaneFormProps);\n const [editingRoute, setEditingRoute] = useState(undefined);\n const editingRouteRef = React.useRef(editingRoute);\n const [copyPolylineLatLngs, setCopyPolylineLatLngs] = useState({});\n const copyPolylineLatLngsRef = React.useRef(copyPolylineLatLngs);\n const [alternateRoutes, setAlternateRoutes] = useState([]);\n const alternateRoutesRef = React.useRef(alternateRoutes);\n\n const formValues = watch();\n const { locations, parsers, authSystems } = useSelector((state) => ({\n locations: locationSelectors.getLocationsList(state),\n authSystems: authSelectors.getAuthSystems(state),\n parsers: authSelectors.getParsers(state)\n }));\n\n const { data, isFetching } = useGetAlternateRoutes(editingRoute?.routeId);\n\n useEffect(() => {\n if (!isFetching) setAlternateRoutes(data);\n }, [isFetching]);\n\n useEffect(() => {\n editingRouteRef.current = editingRoute;\n if (editingRoute != undefined) {\n editRoute();\n }\n }, [editingRoute]);\n\n //Se actualiza la distancia Format\n useEffect(() => {\n setDistanceRoute({\n ...distanceRoute,\n distanceFormat: parsers\n .convertMetersToAuthUserDistanceSystem(distanceRoute.distance)\n .toFixed(2)\n });\n }, [distanceRoute?.distance]);\n\n useEffect(() => {\n deleteObjectsOnMap();\n if (routePaths.length > 0) {\n setIsStartingEdit(true);\n const newLocations = routeCheckpoints\n .filter((checkpoint) => !checkpoint.locationId)\n .map((checkpoint) => ({\n locationId: uuidv4(),\n checkpointId: checkpoint.checkpointId,\n locationName: checkpoint.checkpointName,\n longitude: checkpoint.longitude,\n latitude: checkpoint.latitude,\n radius: checkpoint.radius\n }));\n setCreatedLocations(newLocations);\n setCheckpoints(\n routeCheckpoints.map((checkpoint) => {\n return checkpoint.locationId\n ? checkpoint\n : {\n ...checkpoint,\n locationId: newLocations.filter(\n (loc) => loc.checkpointId === checkpoint.checkpointId\n )[0].locationId\n };\n })\n );\n setPaths(\n routePaths.map((path, i) => {\n const polyline = path.polyline;\n polyline.addTo(map);\n polyline.on('click', (e) => {\n L.DomEvent.stopPropagation(e);\n editPath(i);\n });\n return {\n ...path,\n secondsSegmentStopTime:\n path?.segmentStopAuthorized && [false, 0].includes(path?.segmentWithoutStopTime)\n ? path?.segmentStopTime * 60\n : undefined,\n secondsSegmentTripMinTime: path?.segmentTripMinTime,\n secondsSegmentTripMaxTime: path?.segmentTripMaxTime,\n polyline\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance: route.distance });\n } else {\n setCreatedLocations([]);\n setCheckpoints(routeCheckpoints);\n setPaths(routePaths);\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n }\n setSlidingPaneEditRouteProps({ inputs: [] });\n setEditingRoute(route);\n }, [route]);\n\n useDeepCompareEffect(() => {\n if (!isGeneratingRouteRef.current) {\n const lastCheckpointsRef = checkpointsRef.current;\n let addedLocation = null;\n if (\n !(\n lastCheckpointsRef.length == checkpoints.length &&\n lastCheckpointsRef.every((element, index) => {\n //Si se agrego o cambio una referencia se guarda la informaccion del checkpoint\n if (\n !checkpoints\n .filter((chk) => chk.locationId)\n .map((chk) => chk.locationId)\n .includes(element.locationId)\n )\n addedLocation = [\n element.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n ];\n\n return (\n element.latitude === checkpoints[index].latitude &&\n element.longitude === checkpoints[index].longitude\n );\n })\n )\n ) {\n //Se eliminan los markers antiguos\n if (!isStartingEdit) deleteObjectsOnMap();\n //Se actualizan los markers\n updateMarkersOnMap();\n //Si se agrego o cambio una referencia se procede a editar el checkpoint\n if (addedLocation) editCheckpoint(...addedLocation);\n //Se actualizan los paths\n if (!isStartingEdit) updatePathsOnMap();\n else setIsStartingEdit(false);\n }\n }\n }, [checkpoints, isGeneratingRouteRef.current]);\n\n useEffect(() => {\n pathsRef.current = paths;\n //Se centra en el mapa\n if (!isOpenSlidingPaneForm) centerRoute();\n useCenterRoute.current = true;\n }, [paths]);\n\n useEffect(() => {\n slidingPaneFormPropsRef.current = slidingPaneFormProps;\n }, [slidingPaneFormProps]);\n\n useEffect(() => {\n copyPolylineLatLngsRef.current = copyPolylineLatLngs;\n }, [copyPolylineLatLngs]);\n\n useDeepCompareEffect(() => {\n createdLocationsRef.current = createdLocations;\n }, [createdLocations]);\n\n useEffect(() => {\n drawingRouteCheckpointRef.current = drawingRouteCheckpoint;\n }, [drawingRouteCheckpoint]);\n\n useEffect(() => {\n alternateRoutesRef.current = alternateRoutes;\n }, [alternateRoutes]);\n\n const refreshTooltips = (type) => {\n const customTranslation = {\n tooltips: {\n placeMarker: intl.formatMessage({\n id:\n type === 1\n ? 'routes.addingOrigin'\n : type === 3\n ? 'routes.addingDestination'\n : 'routes.addingCheckpoint'\n })\n }\n };\n map.pm.setLang('customTranslation', customTranslation, intl.locale);\n };\n\n useEffect(() => {\n map.on('pm:create', (e) => {\n if (e.shape == 'Marker' && drawingRouteCheckpointRef.current) {\n setWidthSlidingPaneEditRoute('50rem');\n const { marker } = e;\n const radius = 150;\n const { lat, lng } = marker.getLatLng();\n if (lat && lng) {\n geocodeByLatLng({ lat, lng })\n .then((results) => {\n const routePlace = results.filter((r) => r.types.includes('route'))[0];\n const location = {\n locationId: uuidv4(),\n locationName: routePlace\n ? routePlace.formatted_address\n : results[0]?.formatted_address,\n longitude: lng,\n latitude: lat,\n radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(150)\n };\n addCreatedLocationToCheckpoint(marker, location);\n })\n .catch(() => {\n const location = {\n locationId: uuidv4(),\n locationName: intl.formatMessage({ id: 'routes.newCheckPoint' }),\n longitude: lng,\n latitude: lat,\n radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(150)\n };\n addCreatedLocationToCheckpoint(marker, location);\n });\n }\n }\n });\n }, []);\n\n const deleteObjectsOnMap = () => {\n checkpointsRef.current\n .filter((checkpoint) => checkpoint.marker)\n .map((checkpoint) => {\n if (checkpoint.marker) map.removeLayer(checkpoint.marker);\n if (checkpoint.rectangle) map.removeLayer(checkpoint.rectangle);\n });\n if (paths?.length > 0)\n paths.map((path) => {\n if (path.polyline) map.removeLayer(path.polyline);\n });\n };\n\n const addNewMarkerOnMap = (index) => {\n setDrawingRouteCheckpoint(checkpoints[index]);\n setWidthSlidingPaneEditRoute('0rem');\n refreshTooltips(index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2);\n map.pm.enableDraw('Marker', {\n continueDrawing: false, //Disable After Create\n markerEditable: true,\n markerStyle: {\n icon: getIcon(\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index,\n checkpoints[index].iconId\n )\n }\n });\n };\n\n const updateMarkersOnMap = () => {\n checkpointsRef.current = checkpoints.map((checkpoint, i) => {\n if (checkpoint.latitude != null && checkpoint.longitude != null) {\n const marker = getMarker(\n i === 0 ? 1 : i === checkpoints.length - 1 ? 3 : 2,\n i,\n checkpoint.iconId === 0 ? undefined : checkpoint.iconId,\n L.latLng(checkpoint.latitude, checkpoint.longitude)\n );\n marker.addTo(map);\n marker.on('pm:dragend', (e) => {\n const { lat, lng } = e.target.getLatLng();\n useCenterRoute.current = false;\n setCheckpoints(\n checkpointsRef.current.map((chkpt) =>\n chkpt.checkpointId === checkpoint.checkpointId\n ? {\n ...chkpt,\n longitude: lng,\n latitude: lat\n }\n : chkpt\n )\n );\n });\n marker.on('click', (e) => {\n setTimeout(() => {\n if (!isGeneratingRouteRef.current)\n editCheckpoint(\n checkpoint.checkpointId,\n i === 0 ? 1 : i === checkpoints.length - 1 ? 3 : 2,\n i\n );\n }, 100);\n });\n marker.pm.enable({});\n\n const rectangle = L.rectangle(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, checkpoint.radius),\n { color: primary }\n );\n rectangle.addTo(map);\n\n return {\n ...checkpoint,\n //Se actualizan los markers\n marker,\n rectangle\n };\n } else return checkpoint;\n });\n\n //Se centra en el mapa\n centerRoute();\n\n if (checkpointsRef.current.filter((checkpoint) => checkpoint.marker).length > 1)\n setCheckpoints(checkpointsRef.current);\n };\n\n const updatePathsOnMap = () => {\n const checkpointsWithLatLng = checkpointsRef.current.filter((checkpoint) => checkpoint.marker);\n\n if (checkpointsWithLatLng.length > 1) {\n //Se crea el control de las rutas\n const control = L.Routing.control({\n waypoints: checkpointsWithLatLng.map((checkpoint) =>\n L.latLng(checkpoint.latitude, checkpoint.longitude)\n ),\n router:\n counterGenerateRouteRef.current >= 4\n ? L.Routing.google()\n : new L.Routing.OSRMv1({ serviceUrl: 'https://osrm.webtrack.online/route/v1' })\n });\n\n control.on('routingstart', () => {\n isGeneratingRouteRef.current = true;\n });\n\n control.on('routingerror', (error) => {\n if (error.error.status !== -3) {\n counterGenerateRouteRef.current = counterGenerateRouteRef.current + 1;\n updatePathsOnMap();\n }\n });\n\n control.on('routesfound', (waypoints) => {\n isGeneratingRouteRef.current = false;\n if (waypoints?.routes[0].coordinates) {\n const coordinates = waypoints?.routes[0].coordinates;\n const waypointIndices = waypoints?.routes[0].waypointIndices;\n const paths = waypointIndices\n .map((index, i) =>\n i !== waypointIndices.length - 1\n ? simplify(\n [\n [\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i].latitude,\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i].longitude\n ],\n ...coordinates\n .slice(index, waypointIndices[i + 1] + 1)\n .map((latLng) => [latLng.lat, latLng.lng]),\n [\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i + 1].latitude,\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i + 1].longitude\n ]\n ],\n 0.0005 //55.5m\n ).map((point) => L.latLng(point[0], point[1]))\n : undefined\n )\n .filter((path) => path);\n\n //Se actualizan los paths\n var distance = 0;\n setPaths(\n paths.map((path, i) => {\n const polyline = L.polyline(path, { color: 'blue' });\n polyline.addTo(map);\n polyline.on('click', (e) => {\n L.DomEvent.stopPropagation(e);\n editPath(i);\n });\n const segmentDistance = polyline\n .getLatLngs()\n .map((point, j) =>\n j === 0 ? 0 : map.distance(polyline.getLatLngs()[j - 1], point)\n )\n .reduce((acc, distance) => acc + distance, 0);\n distance = distance + segmentDistance;\n return {\n polyline,\n segmentDistance\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance });\n }\n counterGenerateRouteRef.current = 0;\n });\n\n //Se genera la ruta\n control.route();\n } else {\n setPaths([]);\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n }\n };\n\n const updateDistances = () => {\n if (pathsRef.current?.length > 0) {\n var distance = 0;\n setPaths(\n pathsRef.current.map((path) => {\n const segmentDistance = path.polyline\n .getLatLngs()\n .map((point, j) =>\n j === 0 ? 0 : map.distance(path.polyline.getLatLngs()[j - 1], point)\n )\n .reduce((acc, distance) => acc + distance, 0);\n distance = distance + segmentDistance;\n return {\n ...path,\n segmentDistance\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance });\n }\n };\n\n const centerRoute = () => {\n if (useCenterRoute.current && checkpointsRef.current.filter((chk) => chk.marker).length > 0) {\n var latlngPolylines = [];\n if (pathsRef.current?.length > 0)\n pathsRef.current.map((path) =>\n path.polyline.getLatLngs().map((latLng) => latlngPolylines.push([latLng.lat, latLng.lng]))\n );\n\n const bounds = [\n ...checkpointsRef.current\n .filter((chk) => chk.marker)\n .map((chk) => [chk.latitude, chk.longitude]),\n ...latlngPolylines\n ];\n\n map.flyToBounds(bounds, {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n animate: map.getBoundsZoom(bounds, undefined, [700, 70]) !== map.getZoom()\n });\n }\n };\n\n const editRoute = () => {\n setOpenSlidingPaneEditRoute(false);\n setOpenSlidingPaneForm(false);\n setSlidingPaneEditRouteProps({\n title:\n editingRouteRef.current?.routeId && editingRouteRef.current?.routeName\n ? editingRouteRef.current?.routeName\n : intl.formatMessage({ id: 'routes.new' }),\n inputs: [\n {\n type: 'text',\n name: 'routeName',\n required: true,\n initialValue: editingRouteRef.current?.routeName || undefined,\n label: intl.formatMessage({ id: 'routes.name' })\n },\n {\n type: 'customersDropdown',\n name: 'customerId',\n initialValue: editingRouteRef.current?.customerId || undefined,\n isClearable: true,\n customersFilters: {}\n },\n {\n type: 'duration',\n name: 'completionTime',\n initialValue: editingRouteRef.current?.completionTimeByUser || undefined,\n label: intl.formatMessage({ id: 'routes.completionTime' })\n },\n {\n type: 'select',\n name: 'startTimeWindow',\n required: true,\n initialValue: editingRouteRef.current?.startTimeWindow || '0',\n options: startTimeWindow.map((option) => ({\n ...option,\n label: option.label + intl.formatMessage({ id: 'routes.minutes' })\n })),\n label: intl.formatMessage({ id: 'routes.startTimeWindow' })\n },\n {\n type: 'number',\n name: 'speedLimitFormat',\n initialValue: editingRouteRef.current?.speedLimitFormat || undefined,\n min: 0,\n max: parsers.convertKilometersPerHourToAuthUserSpeedSystem(120),\n metric: 'speed',\n label: intl.formatMessage({ id: 'routes.speedLimit' })\n },\n {\n type: 'text',\n name: 'abbreviation',\n required: true,\n initialValue: editingRouteRef.current?.abbreviation || undefined,\n label: intl.formatMessage({ id: 'routes.abbreviation' })\n },\n {\n type: 'text',\n name: 'privateCode',\n initialValue: editingRouteRef.current?.privateCode || undefined,\n label: intl.formatMessage({ id: 'routes.privateCode' })\n },\n {\n type: 'membership',\n name: 'membership',\n options: {\n colSize: '12',\n useOperator: false,\n useUserOrganization: true,\n useUserDivision: true,\n useUserSubdivision: true,\n setUserOrganization: true,\n setUserDivision: true,\n setUserSubdivision: true,\n showAllDivision: true,\n showAllSubdivision: true\n },\n initialValue: {\n organizationId: editingRouteRef.current?.organizationId || undefined,\n divisionId: editingRouteRef.current?.divisionId || undefined,\n subdivisionId: editingRouteRef.current?.subdivisionId || undefined\n }\n },\n {\n type: 'contactsDropdown',\n defaultContacts: editingRouteRef.current?.globalNotificationEmails || undefined,\n name: 'globalNotificationEmails',\n label: intl.formatMessage({ id: 'routes.globalNotificationEmails' })\n },\n {\n type: 'select',\n name: 'globalNotificationFrec',\n initialValue: editingRouteRef.current?.globalNotificationFrec || undefined,\n options: [\n {\n value: '0',\n label: intl.formatMessage({ id: 'routes.inactive' }),\n label_intl: intl.formatMessage({ id: 'routes.inactive' })\n },\n ...globalNotificationFrecs.map((option) => ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n }))\n ],\n label: intl.formatMessage({ id: 'routes.globalNotificationFrec' }),\n isClearable: true\n },\n {\n type: 'contactsDropdown',\n defaultContacts: editingRouteRef.current?.notificationEmails || undefined,\n name: 'notificationEmails',\n initialFetch: false,\n label: intl.formatMessage({ id: 'routes.notificationEmails' })\n },\n {\n type: 'multiSelect',\n name: 'notificationEvents',\n initialValue: editingRouteRef.current?.notificationEvents || undefined,\n options: routesEvents.map((option) => ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n })),\n label: intl.formatMessage({ id: 'routes.notificationEvents' })\n }\n ],\n action: (values) => {\n const action = editingRouteRef.current.routeId ? 'startEditingRoute' : 'startAddingRoute';\n var distances = [];\n var index = -1;\n var lastPointLatLngs = null;\n var distance = 0;\n dispatch(\n routeActions[action]({\n route: {\n routeId: editingRouteRef.current.routeId || editingRouteRef.current.newRouteId,\n ...values,\n ...values.membership,\n speedLimit: parsers.convertAuthUserSpeedSystemToKilometersPerHour(\n values.speedLimitFormat\n ),\n globalNotificationFrec: values?.globalNotificationFrec || '0',\n completionTimeByUser: values?.completionTime?.totalSeconds || 0,\n path: pathsRef.current\n .map((path, i) => {\n var segmentDistance = 0;\n return path.polyline\n .getLatLngs()\n .map((point, j) => {\n const pointDistance = lastPointLatLngs\n ? map.distance(lastPointLatLngs, point)\n : 0;\n lastPointLatLngs = point;\n segmentDistance = j === 0 ? 0 : segmentDistance + pointDistance;\n distance = distance + pointDistance;\n index = index + 1;\n if (path.polyline.getLatLngs().length - 1 === j)\n distances.push(segmentDistance);\n return (\n index.toString() +\n ',' +\n (i + 1).toString() +\n ',' +\n point.lat.toString() +\n ',' +\n point.lng.toString() +\n ',' +\n distance\n );\n })\n .join(';');\n })\n .join(';'),\n distance: distances.reduce((acc, distance) => acc + distance, 0),\n alternateRoutes: alternateRoutesRef.current.map((ar) => ar.routeId).join(',')\n },\n checkpoints: checkpointsRef.current.map((checkpoint, i) => ({\n checkpointId: i,\n routeId: editingRouteRef.current.routeId || editingRouteRef.current.newRouteId,\n locationId: Number.isInteger(checkpoint.locationId) ? checkpoint.locationId : null,\n checkpointName: checkpoint.checkpointName,\n latitude: checkpoint.latitude,\n longitude: checkpoint.longitude,\n radius: checkpoint.radius,\n correlative: i,\n distance:\n i === 0 ? 0 : distances.slice(0, i).reduce((acc, distance) => acc + distance, 0),\n iconId: checkpoint.iconId,\n stopType: checkpoint.stopType,\n stopMinTime: checkpoint.stopMinTime ?? null,\n stopMaxTime: checkpoint.stopMaxTime ?? null,\n segmentDistance: i === 0 ? 0 : getNullIfNaN(distances[i - 1]),\n segmentSpeedLimit:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.segmentSpeedLimit),\n segmentStopAuthorized:\n i === 0 ? null : pathsRef.current[i - 1]?.segmentStopAuthorized,\n secondsSegmentStopTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentStopTime),\n secondsSegmentTripMinTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentTripMinTime),\n secondsSegmentTripMaxTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentTripMaxTime),\n notificationEmails: checkpoint.notificationEmails\n }))\n })\n );\n }\n });\n setOpenSlidingPaneEditRoute(true);\n };\n\n const addCheckpoint = (index) => {\n setCheckpoints([\n ...checkpoints.slice(0, index + 1),\n { checkpointId: uuidv4() },\n ...checkpoints.slice(index + 1)\n ]);\n };\n\n const editCheckpoint = (checkpointId, type, index) => {\n const checkpoint = checkpointsRef.current.filter(\n (checkpoint) => checkpoint.checkpointId === checkpointId\n )[0];\n if (!(checkpoint.latitude != null && checkpoint.longitude != null && checkpoint.marker))\n return null;\n map.flyToBounds([[checkpoint.latitude, checkpoint.longitude]], {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n });\n const inputCheckpoint =\n type === 2\n ? [\n {\n type: 'select',\n name: 'iconId',\n initialValue: checkpoint.iconId ?? 1,\n options: routesCheckpointsIcons.map((op) => ({\n ...op,\n label: intl.formatMessage({ id: op.label })\n })),\n label: intl.formatMessage({ id: 'routes.checkpointIcon' }),\n additionalonchangefunction: (value) => {\n if (!value && checkpoint.iconId)\n checkpoint.marker.setIcon(getIcon(type, index, checkpoint.iconId));\n else checkpoint.marker.setIcon(getIcon(type, index, value));\n }\n },\n {\n type: 'contactsDropdown',\n name: 'notificationEmails',\n initialValue: checkpoint.notificationEmails || undefined,\n label: intl.formatMessage({ id: 'routes.notify' })\n },\n {\n type: 'switch',\n name: 'stopType',\n initialValue: checkpoint.stopType || false,\n label: intl.formatMessage({ id: 'routes.stopType' }),\n additionalonchangefunction: (value) => {\n if (slidingPaneFormPropsRef?.current?.inputs)\n setSlidingPaneFormProps({\n ...slidingPaneFormPropsRef.current,\n inputs: value\n ? [\n ...slidingPaneFormPropsRef.current.inputs,\n {\n type: 'duration',\n name: 'stopMinTime',\n initialValue: checkpoint.stopMinTime || undefined,\n label: intl.formatMessage({ id: 'routes.stopMinTime' })\n },\n {\n type: 'duration',\n name: 'stopMaxTime',\n initialValue: checkpoint.stopMaxTime || undefined,\n label: intl.formatMessage({ id: 'routes.stopMaxTime' })\n }\n ]\n : slidingPaneFormPropsRef.current.inputs.slice(0, 5)\n });\n }\n }\n ]\n : [];\n\n setOpenSlidingPaneForm(false);\n setSlidingPaneFormProps({\n title:\n type === 1\n ? intl.formatMessage({ id: 'routes.editOrigin' })\n : type === 2\n ? intl.formatMessage({ id: 'routes.editCheckPoint' })\n : intl.formatMessage({ id: 'routes.editDestination' }),\n inputs: [\n {\n type: 'text',\n name: 'checkpointName',\n required: true,\n initialValue: checkpoint.checkpointName || undefined,\n label:\n type === 1\n ? intl.formatMessage({ id: 'routes.originName' })\n : type === 2\n ? intl.formatMessage({ id: 'routes.checkpointName' })\n : intl.formatMessage({ id: 'routes.destinationName' })\n },\n {\n type: 'number',\n name: 'radiusFormat',\n initialValue: checkpoint.radiusFormat || undefined,\n min: parsers.convertMetersToAuthUserDistance2System(10),\n max: parsers.convertMetersToAuthUserDistance2System(5000),\n metric: 'distance2',\n label: intl.formatMessage({ id: 'routes.radius' }),\n additionalonchangefunction: (value) =>\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(\n checkpoint.latitude,\n checkpoint.longitude,\n parsers.convertAuthUserDistance2SystemToMeters(value)\n )\n )\n },\n ...inputCheckpoint\n ],\n action: (values) => {\n const radius = parsers.convertAuthUserDistance2SystemToMeters(values.radiusFormat);\n checkpoint.marker.setIcon(getIcon(type, index, values.iconId));\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, radius)\n );\n checkpointsRef.current = checkpointsRef.current.map((chk) =>\n chk.checkpointId === checkpoint.checkpointId\n ? {\n ...chk,\n ...values,\n radius,\n stopMinTime: values.stopType ? values.stopMinTime?.totalSeconds : undefined,\n stopMaxTime: values.stopType ? values.stopMaxTime?.totalSeconds : undefined\n }\n : chk\n );\n setCheckpoints(checkpointsRef.current);\n },\n closeSlidingPaneForm: () => {\n centerRoute();\n checkpoint.marker.setIcon(getIcon(type, index, checkpoint.iconId));\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, checkpoint.radius)\n );\n setOpenSlidingPaneForm(false);\n }\n });\n setOpenSlidingPaneForm(true);\n };\n\n const deleteCheckpoint = (checkpointId) => {\n if (!formValues.checkpointId) {\n deleteObjectsOnMap();\n setCheckpoints(\n checkpoints.filter((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId && checkpoint.marker)\n setCreatedLocations(\n createdLocations.filter((loc) => loc.locationId !== checkpoint.locationId)\n );\n return checkpoint.checkpointId !== checkpointId;\n })\n );\n }\n };\n const editPath = (index) => {\n if (pathsRef.current) {\n const path = pathsRef.current[index];\n if (path) {\n //Si se estaba editando un tramo se resetea su informacion en el mapa\n if (copyPolylineLatLngsRef.current?.index != undefined) {\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.setLatLngs(\n copyPolylineLatLngsRef.current.latLngs\n );\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.pm.disable();\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.setStyle({\n color: 'blue'\n });\n }\n setCopyPolylineLatLngs({\n latLngs: pathsRef.current[index].polyline.getLatLngs(),\n index: index\n });\n const type = index === pathsRef.current.length - 1 ? 2 : 1;\n path.polyline.pm.enable({ draggable: true });\n path.polyline.setStyle({ color: 'red' });\n map.flyToBounds(path.polyline.getBounds(), {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n animate:\n map.getBoundsZoom(path.polyline.getBounds(), undefined, [700, 70]) !== map.getZoom()\n });\n setOpenSlidingPaneForm(false);\n setEditPathInputs(\n {\n ...path,\n segmentSpeedLimitFormat: parsers\n .convertKilometersPerHourToAuthUserSpeedSystem(path.segmentSpeedLimit)\n .toFixed(0),\n segmentDistanceFormat: parsers\n .convertMetersToAuthUserDistanceSystem(path.segmentDistance)\n .toFixed(2)\n },\n index,\n type\n );\n setOpenSlidingPaneForm(true);\n }\n }\n };\n\n const setEditPathInputs = (path, index, type) => {\n setSlidingPaneFormProps({\n title: `${intl.formatMessage({ id: 'routes.editSegment' })} (${\n checkpointsRef.current[index]?.checkpointName\n } - ${checkpointsRef.current[index + 1]?.checkpointName})`,\n inputs: [\n {\n type: 'component',\n component: (\n \n
\n \n \n
\n
\n )\n },\n {\n type: 'number',\n name: 'segmentSpeedLimitFormat',\n initialValue: path?.segmentSpeedLimitFormat || undefined,\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentSpeedLimitFormat: value }, index, type);\n },\n min: 0,\n max: parsers.convertKilometersPerHourToAuthUserSpeedSystem(120),\n metric: 'speed',\n label: intl.formatMessage({ id: 'routes.speedLimit' })\n },\n {\n type: 'duration',\n name: 'segmentTripMinTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentTripMinTime: value }, index, type);\n },\n initialValue: path?.segmentTripMinTime || undefined,\n label: intl.formatMessage({ id: 'routes.segmentTripMinTime' })\n },\n {\n type: 'duration',\n name: 'segmentTripMaxTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentTripMaxTime: value }, index, type);\n },\n initialValue: path?.segmentTripMaxTime || undefined,\n label: intl.formatMessage({ id: 'routes.segmentTripMaxTime' })\n },\n {\n type: 'switch',\n name: 'segmentStopAuthorized',\n initialValue:\n path?.segmentStopAuthorized != undefined ? path?.segmentStopAuthorized : true,\n label: intl.formatMessage({ id: 'routes.segmentStopAuthorized' }),\n additionalonchangefunction: (value) => {\n setEditPathInputs(\n {\n ...path,\n segmentStopAuthorized: value,\n segmentWithoutStopTime: undefined,\n segmentStopTime: undefined\n },\n index,\n type\n );\n }\n },\n path?.segmentStopAuthorized\n ? {\n type: 'switch',\n name: 'segmentWithoutStopTime',\n initialValue:\n path?.segmentWithoutStopTime != undefined ? path?.segmentWithoutStopTime : true,\n label: intl.formatMessage({ id: 'routes.segmentWithoutStopTime' }),\n additionalonchangefunction: (value) => {\n setEditPathInputs(\n { ...path, segmentWithoutStopTime: value, segmentStopTime: undefined },\n index,\n type\n );\n }\n }\n : undefined,\n path?.segmentStopAuthorized && [false, 0].includes(path?.segmentWithoutStopTime)\n ? {\n type: 'number',\n name: 'segmentStopTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentStopTime: value }, index, type);\n },\n initialValue: path?.segmentStopTime || undefined,\n appendcomponent: intl.formatMessage({ id: 'common.minutes' }),\n allowDecimals: true,\n label: intl.formatMessage({ id: 'routes.segmentStopTime' })\n }\n : undefined\n ],\n action: (values) => {\n updateDistances();\n setPaths(\n pathsRef.current.map((path, i) =>\n i === index\n ? {\n ...path,\n ...values,\n secondsSegmentStopTime:\n values?.segmentStopAuthorized &&\n [false, 0].includes(values?.segmentWithoutStopTime)\n ? values?.segmentStopTime * 60\n : undefined,\n segmentWithoutStopTime:\n values?.segmentStopTime > 0 ? values?.segmentWithoutStopTime : true,\n secondsSegmentTripMinTime: values?.segmentTripMinTime?.totalSeconds || undefined,\n secondsSegmentTripMaxTime: values?.segmentTripMaxTime?.totalSeconds || undefined,\n segmentSpeedLimit: parsers\n .convertAuthUserSpeedSystemToKilometersPerHour(values.segmentSpeedLimitFormat)\n .toFixed(0)\n }\n : path\n )\n );\n },\n onClose: () => {\n pathsRef.current[index].polyline.setLatLngs(copyPolylineLatLngsRef.current.latLngs);\n },\n closeSlidingPaneForm: () => {\n pathsRef.current[index].polyline.pm.disable();\n pathsRef.current[index].polyline.setStyle({ color: 'blue' });\n updateDistances();\n centerRoute();\n setOpenSlidingPaneForm(false);\n setCopyPolylineLatLngs({});\n }\n });\n };\n\n const addLocationToCheckpoint = (checkpointId, locationId) => {\n const location = locations.filter((location) => location.locationId === locationId)[0];\n if (location)\n setCheckpoints(\n checkpoints.map((checkpoint) =>\n checkpoint.checkpointId === checkpointId && checkpoint.locationId !== locationId\n ? {\n ...checkpoint,\n googleLocation: false,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n }\n : checkpoint\n )\n );\n };\n\n const addCreatedLocationToCheckpoint = (marker, location) => {\n setCreatedLocations([...createdLocationsRef.current, location]);\n setCheckpoints(\n checkpointsRef.current.map((checkpoint) =>\n checkpoint.checkpointId === drawingRouteCheckpointRef.current.checkpointId\n ? {\n ...checkpoint,\n googleLocation: false,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n }\n : checkpoint\n )\n );\n map.removeLayer(marker);\n setDrawingRouteCheckpoint(null);\n };\n\n const addGoogleLocationToCheckpoint = (checkpointId, location) => {\n if (location) {\n setCheckpoints(\n checkpoints.map((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId) {\n const newLocation = {\n ...checkpoint,\n googleLocation: location.googleLocation,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n };\n setCreatedLocations([\n ...createdLocations,\n { ...newLocation, locationName: location.locationName }\n ]);\n return newLocation;\n } else return checkpoint;\n })\n );\n }\n };\n\n const deleteLocationOfCheckpoint = (checkpointId) => {\n if (!formValues.checkpointId)\n setCheckpoints(\n checkpoints.map((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId) {\n setCreatedLocations(\n createdLocations.filter((loc) => loc.locationId !== checkpoint.locationId)\n );\n if (checkpoint.marker) map.removeLayer(checkpoint.marker);\n return {\n ...checkpoint,\n googleLocation: undefined,\n locationId: undefined,\n checkpointName: undefined,\n marker: undefined,\n longitude: undefined,\n latitude: undefined,\n radius: undefined\n };\n } else return checkpoint;\n })\n );\n };\n\n return {\n formValues,\n control,\n handleSubmit,\n isGeneratingRouteRef,\n isOpenSlidingPaneEditRoute,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n editingRouteRef,\n deleteObjectsOnMap,\n setOpenSlidingPaneEditRoute,\n setEditingRoute,\n setCreatedLocations,\n setPaths,\n setSlidingPaneEditRouteProps,\n setDistanceRoute,\n slidingPaneEditRoutesProps,\n isOpenSlidingPaneForm,\n setOpenSlidingPaneForm,\n slidingPaneFormProps,\n widthSlidingPaneEditRoute,\n errors: formState.errors,\n isGeneratingRoute: isGeneratingRouteRef.current,\n alternateRoutes,\n setAlternateRoutes\n };\n};\n","import '@geoman-io/leaflet-geoman-free';\nimport 'leaflet-toolbar';\nimport 'leaflet.icon.glyph';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\nimport SlidingPaneForm from 'views/formComponents/SlidingPaneForm';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport SlidingPaneEditRoute from '../SlidingPaneEditRoute';\nimport { useMapRouteEdit } from './useMapRouteEdit';\n\nexport interface MapRouteEditOptions {\n showRoute: boolean;\n route: any;\n routeCheckpoints: any;\n routePaths: any;\n setEditingRouteParent?: any;\n}\n\nconst MapRouteEdit = (props: MapRouteEditOptions) => {\n const { setEditingRouteParent } = props;\n const {\n formValues,\n control,\n handleSubmit,\n isGeneratingRouteRef,\n isOpenSlidingPaneEditRoute,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n editingRouteRef,\n deleteObjectsOnMap,\n setOpenSlidingPaneEditRoute,\n setEditingRoute,\n setCreatedLocations,\n setPaths,\n setSlidingPaneEditRouteProps,\n setDistanceRoute,\n slidingPaneEditRoutesProps,\n isOpenSlidingPaneForm,\n setOpenSlidingPaneForm,\n slidingPaneFormProps,\n widthSlidingPaneEditRoute,\n errors,\n isGeneratingRoute,\n alternateRoutes,\n setAlternateRoutes\n } = useMapRouteEdit(props);\n const intl = useIntl();\n const dispatch = useDispatch();\n\n return (\n <>\n \n {\n if (!isSaving && editingRouteRef.current?.routeId)\n dispatch(routeActions.showRouteInMap(editingRouteRef.current.routeId));\n deleteObjectsOnMap();\n setOpenSlidingPaneEditRoute(false);\n setEditingRoute(undefined);\n setCreatedLocations([]);\n setCheckpoints([]);\n setPaths([]);\n setSlidingPaneEditRouteProps({ inputs: [] });\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n setTimeout(() => setEditingRouteParent(undefined), 1000);\n }}\n {...slidingPaneEditRoutesProps}\n />\n {\n setOpenSlidingPaneForm(false);\n }}\n isInMap={true}\n {...slidingPaneFormProps}\n />\n \n );\n};\n\nMapRouteEdit.defaultProps = {\n route: {},\n showRoute: false,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapRouteEdit;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genérico que se utiliza en muchas pantallas de la aplicación.\n// @ts-nocheck\nimport L from 'leaflet';\nimport { useEffect } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { FormGroup, Label, Spinner } from 'reactstrap';\nimport EditButton from 'views/components/EditButton';\nimport TitleH4 from 'views/components/TitleH4';\nimport Toolbar from 'views/components/Toolbar';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as routeActions from '../../actions/routes';\nimport routePermissions from '../../permissions';\n\ninterface Props {\n title: any;\n subtitle: any;\n route: any;\n isLoading: boolean;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n createRoute: any;\n}\n\nconst SlidingPaneEditRoute = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const { title, subtitle, route, isLoading, isOpenSlidingPane, closeSlidingPane, createRoute } =\n props;\n\n const intl = useIntl();\n\n const { authSystems } = useSelector((state) => ({\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n return (\n closeSlidingPane()}\n >\n \n {isLoading ? (\n
\n \n
\n ) : (\n <>\n createRoute(route)}\n permissions={[routePermissions.editRoute]}\n />\n ]}\n />\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n \n )}\n \n );\n};\n\nSlidingPaneEditRoute.defaultProps = {};\n\nexport default SlidingPaneEditRoute;\n","// @ts-nocheck\nimport 'leaflet.icon.glyph';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Marker, Polyline, Popup, Rectangle, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getIcon, getRouteBounds } from 'views/screens/Routes/utils';\nimport * as routeCheckpointsActions from '../../../../screens/Routes/actions/routeCheckpoints';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\nimport SlidingPaneRouteInformation from '../../../../screens/Routes/views/SlidingPaneRouteInformation';\nimport { getRectBoundsFromLatLng } from '../../utils';\n\nexport interface MapRoutesOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToRouteBounds?: boolean;\n useSlidingPaneRouteInformation?: boolean;\n usePopovers?: boolean;\n routes?: any[];\n showRoutes?: boolean;\n isMapFullScreen?: boolean;\n useIsShownRoute?: boolean; //param only when you have a property in each route isShownInMap to show routes on map\n initialShowSlidingPanelRouteInformationOpen?: boolean;\n initialShowSlidingPanelRouteCreateOpen?: boolean;\n initialShowSlidingPanelRouteEditOpen?: boolean;\n initialRouteInformationOpenId?: any;\n editingRouteParent?: any;\n pathColor?: any;\n setEditingRouteParent?: Function;\n}\n\nconst MapRoutes = (props: MapRoutesOptions) => {\n const map = useMapEvents({\n moveend: () => {\n displayMarkers();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showRoutes = false,\n useIsShownRoute = false,\n routes = [],\n setMapPositionToRouteBounds = false,\n useSlidingPaneRouteInformation = true,\n usePopovers,\n pathColor = null,\n initialShowSlidingPanelRouteInformationOpen = false,\n initialShowSlidingPanelRouteCreateOpen = false,\n initialShowSlidingPanelRouteEditOpen = false,\n initialRouteInformationOpenId,\n editingRouteParent,\n setEditingRouteParent,\n isMapFullScreen = true\n } = props;\n const store = useSelector((state) => state);\n const dispatch = useDispatch();\n const [showRouteInformationSlidingPane, setShowRouteInformationSlidingPane] = useState(false);\n const [openEditSlidingPane, setOpenEditSlidingPane] = useState(false);\n const [initialRouteId, setInitialRouteId] = useState();\n const [routesBounds, setRoutesBounds] = useState([]);\n const [selectedRoute, setSelectedRoute] = useState({});\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n const { isEditing, isAdding, isFetchingCheckpoints } = useSelector((state) => ({\n isEditing: routeSelectors.isEditingRoute(state),\n isAdding: routeSelectors.isAddingRoute(state),\n isFetchingCheckpoints: routeSelectors.isFetchingListRouteCheckpoints(state)\n }));\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n routes: selectedRoute?.routeId != null\n });\n }\n }, [selectedRoute]);\n\n const selectRoute = (route) => {\n if (editingRouteParent?.route?.routeId) {\n dispatch(routeActions.showRouteInMap(editingRouteParent.route.routeId));\n if (setEditingRouteParent) setEditingRouteParent(undefined);\n }\n setSelectedRoute(route);\n if (useSlidingPaneRouteInformation) {\n setShowRouteInformationSlidingPane(true);\n }\n zoomMapToRoutes([route]);\n };\n\n const createRoute = (route) => {\n setShowRouteInformationSlidingPane(false);\n setEditingRouteParent({\n showRoute: true,\n route,\n routeCheckpoints: route.checkpoints,\n routePaths: route.checkpoints\n .filter((chk) => chk.segmentPath.length > 0)\n .map((chk) => {\n return {\n polyline: L.polyline(\n chk.segmentPath.map((path) => [path.latitude, path.longitude]),\n { color: pathColor ?? 'blue' }\n ),\n segmentSpeedLimit: chk.segmentSpeedLimit,\n segmentTripMinTime: chk.segmentTripMinTime,\n segmentTripMaxTime: chk.segmentTripMaxTime,\n segmentStopAuthorized: chk.segmentStopAuthorized,\n segmentStopTime: chk.segmentStopTime,\n segmentDistance: chk.segmentDistance,\n segmentWithoutStopTime: chk.segmentWithoutStopTime\n };\n })\n });\n };\n\n const zoomMapToRoutes = (routes) => {\n var bounds = [];\n routes.map((route) => (bounds = [...bounds, ...getRouteBounds(route)]));\n if (bounds.length > 0)\n map.flyToBounds(bounds, {\n paddingBottomRight: isMapFullScreen ? [700, 0] : undefined,\n paddingTopLeft: isMapFullScreen ? [0, 70] : undefined,\n animate: map.getBoundsZoom(bounds, undefined, [700, 70]) !== map.getZoom()\n });\n };\n\n const displayMarkers = () => {\n if (routes.filter((route) => route.checkpoints.length > 0).length > 0)\n setRoutesBounds(\n routes.filter((route) =>\n map\n ? getRouteBounds(route).length > 0 && map.getBounds().intersects(getRouteBounds(route))\n : true\n )\n );\n };\n\n useEffect(() => {\n if (!isEditing && selectedRoute.routeId) {\n dispatch(routeActions.showRouteInMap(selectedRoute.routeId));\n setSelectedRoute(routeSelectors.getRoute(store, selectedRoute.routeId));\n setShowRouteInformationSlidingPane(true);\n }\n }, [isEditing]);\n\n useEffect(() => {\n if (editingRouteParent?.route?.routeId) {\n dispatch(routeActions.hideRouteInMap(editingRouteParent.route.routeId));\n }\n }, [editingRouteParent]);\n\n useDeepCompareEffect(() => {\n if (setMapPositionToRouteBounds && map && routes.length > 0) zoomMapToRoutes();\n }, [routes, setMapPositionToRouteBounds]);\n\n useEffect(() => {\n if (initialShowSlidingPanelRouteCreateOpen) {\n setShowRouteInformationSlidingPane(false);\n setEditingRouteParent({\n showRoute: true,\n route: { newRouteId: uuidv4() },\n routeCheckpoints: [\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() }\n ],\n routePaths: []\n });\n }\n }, [initialShowSlidingPanelRouteCreateOpen]);\n\n //Open and get route checkpoints if params are set\n useEffect(() => {\n if (initialShowSlidingPanelRouteInformationOpen && useSlidingPaneRouteInformation) {\n if (initialRouteInformationOpenId) {\n dispatch(\n routeCheckpointsActions.startFetchingRouteCheckpoints(initialRouteInformationOpenId)\n );\n }\n }\n }, [initialRouteInformationOpenId]);\n\n useEffect(() => {\n if (initialShowSlidingPanelRouteInformationOpen && useSlidingPaneRouteInformation) {\n if (initialRouteInformationOpenId && !isFetchingCheckpoints) {\n const initialRouteInformation = routeSelectors.getRoute(\n store,\n initialRouteInformationOpenId\n );\n if (\n initialRouteId !== initialRouteInformationOpenId &&\n initialRouteInformation?.checkpoints?.length > 0\n ) {\n setInitialRouteId(initialRouteInformation.routeId);\n setSelectedRoute(initialRouteInformation);\n zoomMapToRoutes([initialRouteInformation]);\n setShowRouteInformationSlidingPane(true);\n if (initialShowSlidingPanelRouteEditOpen) {\n setOpenEditSlidingPane(true);\n }\n }\n }\n }\n }, [isFetchingCheckpoints]);\n\n useEffect(() => {\n if (openEditSlidingPane) {\n setOpenEditSlidingPane(false);\n createRoute(selectedRoute);\n }\n }, [selectedRoute]);\n\n useDeepCompareEffect(() => {\n displayMarkers();\n }, [showRoutes, isEditing, isAdding, routes]);\n\n return (\n <>\n {(showRoutes || useIsShownRoute) && (\n \n {routesBounds.map(\n (route) =>\n ((showRoutes && !useIsShownRoute) || (useIsShownRoute && route.isShownInMap)) && (\n
\n {route.checkpoints.map(\n (checkpoint, index) =>\n checkpoint.latitude != null &&\n checkpoint.longitude != null && (\n
\n selectRoute(route)\n }}\n >\n {usePopovers && (\n \n \n {checkpoint?.checkpointName ?? route.routeName}\n \n \n )}\n \n {checkpoint.radius && (\n \n )}\n {checkpoint.segmentPath.length > 0 && (\n [\n path.latitude,\n path.longitude\n ])}\n eventHandlers={{\n click: () => {\n setOpenEditSlidingPane(true);\n selectRoute(route);\n }\n }}\n >\n {usePopovers && (\n \n \n {route.routeName}\n \n \n )}\n \n )}\n
\n )\n )}\n
\n )\n )}\n
\n )}\n\n {\n setShowRouteInformationSlidingPane(false);\n setSelectedRoute({});\n }}\n isOpenSlidingPane={showRouteInformationSlidingPane}\n title={selectedRoute.routeName}\n route={selectedRoute}\n createRoute={createRoute}\n />\n \n );\n};\n\nMapRoutes.defaultProps = {\n setMapPositionToRouteBounds: false,\n useSlidingPaneRouteInformation: true,\n routes: [],\n showRoutes: false,\n initialShowSlidingPanelRouteInformationOpen: false,\n usePopovers: true,\n initialRouteInformationOpenId: undefined,\n useIsShownRoute: false\n};\n\nexport default MapRoutes;\n","// @ts-nocheck\nimport { useEffect, useState } from 'react';\nimport L from 'leaflet';\nimport { useSelector } from 'react-redux';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport 'leaflet.polylinemeasure';\nimport { useIntl } from 'react-intl';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { ArrowRight, X } from 'react-feather';\n\nexport interface RulerControlOptions {\n useControl: boolean;\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n listenMapControlChanges?: any[];\n}\n\n/* -------------------------------------------------------------------------- */\n/* RulerControl to Measure in map */\n/* -------------------------------------------------------------------------- */\nconst RulerControl = (props: RulerControlOptions) => {\n const { position = 'bottomleft', listenMapControlChanges } = props;\n //https://github.com/ppete2/Leaflet.PolylineMeasure\n const context = useLeafletContext();\n const intl = useIntl();\n useEffect(() => {\n const container = context.layerContainer || context.map;\n var pmOptions = {\n position: position,\n tooltipTextDraganddelete: intl.formatMessage({\n id: 'map.ruler.tooltipTextDraganddelete'\n }),\n tooltipTextResume: intl.formatMessage({ id: 'map.ruler.tooltipTextResume' }),\n tooltipTextAdd: intl.formatMessage({ id: 'map.ruler.tooltipTextAdd' }),\n tooltipTextFinish: intl.formatMessage({ id: 'map.ruler.tooltipTextFinish' }),\n tooltipTextDelete: intl.formatMessage({ id: 'map.ruler.tooltipTextDelete' }),\n tooltipTextMove: intl.formatMessage({ id: 'map.ruler.tooltipTextMove' }),\n\n measureControlClasses: [],\n measureControlLabel: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n ),\n clearControlLabel: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n ),\n measureControlTitleOn: intl.formatMessage({ id: 'map.ruler.measureControlTitleOn' }),\n measureControlTitleOff: intl.formatMessage({ id: 'map.ruler.measureControlTitleOff' }),\n showClearControl: true, // Show a control to clear all the measurements\n clearControlTitle: intl.formatMessage({ id: 'map.ruler.clearControlTitle' }),\n showUnitControl: true, // Show a control to change the units of measurements\n unitControlTitle: {\n // Title texts to show on the Unit Control button\n text: intl.formatMessage({ id: 'map.ruler.unitControlTitle.text' }),\n metres: intl.formatMessage({ id: 'map.ruler.unitControlTitle.metres' }),\n landmiles: intl.formatMessage({ id: 'map.ruler.unitControlTitle.landmiles' }),\n nauticalmiles: intl.formatMessage({ id: 'map.ruler.unitControlTitle.nauticalmiles' })\n }\n };\n const control = L.control.polylineMeasure(pmOptions);\n\n container.addControl(control);\n\n return () => {\n container.removeControl(control);\n };\n }, [...listenMapControlChanges]);\n\n return null;\n};\n\nRulerControl.defaultProps = {\n position: 'bottomleft',\n useControl: true,\n listenMapControlChanges: []\n};\n\nexport default RulerControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport { env } from 'env';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, Plus, X, Hexagon, Square, Circle } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\n// import * as geofenceClassesSelectors from '../../../../../redux/reducers/static-catalogs/geofence-classes';\nimport * as geofenceActions from '../../../../../views/screens/Geofences/actions';\nimport geofencePermissions from '../../../../../views/screens/Geofences/permissions';\nimport SlidingPaneForm from '../../../../formComponents/SlidingPaneForm';\nimport Icon from 'utility/icomoon';\nimport wkx from 'wkx';\nimport { getExtraGeofenceSaveValues } from 'views/screens/Geofences/utils';\nimport * as geofenceSelectors from 'views/screens/Geofences/reducers';\nimport { zoomMapToGeofence } from '../MapGeofences';\n\nconst style = getComputedStyle(document.body);\nconst primary = style.getPropertyValue('--primary').trim();\n\nexport interface GeofencesToolbarOptions {\n useToolbar: boolean;\n showGeofences?: bool;\n setShowGeofences?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarGeofencesControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarGeofencesControl = (props: GeofencesToolbarOptions) => {\n const { showGeofences, setShowGeofences, position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n const map = useMap();\n const dispatch = useDispatch();\n\n //States to create new geofences\n const [newGeofences, setNewGeofencesLayers] = useState([]);\n const newGeofencesLayersRef = React.useRef(newGeofences);\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const isOpenSlidingPaneFormRef = React.useRef(isOpenSlidingPaneForm);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n const slidingPanePropsRef = React.useRef(slidingPaneProps);\n const [editingGeofence, setEditingGeofence] = useState(undefined);\n const editingGeofenceRef = React.useRef(editingGeofence);\n const isSatMonitor = !!parseInt(env.REACT_APP_SAT_MONITOR ?? '0');\n\n const { store, mainGeofence } = useSelector((state) => ({\n store: state,\n mainGeofence: geofenceSelectors.getGeofence(state, editingGeofence?.geofence?.parentGeofenceId)\n }));\n\n useEffect(() => {\n if (mainGeofence?.geofenceId) {\n zoomMapToGeofence(map, true, mainGeofence);\n dispatch(geofenceActions.showGeofenceInMap(mainGeofence.geofenceId));\n return () => {\n dispatch(geofenceActions.hideGeofenceInMap(mainGeofence.geofenceId));\n };\n }\n }, [mainGeofence?.geofenceId]);\n\n useEffect(() => {\n editingGeofenceRef.current = editingGeofence;\n if (editingGeofence !== undefined) {\n editGeofence();\n }\n }, [editingGeofence]);\n\n useEffect(() => {\n isOpenSlidingPaneFormRef.current = isOpenSlidingPaneForm;\n }, [isOpenSlidingPaneForm]);\n\n useEffect(() => {\n slidingPanePropsRef.current = slidingPaneProps;\n }, [slidingPaneProps]);\n\n useEffect(() => {\n newGeofencesLayersRef.current = newGeofences;\n }, [newGeofences]);\n\n const editGeofence = () => {\n const layer = editingGeofenceRef.current.layer;\n const shape = layer.pm._shape ? layer.pm._shape.charAt(0).toUpperCase() : 'C';\n const initialRadius = shape == 'C' ? layer.getRadius() : undefined;\n newGeofencesLayersRef.current.forEach((m) => {\n try {\n if (layer.editing.options.geofenceId != m.editing.options.geofenceId) {\n m.pm.disable({});\n }\n } catch {}\n });\n\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({\n title: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceId\n ? editingGeofenceRef.current?.geofence.geofenceName\n : intl.formatMessage({ id: 'geofences.addGeofence' })\n : intl.formatMessage({ id: 'geofences.addGeofence' }),\n inputs: [\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.name' }),\n required: true,\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceName\n : undefined,\n name: 'geofenceName',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n geofenceName: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, geofenceName: value }\n });\n try {\n layer.bindPopup(value);\n layer.openPopup();\n } catch (error) {}\n },\n customValidation(values, props) {\n return values !== null && values !== undefined ? undefined : (\n \n );\n }\n },\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.geofenceAddress' }),\n required: false,\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceAddress\n : '',\n name: 'geofenceAddress',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n geofenceAddres: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, geofenceAddress: value }\n });\n }\n },\n {\n type: 'geofenceShapesDropdown',\n required: true,\n initialValue: shape ? shape : 'C',\n name: 'shape',\n customValidation(values, props) {\n return values !== null && values !== undefined ? undefined : (\n \n );\n },\n disabled: true,\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n shape: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, shape: value }\n });\n }\n },\n shape && shape == 'C'\n ? {\n type: 'number',\n allowUndefined: false,\n label: intl.formatMessage({ id: 'geofences.radius' }),\n required: true,\n min: 1,\n step: 1,\n allowDecimals: true,\n useNumberSpinner: true,\n appendcomponent: 'm',\n max: 100000,\n name: 'radius',\n initialValue:\n editingGeofenceRef.current?.geofence && editingGeofenceRef.current?.geofence.radius\n ? editingGeofenceRef.current?.geofence.radius\n : initialRadius,\n additionalonchangefunction: (value) => {\n if (value) {\n layer.editing.options = {\n ...layer.editing.options,\n radius: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, radius: value }\n });\n try {\n layer.setRadius(value);\n } catch {}\n }\n }\n }\n : {},\n {\n type: 'colorPicker',\n label: intl.formatMessage({ id: 'geofences.color' }),\n required: true,\n name: 'color',\n initialValue:\n editingGeofenceRef.current?.geofence && editingGeofenceRef.current?.geofence.color\n ? editingGeofenceRef.current?.geofence.color\n : undefined,\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n color: value.trim()\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, color: value.trim() }\n });\n\n try {\n layer.setStyle({\n color: value.trim()\n });\n } catch {}\n }\n },\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.privateCode' }),\n required: false,\n name: 'privateCode',\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.privateCode\n : '',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n privateCode: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, privateCode: value }\n });\n }\n },\n {\n type: 'membership',\n name: 'membership',\n options: {\n colSize: '12',\n useOperator: false,\n useUserOrganization: true,\n showAllDivision: true,\n showAllSubdivision: true\n },\n initialValue: editingGeofenceRef.current?.geofence\n ? {\n operatorId: editingGeofenceRef.current.geofence.operatorId,\n organizationId: editingGeofenceRef.current.geofence.organizationId,\n divisionId: editingGeofenceRef.current.geofence.divisionId,\n subdivisionId: editingGeofenceRef.current.geofence.subdivisionId\n }\n : undefined,\n additionalonchangefunction: (values) => {\n layer.editing.options = {\n ...layer.editing.options,\n membership: values,\n ...values\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, membership: values, ...values }\n });\n }\n },\n isSatMonitor\n ? {\n type: 'radioButtons',\n name: 'isParentGeofence',\n label: `${intl.formatMessage({ id: 'geofences.type' })}:`,\n initialValue:\n editingGeofenceRef.current?.geofence?.isParentGeofence === true\n ? '1'\n : editingGeofenceRef.current?.geofence?.isParentGeofence === false\n ? '0'\n : undefined,\n radioButtons: [\n {\n label: intl.formatMessage({ id: 'geofences.mainGeofence' }),\n value: '1'\n },\n {\n label: intl.formatMessage({ id: 'geofences.subGeofence' }),\n value: '0'\n }\n ],\n additionalonchangefunction: (value) => {\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n isParentGeofence: value == '1'\n }\n });\n }\n }\n : undefined,\n editingGeofenceRef.current?.geofence?.isParentGeofence === false && !!isSatMonitor\n ? {\n type: 'geofenceDropdown',\n name: 'parentGeofenceId',\n initialValue: editingGeofenceRef.current?.geofence?.parentGeofenceId,\n label: intl.formatMessage({ id: 'geofences.mainGeofence' }),\n placeholder: intl.formatMessage({ id: 'workplans.selectGeofence' }),\n isClearable: false,\n parentGeofences: true,\n required: true,\n subGeofenceWktString: editingGeofenceRef.current?.geofence?.geofenceWktString,\n additionalonchangefunction: (value) => {\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n parentGeofenceId: value\n }\n });\n }\n }\n : undefined,\n editingGeofenceRef.current?.geofence?.isParentGeofence === false && !!isSatMonitor\n ? {\n type: 'switch',\n name: 'isActivationGeofence',\n initialValue: editingGeofenceRef.current?.geofence?.isActivationGeofence,\n label: intl.formatMessage({ id: 'trackingUnits.sat.isActivation/DeactivationArea' })\n }\n : undefined\n ],\n action: (values) => {\n var geometry = wkx.Geometry.parseGeoJSON(layer.toGeoJSON().geometry);\n map.removeLayer(layer);\n\n const geofence = {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt()\n };\n const { vertexCount, longitude, longitude2, latitude, latitude2, vertexCsv, geofenceWKT } =\n getExtraGeofenceSaveValues(geofence);\n\n dispatch(\n geofenceActions.startAddingGeofence({\n ...editingGeofenceRef.current?.geofence,\n ...values,\n ...values.membership,\n isParentGeofence:\n values.isParentGeofence == '1'\n ? true\n : values.isParentGeofence == '0'\n ? false\n : undefined,\n parentGeofenceId: values.isParentGeofence == '0' ? values.parentGeofenceId : undefined,\n isActivationGeofence:\n values.isParentGeofence == '0' ? values.isActivationGeofence : undefined,\n geofenceWKT,\n vertexCount,\n latitude,\n latitude2,\n longitude,\n longitude2,\n vertexCsv,\n isShownInMap: true,\n geofenceId: uuidv4()\n })\n );\n setEditingGeofence(undefined);\n }\n });\n setOpenSlidingPaneForm(true);\n\n setTimeout(() => {\n try {\n layer.pm.enable({});\n } catch {}\n }, 100);\n setTimeout(() => {\n try {\n layer.bindPopup(\n layer.editing.options.geofenceName\n ? layer.editing.options.geofenceName\n : appIntl().formatMessage({ id: 'geofences.new' })\n );\n layer.openPopup();\n } catch {}\n }, 100);\n };\n\n useEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n /* -------------------------------------------------------------------------- */\n /* Geofence Creation Listener */\n /* -------------------------------------------------------------------------- */\n container.on('pm:create', function (e) {\n setEditingGeofence(undefined);\n if (\n (e.shape == 'Circle' || e.shape == 'Rectangle' || e.shape == 'Polygon') &&\n e.layer.editing?.options?.geofenceId == null\n ) {\n let layer = e.layer;\n layer.pm.enableLayerDrag();\n layer.pm.enable({ draggable: true });\n layer.on('click', (e) => {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n setEditingGeofence({\n layer: layer,\n geofence: layer.editing.options\n });\n });\n layer.on('pm:edit', (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n\n layer.editing.options = {\n ...layer.options,\n organizationId: undefined,\n divisionId: undefined,\n subdivisionId: undefined,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n };\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n }\n });\n });\n layer.on('pm:dragend', (e) => {\n layer.pm.enableLayerDrag();\n layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n\n layer.editing.options = {\n ...layer.editing.options,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n };\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n }\n });\n });\n layer.on('dblclick', () => {\n layer.pm.remove();\n });\n\n let shape = e.shape.charAt(0).toUpperCase();\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n if (!layer.editing) layer.editing = {};\n layer.editing.options = {\n ...layer.options,\n geofenceId: uuidv4(),\n geofenceName: undefined,\n geofenceAddress: '',\n shape: shape,\n radius: shape == 'C' ? e.layer.getRadius() : undefined,\n geofenceWktString: geometry.toWkt(),\n operatorId: undefined,\n organizationId: undefined,\n divisionId: undefined,\n subdivisionId: undefined,\n privateCode: '',\n isConfirmed: false\n };\n setNewGeofencesLayers((prevlayers) => [...prevlayers, layer]);\n\n // // zoomMapToGeofence(layer.getLatLng());\n setEditingGeofence({\n layer: layer,\n geofence: layer.editing.options\n });\n }\n });\n\n /* -------------------------------------------------------------------------- */\n /* Actions of Toolbar */\n /* -------------------------------------------------------------------------- */\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var viewGeofences = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: showGeofences\n ? intl.formatMessage({ id: 'map.geofencesToolbar.tooltipHideGeofences' })\n : intl.formatMessage({ id: 'map.geofencesToolbar.tooltipShowGeofences' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>{showGeofences ? : }\n )\n }\n },\n addHooks: () => {\n if (!showGeofences) {\n dispatch(geofenceActions.showAllGeofencesInMap());\n } else {\n dispatch(geofenceActions.hideAllGeofencesInMap());\n }\n setShowGeofences(!showGeofences);\n setOpenSlidingPaneForm(false);\n newGeofencesLayersRef.current.forEach((m) => {\n try {\n m.pm.disableLayerDrag();\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }\n });\n\n var createNewCircleGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddCircle' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Circle', { pathOptions: { color: primary } });\n }\n });\n\n var createNewRectangleGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddRectangle' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Rectangle', { pathOptions: { color: primary } });\n }\n });\n\n var createNewPolygonGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddPolygon' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Polygon', {\n pathOptions: { color: primary },\n removeLayerBelowMinVertexCount: false\n });\n }\n });\n\n var cancelGeofence = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n container.pm.disableDraw('layer');\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var geofencesOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipGeofences' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [\n authSelectors.getAuthUserHasPermissionsEvery(store, [\n geofencePermissions.listGeofencesOnMap\n ])\n ? viewGeofences\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewCircleGeofence\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewRectangleGeofence\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewPolygonGeofence\n : null,\n cancelGeofence\n ].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.GeofencesToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [geofencesOptions]\n }\n });\n\n var geofencesToolbar = new L.Toolbar2.GeofencesToolbar({ position: position });\n geofencesToolbar.addTo(container);\n\n return () => {\n geofencesToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return (\n <>\n {\n setOpenSlidingPaneForm(false);\n try {\n editingGeofenceRef.current.layer.pm.disable({});\n } catch {}\n newGeofencesLayersRef.current.forEach((m, i) => {\n try {\n m.pm.disableLayerDrag();\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }}\n onClickCancelButton={() => {\n map.removeLayer(editingGeofenceRef.current.layer);\n setEditingGeofence(undefined);\n }}\n isInMap={true}\n {...slidingPaneProps}\n />\n \n );\n};\n\nToolbarGeofencesControl.defaultProps = {\n position: 'topleft',\n showGeofences: false,\n setShowGeofence: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarGeofencesControl;\n","// @ts-nocheck\nimport { useEffect, useState } from 'react';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport { useMap } from 'react-leaflet';\n\nimport * as authActions from '../../../../../redux/actions/auth';\nimport { useDispatch } from 'react-redux';\nexport interface HomeToolbarOptions {\n useToolbar: boolean;\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n listenMapControlChanges?: any[];\n}\n\nimport ReactDOMServer from 'react-dom/server';\n\nimport { Home } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n/* -------------------------------------------------------------------------- */\n/* ToolbarHomeControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarHomeControl = (props: HomeToolbarOptions) => {\n const { position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const dispatch = useDispatch(); // to handle home region function\n const intl = useIntl();\n // Be aware of changes in map layer\n const map = useMap();\n var selectedLayer = 0;\n map.on('baselayerchange', function (e) {\n const name = e.name;\n let layer_id = 0;\n if (name == 'Open Street Map') layer_id = 0;\n if (name == 'MapQuest') layer_id = 2;\n if (name == 'Google Maps') layer_id = 3;\n if (name == 'Google Maps Road & Satellite') layer_id = 4;\n if (name == 'Bing Maps') layer_id = 5;\n if (name == 'Bing Satellite') layer_id = 7;\n if (name == 'Bing Hybrid') layer_id = 8;\n if (name == 'Here Maps') layer_id = 9;\n if (name == 'Here Maps Satellite') layer_id = 10;\n if (name == 'Google Maps Satellite') layer_id = 11;\n if (name == 'Google Maps Traffic') layer_id = 12;\n if (name == 'Google Maps Terrain') layer_id = 13;\n if (name == 'MapQuest Hybrid') layer_id = 14;\n if (name == 'MapQuest Satellite') layer_id = 15;\n if (name == 'MapQuest Dark') layer_id = 16;\n if (name == 'MapQuest Light') layer_id = 17;\n if (name == 'WebTrack') layer_id = 18;\n if (name == 'WebTrack Light') layer_id = 19;\n if (name == 'WebTrack Dark') layer_id = 20;\n selectedLayer = layer_id;\n });\n\n // homeFunction to update home region\n const homeFunction = async () => {\n var centerLatLng = map.getCenter().wrap();\n var config = {\n homeLatitude: centerLatLng.lat,\n homeLongitude: centerLatLng.lng,\n homeZoom: map.getZoom(),\n homeLayer: selectedLayer\n };\n dispatch(authActions.startUpdatingMapSettingsConfiguration(config));\n };\n\n //Add Toolbar to Map Container\n useDeepCompareEffect(() => {\n const container = context.layerContainer || context.map;\n const homeActionTooltip = () => {\n return intl.formatMessage({ id: 'map.homeToolbar.tooltipSetHomeRegion' });\n };\n var setHomeAction = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: homeActionTooltip(),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: homeFunction\n });\n\n new L.Toolbar2.Control({\n position: position,\n actions: [setHomeAction]\n }).addTo(container);\n }, [listenMapControlChanges]);\n\n return null;\n};\n\nToolbarHomeControl.defaultProps = {\n position: 'topleft',\n useToolbar: false,\n name: 'ToolbarHomeControl',\n listenMapControlChanges: []\n};\nexport default ToolbarHomeControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, MapPin, Plus, X } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { v4 as uuidv4 } from 'uuid';\nimport SlidingPaneEditLocation from 'views/screens/Locations/views/SlidingPaneEditLocation';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationClassesSelectors from '../../../../../redux/reducers/static-catalogs/location-classes';\nimport * as locationActions from '../../../../../views/screens/Locations/actions';\nimport locationPermissions from '../../../../../views/screens/Locations/permissions';\nimport SlidingPaneForm from '../../../../formComponents/SlidingPaneForm';\n\nexport interface LocationsToolbarOptions {\n useToolbar: boolean;\n showLocations?: bool;\n setShowLocations?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarLocationsControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarLocationsControl = (props: LocationsToolbarOptions) => {\n const { showLocations, setShowLocations, position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n const { store, parsers } = useSelector((state) => ({\n store: state,\n parsers: authSelectors.getParsers(state)\n }));\n const map = useMap();\n const dispatch = useDispatch();\n\n //States to create new locations\n const [newMarkers, setNewMarkers] = useState([]);\n const newMarkersRef = React.useRef(newMarkers);\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const isOpenSlidingPaneFormRef = React.useRef(isOpenSlidingPaneForm);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n const slidingPanePropsRef = React.useRef(slidingPaneProps);\n const [editingLocation, setEditingLocation] = useState(undefined);\n const editingLocationRef = React.useRef(editingLocation);\n\n useEffect(() => {\n editingLocationRef.current = editingLocation;\n if (editingLocation !== undefined) {\n editLocation();\n }\n }, [editingLocation]);\n\n useEffect(() => {\n if (editingLocation?.location?.locationClassIconName) {\n editingLocationRef.current.marker._icon.innerHTML = `
\n `;\n }\n }, [editingLocation?.location?.locationClassIconName]);\n\n useEffect(() => {\n if (editingLocation?.location?.latitude && editingLocation?.location?.longitude) {\n var latLng = L.latLng(\n editingLocation?.location?.latitude,\n editingLocation?.location?.longitude\n );\n editingLocationRef.current.marker.setLatLng(latLng);\n zoomMapToLocation(latLng);\n }\n }, [editingLocation?.location?.latitude, editingLocation?.location?.longitude]);\n\n useEffect(() => {\n setTimeout(() => {\n try {\n editingLocationRef.current.marker.bindPopup(\n editingLocation?.location?.locationName\n ? editingLocation?.location?.locationName\n : appIntl().formatMessage({ id: 'locations.new' })\n );\n editingLocationRef.current.marker.openPopup();\n } catch {}\n }, 100);\n }, [editingLocation?.location?.locationName]);\n\n useEffect(() => {\n isOpenSlidingPaneFormRef.current = isOpenSlidingPaneForm;\n }, [isOpenSlidingPaneForm]);\n\n useEffect(() => {\n slidingPanePropsRef.current = slidingPaneProps;\n }, [slidingPaneProps]);\n\n useEffect(() => {\n newMarkersRef.current = newMarkers;\n }, [newMarkers]);\n\n const zoomMapToLocation = (latLng) => {\n const maxZoom = Math.max(15, map.getZoom());\n setTimeout(function () {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds([ll], {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom,\n animate: 15 > map.getZoom()\n });\n }, 500);\n };\n\n useEffect(() => {\n const customTranslation = {\n tooltips: {\n placeMarker: intl.formatMessage({ id: 'locations.addMarker' })\n }\n };\n map.pm.setLang('customTranslation', customTranslation, intl.locale);\n }, [intl.locale]);\n\n const initialLocationClassIconName = 'Marker1';\n const editLocation = () => {\n const marker = editingLocationRef.current.marker;\n\n newMarkersRef.current.forEach((m) => {\n m.pm.disable({});\n });\n\n setOpenSlidingPaneForm(true);\n\n setTimeout(() => {\n try {\n marker.pm.enable({});\n } catch {}\n }, 100);\n setTimeout(() => {\n try {\n marker.bindPopup(\n marker.options.locationName\n ? marker.options.locationName\n : appIntl().formatMessage({ id: 'locations.new' })\n );\n marker.openPopup();\n } catch {}\n }, 100);\n };\n\n useDeepCompareEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var createNewLocationAction = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.locationsToolbar.tooltipAddLocation' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Marker', {\n continueDrawing: false, //Disable After Create\n markerEditable: true,\n markerStyle: {\n icon: L.divIcon({\n className: 'custom-div-icon',\n html: `
`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })\n }\n });\n\n // listen to when drawing elem gets created\n\n container.on('pm:create', function (e) {\n // setEditingLocation(undefined);\n if (e.shape == 'Marker' && e.marker.options.locationId == null) {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n let marker = e.marker;\n marker.options = {\n ...marker.options,\n locationId: uuidv4(),\n locationName: undefined,\n locationAddress: '',\n latitude: marker.getLatLng().lat,\n longitude: marker.getLatLng().lng,\n radius: 50,\n operatorId: null,\n organizationId: null,\n divisionId: null,\n subdivisionId: null,\n locationClassIconName: 'Marker1',\n locationClassId: 0,\n privateCode: '',\n isConfirmed: false\n };\n\n marker.on('click', () => {\n // setEditingLocation(undefined);\n // if (\n // isOpenSlidingPaneFormRef.current &&\n // editingLocationRef.current.marker.options.locationId == marker.options.locationId\n // ) {\n // } else {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n setEditingLocation({\n marker: marker,\n location: marker.options\n });\n\n // }\n });\n\n marker.on('pm:remove', (e) => {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n });\n\n marker.on('pm:drag', (e) => {\n marker.options = {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n };\n // setEditingLocation({\n // marker: marker,\n // location: {\n // ...editingLocationRef.current.location,\n // latitude: e.target.getLatLng().lat,\n // longitude: e.target.getLatLng().lng\n // }\n // });\n // zoomMapToLocation(marker.getLatLng());\n });\n\n marker.on('pm:dragend', (e) => {\n marker.options = {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n };\n setEditingLocation({\n marker: marker,\n location: {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n }\n });\n zoomMapToLocation(marker.getLatLng());\n });\n\n setNewMarkers((prevMarkers) => [...prevMarkers, marker]);\n marker.pm.enable({});\n zoomMapToLocation(marker.getLatLng());\n setEditingLocation({\n marker: marker,\n location: marker.options\n });\n }\n });\n }\n });\n\n var viewLocations = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: showLocations\n ? intl.formatMessage({ id: 'map.locationsToolbar.tooltipHideLocations' })\n : intl.formatMessage({ id: 'map.locationsToolbar.tooltipShowLocations' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>{showLocations ? : }\n )\n }\n },\n addHooks: () => {\n if (!showLocations) {\n dispatch(locationActions.showAllLocationsInMap());\n } else {\n dispatch(locationActions.hideAllLocationsInMap());\n }\n setShowLocations(!showLocations);\n setOpenSlidingPaneForm(false);\n newMarkersRef.current.forEach((m) => {\n try {\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }\n });\n\n var cancelLocation = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n container.pm.disableDraw('Marker');\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var locationsOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.locationsToolbar.tooltipLocations' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [\n authSelectors.getAuthUserHasPermissionsEvery(store, [\n locationPermissions.listLocationsOnMap\n ])\n ? viewLocations\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [locationPermissions.addLocation])\n ? createNewLocationAction\n : null,\n\n cancelLocation\n ].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.LocationsToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [locationsOptions]\n }\n });\n\n var locationsToolbar = new L.Toolbar2.LocationsToolbar({ position: position });\n locationsToolbar.addTo(container);\n\n return () => {\n locationsToolbar.remove();\n };\n } catch {}\n }, [listenMapControlChanges]);\n return (\n <>\n {\n setOpenSlidingPaneForm(false);\n editingLocationRef.current.marker.pm.disable({});\n newMarkersRef.current.forEach((m, i) => {\n try {\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }}\n isInMap\n title={\n editingLocationRef.current &&\n editingLocationRef.current.location &&\n Number.isInteger(editingLocationRef.current.location.locationId)\n ? editingLocationRef.current.location.locationName\n : intl.formatMessage({ id: 'locations.addLocation' })\n }\n editingLocation={editingLocationRef.current?.location}\n setEditingLocation={(location) =>\n setEditingLocation({ marker: editingLocationRef.current.marker, location })\n }\n onClose={() => {\n map.removeLayer(editingLocationRef.current.marker);\n setEditingLocation(undefined);\n }}\n action={(values) => {\n map.removeLayer(editingLocationRef.current.marker);\n dispatch(\n locationActions.startAddingLocation({\n ...values,\n ...values.membership,\n radius: parsers.convertAuthUserDistance2SystemToMeters(values.radius),\n isShownInMap: true,\n enableDispatch: 0,\n dispatchNotificationFreq: 0,\n dispatchEmails: null,\n dispatchCompletionType: 0,\n locationTypeId: 0,\n locationId: uuidv4()\n })\n );\n setEditingLocation(undefined);\n }}\n />\n \n );\n};\n\nToolbarLocationsControl.defaultProps = {\n position: 'topleft',\n showLocations: false,\n setShowLocation: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarLocationsControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Plus, X } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport Icon from 'utility/icomoon';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport routesPermissions from '../../../../../views/screens/Routes/permissions';\n\nexport interface RoutesToolbarOptions {\n useToolbar: boolean;\n showRoutes?: bool;\n setEditingRouteParent?: any;\n setShowRoutes?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarRoutesControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarRoutesControl = (props: RoutesToolbarOptions) => {\n const {\n showRoutes,\n setShowRoutes,\n setEditingRouteParent,\n position = 'topleft',\n listenMapControlChanges\n } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n\n const { store } = useSelector((state) => ({\n store: state\n }));\n\n useEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var createNewRouteAction = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.routesToolbar.tooltipAddRoute' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n setEditingRouteParent({\n showRoute: true,\n route: { newRouteId: uuidv4() },\n routeCheckpoints: [\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() }\n ],\n routePaths: []\n });\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var cancelRoute = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var routesOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.routesToolbar.tooltipRoutes' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [createNewRouteAction, cancelRoute].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.RoutesToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [routesOptions]\n }\n });\n\n var routesToolbar = new L.Toolbar2.RoutesToolbar({ position: position });\n routesToolbar.addTo(container);\n\n return () => {\n routesToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return null;\n};\n\nToolbarRoutesControl.defaultProps = {\n position: 'topleft',\n showRoutes: false,\n setShowRoutes: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarRoutesControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, X } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Icon from 'utility/icomoon';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport unitsPermissions from '../../../../../views/screens/Units/permissions';\nimport * as unitActions from '../../../../../views/screens/Units/actions';\n\nexport interface UnitsToolbarOptions {\n useToolbar: boolean;\n showUnits?: bool;\n setSelectedUnit?: any;\n setShowUnits?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarUnitsControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarUnitsControl = (props: UnitsToolbarOptions) => {\n const {\n showUnits,\n setShowUnits,\n setSelectedUnit,\n position = 'topleft',\n listenMapControlChanges\n } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const { store } = useSelector((state) => ({\n store: state\n }));\n\n useEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var createNewUnitAction = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: showUnits\n ? intl.formatMessage({ id: 'map.unitsToolbar.tooltipHideUnits' })\n : intl.formatMessage({ id: 'map.unitsToolbar.tooltipShowUnits' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>{showUnits ? : }\n )\n }\n },\n addHooks: () => {\n if (!showUnits) {\n dispatch(unitActions.showAllUnitsInMap());\n } else {\n dispatch(unitActions.hideAllUnitsInMap());\n }\n setShowUnits(!showUnits);\n }\n });\n\n var cancelUnit = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var unitsOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.unitsToolbar.tooltipUnits' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [createNewUnitAction, cancelUnit].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.UnitsToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [unitsOptions]\n }\n });\n\n var unitsToolbar = new L.Toolbar2.UnitsToolbar({ position: position });\n unitsToolbar.addTo(container);\n\n return () => {\n unitsToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return null;\n};\n\nToolbarUnitsControl.defaultProps = {\n position: 'topleft',\n showUnits: false,\n setShowUnits: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarUnitsControl;\n","import { LatLngExpression, Map } from 'leaflet';\nimport 'leaflet-draw';\nimport debounce from 'lodash.debounce';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { MapContainer } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport * as unitActions from '../../../views/screens/Units/actions';\nimport * as geofenceActions from '../../screens/Geofences/actions';\nimport * as geofenceSelectors from '../../screens/Geofences/reducers';\nimport * as locationSelectors from '../../screens/Locations/reducers';\nimport { LOCATION_DATA_LIMIT_FOR_CLUSTERING } from '../../screens/Locations/types';\nimport * as routeSelectors from '../../screens/Routes/reducers/routes';\nimport { UNIT_DATA_LIMIT_FOR_CLUSTERING } from '../../screens/Units/types';\nimport MapBaseLayers, { MapBaseLayersOptions } from './components/MapBaseLayers';\nimport MapGeofenceEdit, { MapGeofenceEditOptions } from './components/MapGeofenceEdit';\nimport MapGeofences, { MapGeofencesOptions } from './components/MapGeofences';\nimport MapLocationEdit, { MapLocationEditOptions } from './components/MapLocationEdit';\nimport MapLocations, { MapLocationsOptions } from './components/MapLocations';\nimport MapObjectsBounds, { MapObjectsBoundsOptions } from './components/MapObjectsBounds';\nimport MapRouteEdit from './components/MapRouteEdit';\nimport MapRoutes, { MapRoutesOptions } from './components/MapRoutes';\nimport MapUnits, { MapUnitsOptions } from './components/MapUnits';\nimport MapUnitsPublic, { MapUnitsPublicOptions } from './components/MapUnitsPublic';\nimport RulerControl, { RulerControlOptions } from './components/RulerControl';\nimport ToolbarGeofencesControl, {\n GeofencesToolbarOptions\n} from './components/ToolbarGeofencesControl';\nimport ToolbarHomeControl, { HomeToolbarOptions } from './components/ToolbarHomeControl';\nimport ToolbarLocationsControl, {\n LocationsToolbarOptions\n} from './components/ToolbarLocationsControl';\nimport ToolbarRoutesControl, { RoutesToolbarOptions } from './components/ToolbarRoutesControl';\nimport ToolbarUnitsControl, { UnitsToolbarOptions } from './components/ToolbarUnitsControl';\nimport ToolbarUnitTrajectoryControl, {\n TrajectoryToolbarOptions\n} from './components/ToolbarUnitTrajectoryControl';\nimport { MapProvider } from './context/GoogleMapsContext';\n\ninterface MapProps {\n mapBaseLayersOptions: MapBaseLayersOptions;\n mapOptions: MapOptions;\n homeToolbarOptions: HomeToolbarOptions;\n locationsToolbarOptions: LocationsToolbarOptions;\n geofencesToolbarOptions: GeofencesToolbarOptions;\n routesToolbarOptions: RoutesToolbarOptions;\n unitsToolbarOptions: UnitsToolbarOptions;\n rulerControlOptions: RulerControlOptions;\n trajectoryToolbarOptions: TrajectoryToolbarOptions;\n mapLocationsOptionsToolbar: MapLocationsOptions;\n mapLocationsOptions: MapLocationsOptions;\n mapLocationEditOptions: MapLocationEditOptions;\n mapGeofencesOptionsToolbar: MapGeofencesOptions;\n mapGeofencesOptions: MapGeofencesOptions;\n mapObjectsBoundsOptions: MapObjectsBoundsOptions;\n mapGeofenceEditOptions: MapGeofenceEditOptions;\n mapRoutesOptionsToolbar: MapRoutesOptions;\n mapRoutesOptions: MapRoutesOptions;\n mapUnitsOptionsToolbar: MapUnitsOptions;\n mapUnitsOptions: MapUnitsOptions;\n mapUnitsPublicOptions?: MapUnitsPublicOptions;\n startClusteringAt?: number;\n startRerender?: any;\n}\n\ninterface MapOptions {\n center?: LatLngExpression;\n zoom?: number;\n style?: React.CSSProperties;\n className: string;\n rerenderMap?: Date | React.Key;\n fetchMapObjects?: any;\n resetMapHome?: any;\n}\n\nconst MapsBasic = (props: MapProps) => {\n const zoomLevelToStartClustering = useSelector(\n (state) => authSelectors.getAuthUser(state).zoomLevelToStartClustering\n );\n\n const {\n mapBaseLayersOptions,\n mapOptions,\n homeToolbarOptions,\n locationsToolbarOptions,\n geofencesToolbarOptions,\n routesToolbarOptions,\n unitsToolbarOptions,\n rulerControlOptions,\n trajectoryToolbarOptions,\n mapLocationsOptionsToolbar,\n mapLocationsOptions,\n mapLocationEditOptions,\n mapGeofencesOptionsToolbar,\n mapGeofencesOptions,\n mapGeofenceEditOptions,\n mapRoutesOptionsToolbar,\n mapRoutesOptions,\n mapUnitsOptionsToolbar,\n mapUnitsOptions,\n mapObjectsBoundsOptions,\n mapUnitsPublicOptions,\n startClusteringAt = zoomLevelToStartClustering ?? 9, //Nivel de zoom determinado\n startRerender\n } = props;\n const { style, className, center, zoom, rerenderMap, fetchMapObjects, resetMapHome } = mapOptions;\n\n const history = useHistory();\n const dispatch = useDispatch();\n\n const [map, setMap] = useState();\n const intl = useIntl();\n const [isSelectedSomething, setIsSelectedSomething] = useState({});\n const [listenMapControlChanges, setMapControlChanges] = useState<\n undefined | (boolean | string)[]\n >(undefined);\n const [listenMapControlChangesLayers, setMapControlChangesLayers] = useState<\n undefined | (string | boolean)[]\n >(undefined);\n const [showLocations, setShowLocations] = useState(false);\n const [showGeofences, setShowGeofences] = useState(false);\n const [showRoutes, setShowRoutes] = useState(false);\n const [showUnits, setShowUnits] = useState(unitsToolbarOptions.showUnits === true);\n const [showTrajectory, setShowTrajectory] = useState(false);\n const [activateShowGeofences, setActivateShowGeofences] = useState(false);\n const [mapInitialized, setMapInitialized] = useState(true);\n const [zoomClusterLimit, setZoomClusterLimit] = useState(startClusteringAt);\n const [isClusterLimitSet, setIsClusterLimitSet] = useState(false);\n const [mapBounds, setMapBounds] = useState({});\n\n const { store, geofences, routes, isFetchingLocations, isFetchingGeofences } = useSelector(\n (state) => ({\n store: state,\n //locations: locationSelectors.getLocationsListByMapBounds(state, mapBounds),\n geofences: geofenceSelectors.getGeofencesList(state),\n routes: routeSelectors.getRoutesList(state),\n isFetchingLocations: locationSelectors.isFetchingListLocations(state),\n isFetchingGeofences: geofenceSelectors.isFetchingListGeofences(state)\n })\n );\n\n useDeepCompareEffect(() => {\n if (\n map &&\n mapUnitsOptionsToolbar?.units &&\n mapLocationsOptionsToolbar?.locations &&\n isClusterLimitSet === false &&\n (mapLocationsOptionsToolbar?.locations?.length >= LOCATION_DATA_LIMIT_FOR_CLUSTERING ||\n mapUnitsOptionsToolbar?.units?.length >= UNIT_DATA_LIMIT_FOR_CLUSTERING)\n ) {\n setZoomClusterLimit(map?.getZoom() + 1);\n setIsClusterLimitSet(true);\n }\n }, [\n mapLocationsOptionsToolbar?.locations?.map((location) => ({\n locationId: location.locationId,\n latitude: location.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n mapUnitsOptionsToolbar?.units,\n map,\n isClusterLimitSet\n ]);\n\n const initialMapCenter: LatLngExpression = center ||\n authSelectors.getAuthUserMapHomeCenter(store) || [51.5074, 0.1278];\n const initialZoom = zoom || authSelectors.getAuthUserMapHomeZoom(store) || 13;\n const [mapPosition, setMapPosition] = useState(initialMapCenter);\n useEffect(() => {\n setMapControlChanges([\n // @ts-ignore MapQuest\n typeof MQ,\n showLocations,\n showGeofences,\n showRoutes,\n showUnits,\n showTrajectory,\n intl.locale\n ]);\n }, [showLocations, showGeofences, showRoutes, showUnits, showTrajectory, intl.locale]);\n\n useEffect(() => {\n // @ts-ignore MapQuest\n setMapControlChangesLayers([typeof MQ, intl.locale]);\n }, [intl.locale]);\n\n //Used For Editing Location\n const [editingLocation, setEditingLocation] = useState(undefined);\n const [mapLocationEditOptionsToolbar, setMapLocationEditOptionsToolbar] =\n useState(undefined);\n\n const editingLocationRef = useRef(editingLocation);\n\n useEffect(() => {\n editingLocationRef.current = editingLocation;\n setMapLocationEditOptionsToolbar({\n location:\n editingLocationRef?.current &&\n editingLocationRef?.current.latitude != null &&\n editingLocationRef?.current.longitude != null\n ? editingLocationRef?.current\n : {\n latitude:\n editingLocationRef?.current && editingLocationRef?.current.latitude != null\n ? editingLocationRef?.current.latitude\n : initialMapCenter[0],\n longitude:\n editingLocationRef?.current && editingLocationRef?.current.longitude != null\n ? editingLocationRef?.current.longitude\n : initialMapCenter[1],\n radius:\n editingLocationRef?.current && editingLocationRef?.current.radius\n ? editingLocationRef?.current.radius\n : 10,\n locationClassIconName:\n editingLocationRef?.current && editingLocationRef?.current.locationClassIconName\n ? editingLocationRef?.current.locationClassIconName\n : 'Marker1'\n },\n onLocationDragend: (values) => {\n if (setEditingLocation)\n setEditingLocation({\n ...editingLocationRef?.current,\n longitude: values.lng,\n latitude: values.lat\n });\n },\n showLocation: editingLocationRef && editingLocationRef.current ? true : false,\n hideMarkersByZoom: false,\n useRectangleBounds: true,\n isMapFullScreen: true,\n usePopovers: true\n });\n }, [editingLocation]);\n\n //Used For Editing Geofence\n const [editingGeofence, setEditingGeofence] = useState(undefined);\n const [mapGeofenceEditOptionsToolbar, setMapGeofenceEditOptionsToolbar] =\n useState(undefined);\n const editingGeofenceRef = useRef(editingGeofence);\n\n useEffect(() => {\n editingGeofenceRef.current = editingGeofence;\n setMapGeofenceEditOptionsToolbar({\n geofence: editingGeofenceRef?.current ? editingGeofenceRef?.current : {},\n onGeofenceEdit: (values) => {\n if (setEditingGeofence)\n setEditingGeofence({\n ...editingGeofenceRef?.current,\n ...values\n });\n },\n showGeofence: editingGeofenceRef && editingGeofenceRef.current,\n\n isMapFullScreen: true,\n usePopovers: true\n });\n }, [editingGeofence]);\n\n //Used For Editing Route\n const [editingRoute, setEditingRoute] = useState(undefined);\n const editingRouteRef = useRef(editingRoute);\n\n useEffect(() => {\n editingRouteRef.current = editingRoute;\n }, [editingRoute]);\n\n //Used For Editing Unit\n const [selectedUnit, setSelectedUnit] = useState(undefined);\n const selectedUnitRef = useRef(selectedUnit);\n\n useEffect(() => {\n //al cambiar unidad también vamos a limpiar el history para evitar que\n //se cargue la unidad que esta como parametro en el estado de history\n if (\n selectedUnit &&\n selectedUnit?.unitId &&\n selectedUnitRef?.current &&\n selectedUnitRef?.current?.unitId != selectedUnit?.unitId\n ) {\n // @ts-ignore reset history\n history.replace();\n }\n\n if (\n selectedUnit &&\n selectedUnit?.unitId &&\n !mapUnitsOptionsToolbar.initialUnitInformationOpenId\n ) {\n dispatch(unitActions.startFetchingUnit(selectedUnit?.unitId));\n dispatch(unitActions.showUnitInMap(selectedUnit?.unitId));\n } else if (mapUnitsOptionsToolbar.initialUnitInformationOpenId)\n dispatch(unitActions.showUnitInMap(selectedUnit?.unitId));\n\n selectedUnitRef.current = selectedUnit;\n }, [selectedUnit]);\n\n //Used to show Control Show All Units\n useEffect(() => {\n setShowUnits(unitsToolbarOptions.showUnits === true);\n }, [unitsToolbarOptions.showUnits]);\n\n // It sets a delay so it waits until the user stops dragging or zooming the map to do the fetch\n const fetchMapItemsWithBounds = useCallback(\n debounce((boundsFilters) => {\n fetchMapObjects(boundsFilters);\n setMapBounds(boundsFilters);\n\n if (showGeofences) {\n dispatch(\n geofenceActions.startFetchingGeofences({\n operatorId: mapGeofencesOptionsToolbar?.membership?.operatorId,\n organizationId: mapGeofencesOptionsToolbar?.membership?.organizationId,\n bounds: boundsFilters\n })\n );\n setActivateShowGeofences(true);\n }\n }, 1000),\n [\n dispatch,\n showLocations,\n mapLocationsOptionsToolbar,\n showGeofences,\n mapGeofencesOptionsToolbar,\n fetchMapObjects,\n isFetchingLocations\n ]\n );\n\n // Adds listeners to the map to save the bounds every time the map area changes\n useEffect(() => {\n if (map && (showLocations || showGeofences)) {\n const handleMapMovement = () => {\n const bounds = map.getBounds();\n const boundsFilter = {\n minLat: bounds.getSouthWest().lat,\n minLng: bounds.getSouthWest().lng,\n maxLat: bounds.getNorthEast().lat,\n maxLng: bounds.getNorthEast().lng,\n showInMapLocations: showLocations,\n showInMapGeofences: showGeofences,\n mapZoomLevel: map.getZoom()\n };\n\n fetchMapItemsWithBounds(boundsFilter);\n };\n // Attach event listeners\n map.on('moveend', handleMapMovement);\n map.on('zoomend', handleMapMovement);\n\n if (mapInitialized && (showLocations || showGeofences)) {\n handleMapMovement();\n setMapInitialized(false);\n }\n\n // Clean up listeners on unmount\n return () => {\n map.off('moveend', handleMapMovement);\n map.off('zoomend', handleMapMovement);\n };\n }\n }, [map, fetchMapItemsWithBounds]);\n\n //Show items on map after the fetch is completed\n useEffect(() => {\n if (activateShowGeofences && !isFetchingGeofences) {\n dispatch(geofenceActions.showAllGeofencesInMap());\n setActivateShowGeofences(false);\n }\n }, [activateShowGeofences, isFetchingGeofences]);\n\n useEffect(() => {\n if (showGeofences) setActivateShowGeofences(true);\n }, [mapGeofencesOptionsToolbar?.membership?.organizationId]);\n\n const [spiderfyActivated, setSpiderfyActivated] = useState(false);\n const [spiderfyState, setSpiderfyState] = useState(false);\n\n useEffect(() => {\n if (map && map?.getZoom() >= 16 && !spiderfyState) {\n setSpiderfyState(true);\n setSpiderfyActivated(true);\n } else if (map && map?.getZoom() < 16 && spiderfyState) {\n setSpiderfyActivated(true);\n setSpiderfyState(false);\n }\n }, [map?.getZoom()]);\n\n /* -------------------------------------------------------------------------- */\n /* Map Bounds and rerender */\n /* -------------------------------------------------------------------------- */\n useDeepCompareEffect(() => {\n if (\n !mapObjectsBoundsOptions.setMapPositionToGeofenceBounds &&\n !mapObjectsBoundsOptions.setMapPositionToLocationBounds\n ) {\n if (center) setMapPosition(center);\n }\n }, [center || []]);\n\n useEffect(() => {\n if (map != null) {\n setTimeout(function () {\n map.invalidateSize(true);\n }, 100);\n }\n }, [map, rerenderMap]);\n\n useEffect(() => {\n // @ts-ignore locale does return lang\n if (map) map.pm.setLang(intl.locale);\n }, [map, intl]);\n\n return (\n
\n \n {\n setMap(leafletMap);\n const bounds = leafletMap.getBounds();\n const boundsFilter = {\n minLat: bounds.getSouthWest().lat,\n minLng: bounds.getSouthWest().lng,\n maxLat: bounds.getNorthEast().lat,\n maxLng: bounds.getNorthEast().lng,\n showInMapLocations: showLocations,\n showInMapGeofences: showGeofences\n };\n if (showLocations || showGeofences) fetchMapItemsWithBounds(boundsFilter);\n }}\n >\n \n\n {/* MapLocations */}\n {(mapLocationsOptionsToolbar.initialLocationInformationOpenId !== undefined ||\n (showLocations && mapLocationsOptionsToolbar.useIsShownLocation)) && (\n \n )}\n\n {mapLocationsOptions.showLocations && }\n {mapLocationEditOptionsToolbar?.showLocation && (\n \n )}\n {mapLocationEditOptions.showLocation && }\n\n {/* Geofences */}\n {(showGeofences || mapGeofencesOptionsToolbar.useIsShownGeofence) && (\n \n )}\n {mapGeofencesOptions.showGeofences && }\n {mapGeofenceEditOptionsToolbar?.showGeofence && (\n \n )}\n {mapGeofenceEditOptions.showGeofence && }\n\n {/* MapRoutes */}\n {(showRoutes || mapRoutesOptionsToolbar.useIsShownRoute) && (\n \n )}\n\n {mapRoutesOptions.showRoutes && }\n {editingRoute?.showRoute && (\n \n )}\n\n {/* MapUnits */}\n {(mapUnitsOptionsToolbar.initialUnitInformationOpenId !== undefined ||\n showUnits ||\n mapUnitsOptionsToolbar.useIsShownUnit) && (\n \n )}\n\n {mapUnitsOptions.showUnits && (\n \n )}\n\n {mapUnitsPublicOptions && mapUnitsPublicOptions.showUnits && (\n \n )}\n\n {/* Map Object Bounds */}\n \n\n {/* Toolbars */}\n {homeToolbarOptions.useToolbar && (\n \n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['LO008', 'LO001']) &&\n locationsToolbarOptions.useToolbar && (\n setShowLocations(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['GF001', 'GF002']) &&\n geofencesToolbarOptions.useToolbar && (\n setShowGeofences(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['UP025']) &&\n unitsToolbarOptions.useToolbar && (\n setShowUnits(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['RL001']) &&\n routesToolbarOptions.useToolbar && (\n setShowRoutes(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, ['UP046']) &&\n trajectoryToolbarOptions.useToolbar && (\n setShowTrajectory(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n {rulerControlOptions.useControl && (\n \n )}\n \n \n
\n );\n};\n\nMapsBasic.defaultProps = {\n mapOptions: {\n center: [51.5074, 0.1278],\n zoom: 13,\n style: {},\n className: '',\n rerenderMap: null\n },\n\n homeToolbarOptions: ToolbarHomeControl.defaultProps,\n locationsToolbarOptions: ToolbarLocationsControl.defaultProps,\n geofencesToolbarOptions: ToolbarGeofencesControl.defaultProps,\n routesToolbarOptions: ToolbarRoutesControl.defaultProps,\n unitsToolbarOptions: ToolbarUnitsControl.defaultProps,\n rulerControlOptions: RulerControl.defaultProps,\n trajectoryToolbarOptions: ToolbarUnitTrajectoryControl.defaultProps,\n mapBaseLayersOptions: MapBaseLayers.defaultProps,\n mapLocationsOptionsToolbar: MapLocations.defaultProps,\n mapLocationsOptions: MapLocations.defaultProps,\n mapLocationEditOptions: MapLocationEdit.defaultProps,\n mapGeofencesOptionsToolbar: MapGeofences.defaultProps,\n mapGeofencesOptions: MapGeofences.defaultProps,\n mapGeofenceEditOptions: MapGeofenceEdit.defaultProps,\n mapRoutesOptionsToolbar: MapRoutes.defaultProps,\n mapRoutesOptions: MapRoutes.defaultProps,\n mapRouteEditOptions: MapRouteEdit.defaultProps,\n mapUnitsOptionsToolbar: MapUnits.defaultProps,\n mapUnitsOptions: MapUnits.defaultProps,\n mapObjectsBoundsOptions: MapObjectsBounds.defaultProps\n};\nexport default MapsBasic;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport configurations from '../../../../redux/reducers/configurations';\nimport * as authTypes from '../../../../redux/types/auth';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n\n const newState = {};\n order.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n isSelected: state[monitoringUserId]?.isSelected ?? false,\n ...entities[monitoringUserId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n isSelected: newState[monitoringUserId].isSelected ?? false,\n ...entities[monitoringUserId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MONITORING_USER_FETCH_COMPLETED: {\n const { monitoringUser } = action.payload;\n return {\n ...state,\n [monitoringUser.userName]: {\n ...state[monitoringUser.userName],\n ...monitoringUser,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.MONITORING_USER_ADD_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n const newState = omit(state, oldId);\n newState[monitoringUser.userName] = {\n isShownInMap: false,\n ...state[oldId],\n ...monitoringUser,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MONITORING_USER_EDIT_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n return {\n ...omit(state, [oldId]),\n [monitoringUser.userName]: {\n isShownInMap: false,\n ...omit(state[oldId], ['oldMonitoringUser']),\n ...omit(monitoringUser, ['oldMonitoringUser']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MONITORING_USER_ADD_STARTED: {\n const monitoringUser = action.payload;\n const newState = { ...state };\n newState[monitoringUser.userName] = {\n isShownInMap: false,\n isSelected: false,\n ...monitoringUser,\n isConfirmed: false\n };\n return newState;\n }\n case types.MONITORING_USER_EDIT_STARTED: {\n const monitoringUser = action.payload;\n return {\n ...state,\n [monitoringUser.oldUserName]: {\n isShownInMap: false,\n ...state[monitoringUser.oldUserName],\n oldMonitoringUser: state[monitoringUser.oldUserName],\n ...monitoringUser,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MONITORING_USER_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MONITORING_USER_EDIT_FAILED: {\n const { oldMonitoringUser } = action.payload;\n return {\n ...state,\n [oldMonitoringUser.userName]: {\n isShownInMap: false,\n ...omit(state[oldMonitoringUser.userName], ['oldMonitoringUser']),\n ...oldMonitoringUser,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n const { users } = action.payload;\n return omit(state, users);\n }\n\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED: {\n const values = action.payload;\n const newState = {\n ...state,\n [values.userName]: {\n ...state[values.userName],\n roleId: values.roleId\n }\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MONITORING_USER_SELECTED: {\n const monitoringUserId = action.payload;\n const newState = {\n ...state,\n [monitoringUserId]: {\n ...state[monitoringUserId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MONITORING_USER_DESELECTED: {\n const monitoringUserId = action.payload;\n return {\n ...state,\n [monitoringUserId]: {\n ...state[monitoringUserId],\n isSelected: false\n }\n };\n }\n\n case types.MONITORING_USERS_ALL_SELECTED: {\n const monitoringUserIds = action.payload;\n const newState = { ...state };\n if (monitoringUserIds.length == 0) {\n forEach(state, (monitoringUser: any, monitoringUserId) => {\n newState[monitoringUserId] = {\n ...monitoringUser,\n isSelected: true\n };\n });\n } else {\n monitoringUserIds.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n ...state[monitoringUserId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MONITORING_USERS_ALL_DESELECTED: {\n const monitoringUserIds = action.payload;\n const newState = { ...state };\n if (monitoringUserIds.length == 0) {\n forEach(state, (monitoringUser: any, monitoringUserId) => {\n newState[monitoringUserId] = {\n ...monitoringUser,\n isSelected: false\n };\n });\n } else {\n monitoringUserIds.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n ...state[monitoringUserId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n case types.USERS_ASSIGN_SCHEDULE_COMPLETED: {\n const userAssignSchedule = action.payload;\n const newState = { ...state };\n userAssignSchedule?.users?.forEach((userName) => {\n newState[userName] = {\n ...state[userName],\n scheduleId: userAssignSchedule.scheduleId,\n scheduleName: userAssignSchedule.scheduleName\n };\n });\n return newState;\n }\n\n case types.USERS_UNASSIGN_SCHEDULE_COMPLETED: {\n const userAssignSchedule = action.payload;\n const newState = { ...state };\n userAssignSchedule?.users?.forEach((userName) => {\n newState[userName] = {\n ...state[userName],\n scheduleId: null,\n scheduleName: null\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n case types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MONITORING_USER_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MONITORING_USER_ADD_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n return state.map((userName) => (userName === oldId ? monitoringUser.userName : userName));\n }\n\n case types.MONITORING_USER_EDIT_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n if (oldId !== monitoringUser.userName) {\n const newState = uniq([...state, monitoringUser.userName]);\n return newState.filter((userNameState) => userNameState !== oldId);\n }\n return state;\n }\n\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n const { users } = action.payload;\n return state.filter((userNameState) => users.indexOf(userNameState) < 0);\n }\n\n //CASE ADD STARTED\n case types.MONITORING_USER_ADD_STARTED: {\n const monitoringUser = action.payload;\n return [...state, monitoringUser.userName];\n }\n\n //CASE ADD FAILED\n case types.MONITORING_USER_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((userNameState) => userNameState !== oldId);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USERS_FETCH_STARTED: {\n return true;\n }\n case types.MONITORING_USERS_FETCH_COMPLETED:\n case types.MONITORING_USERS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USER_FETCH_STARTED: {\n return true;\n }\n case types.MONITORING_USER_FETCH_COMPLETED:\n case types.MONITORING_USER_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_ADD_STARTED: {\n return true;\n }\n case types.MONITORING_USER_ADD_COMPLETED:\n case types.MONITORING_USER_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED:\n case types.USERS_ASSIGN_SCHEDULE_STARTED:\n case types.USERS_UNASSIGN_SCHEDULE_STARTED:\n case types.MONITORING_USER_EDIT_STARTED: {\n return true;\n }\n case types.MONITORING_USER_EDIT_COMPLETED:\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED:\n case types.USERS_ASSIGN_SCHEDULE_COMPLETED:\n case types.USERS_UNASSIGN_SCHEDULE_COMPLETED:\n case types.MONITORING_USER_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_REMOVE_STARTED: {\n return true;\n }\n case types.MONITORING_USER_REMOVE_COMPLETED:\n case types.MONITORING_USER_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MONITORING_USERS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USERS_FETCH_STARTED:\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.MONITORING_USER_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_FETCH_STARTED:\n case types.MONITORING_USER_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_ADD_STARTED:\n case types.MONITORING_USER_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_EDIT_STARTED:\n case types.MONITORING_USER_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_REMOVE_STARTED:\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingMonitoringUserPassword = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USER_UPDATE_PASSWORD_STARTED: {\n return true;\n }\n\n case types.MONITORING_USER_UPDATE_PASSWORD_COMPLETED:\n case types.MONITORING_USER_UPDATE_PASSWORD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst monitoringUsers = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n isUpdatingMonitoringUserPassword,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n configurations\n});\n\nexport default monitoringUsers;\n\n//Own state\nexport const getOwnState = (state) => state.people.monitoringUsers;\n\n//Information\nexport const getMonitoringUser = (state, userName): types.MonitoringUser =>\n getOwnState(state).byId[userName];\nexport const getMonitoringUsersList = (state): types.MonitoringUser[] =>\n getOwnState(state)\n .order.map((userName) => getMonitoringUser(state, userName))\n .filter((user) => user?.userStatus > 0);\nexport const getMonitoringUsersSpecificList = (state, list) =>\n list.map((userName) => getMonitoringUser(state, userName));\nexport const getSelectedMonitoringUsers = (state) => {\n const selectedMonitoringUsers = getMonitoringUsersList(state).filter(\n (monitoringUser) => monitoringUser.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedMonitoringUsers.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedMonitoringUsers.length > 0) return selectedMonitoringUsers ?? null;\n\n return null;\n};\nexport const getMonitoringUsersFromBrand = (state, brandId) =>\n getMonitoringUsersList(state).filter((monitoringUser) => monitoringUser?.brandId === brandId);\n\nexport const getSelectedMonitoringUser = (state) => {\n const selectedMonitoringUsers = getMonitoringUsersList(state).filter(\n (monitoringUser) => monitoringUser.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedMonitoringUsers.length === 1) return selectedMonitoringUsers[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isFetchingMonitoringUser = (state) => getOwnState(state).isFetching;\nexport const isFetchingListMonitoringUsers = (state) => getOwnState(state).isFetchingList;\nexport const isAddingMonitoringUser = (state) => getOwnState(state).isAdding;\nexport const isEditingMonitoringUser = (state) => getOwnState(state).isEditing;\nexport const isRemovingMonitoringUser = (state) => getOwnState(state).isRemoving;\nexport const isChangingMonitoringUserPassword = (state) =>\n getOwnState(state).isUpdatingMonitoringUserPassword;\n\n//Errors\nexport const getFetchingMonitoringUserErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListMonitoringUsersErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingMonitoringUserErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingMonitoringUserErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingMonitoringUserErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { v4 as uuidv4 } from 'uuid';\nimport filter from 'lodash/filter';\n\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport * as types from '../types';\nimport * as interfaces from 'utility/types';\n\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.FORMS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((formId) => {\n newState[formId] = {\n isSelected: false,\n sections: {\n byId: {},\n order: []\n },\n questions: {\n byId: {},\n order: []\n },\n responses: {\n byId: {},\n order: []\n },\n ...entities[formId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.FORMS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n sections: {\n byId: {},\n order: []\n },\n questions: {\n byId: {},\n order: []\n },\n responses: {\n byId: {},\n order: []\n },\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.FORM_SECTIONS_FETCH_COMPLETED: {\n const { entities, order, formId } = action.payload;\n const newState = { ...state };\n newState[formId] = {\n ...newState[formId],\n sections: {\n byId: entities,\n order: order\n }\n };\n return newState;\n }\n\n case types.FORM_QUESTIONS_FETCH_COMPLETED: {\n const { entities, order, formId } = action.payload;\n const newState = { ...state };\n newState[formId] = {\n ...newState[formId],\n questions: {\n byId: entities,\n order: order\n }\n };\n return newState;\n }\n\n case types.FORM_QUESTIONS_CLEARED: {\n const formId = action.payload;\n const newState = { ...state };\n newState[formId].questions = {\n byId: {},\n order: []\n };\n return newState;\n }\n\n case types.FORM_EDIT_COMPLETED: {\n const form = action.payload;\n return {\n ...state,\n [form.organizationFormId]: {\n ...omit(state[form.organizationFormId], ['oldForms']),\n ...omit(form, ['oldForms']),\n isConfirmed: true\n }\n };\n }\n\n case types.FORM_ADD_COMPLETED: {\n const { oldId, form } = action.payload;\n const newState = omit(state, oldId);\n newState[form.organizationFormId] = {\n ...state[oldId],\n ...form,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.FORM_RESPONSE_FETCH_COMPLETED: {\n const { entities, order, formId } = action.payload;\n const newState = { ...state };\n newState[formId].responses = {\n byId: { ...entities },\n order: order\n };\n return newState;\n }\n\n case types.FORM_RESPONSES_CLEARED: {\n const formId = action.payload;\n const newState = { ...state };\n newState[formId].responses = {\n byId: {},\n order: []\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.FORM_ADD_STARTED:\n case types.FORM_EXTERNAL_ADD_STARTED: {\n const form = action.payload;\n const newState = { ...state };\n newState[form.organizationFormId] = {\n isSelected: false,\n ...form,\n organizationName: '',\n divisionName: '',\n subdivisionName: '',\n isConfirmed: false\n };\n return newState;\n }\n case types.FORM_EDIT_STARTED:\n case types.FORM_EXTERNAL_EDIT_STARTED: {\n const form = action.payload;\n return {\n ...state,\n [form.organizationFormId]: {\n ...state[form.organizationFormId],\n oldForm: state[form.organizationFormId],\n ...form,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.FORM_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.FORM_EDIT_FAILED: {\n const oldForm = action.payload;\n return {\n ...state,\n [oldForm.organizationFormId]: {\n ...omit(state[oldForm.organizationFormId], ['oldForm']),\n ...oldForm,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.FORM_REMOVE_COMPLETED: {\n const { formId } = action.payload;\n return omit(state, formId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.FORM_SELECTED: {\n const formId = action.payload;\n const newState = {\n ...state,\n [formId]: {\n ...state[formId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.FORM_DESELECTED: {\n const formId = action.payload;\n return {\n ...state,\n [formId]: {\n ...state[formId],\n isSelected: false\n }\n };\n }\n\n case types.FORMS_ALL_SELECTED: {\n const formIds = action.payload;\n const newState = { ...state };\n if (formIds.length == 0) {\n forEach(state, (form: any, formId) => {\n newState[formId] = {\n ...form,\n isSelected: true\n };\n });\n } else {\n formIds.forEach((formId) => {\n newState[formId] = {\n ...state[formId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.FORMS_ALL_DESELECTED: {\n const formIds = action.payload;\n const newState = { ...state };\n if (formIds.length == 0) {\n forEach(state, (form: any, formId) => {\n newState[formId] = {\n ...form,\n isSelected: false\n };\n });\n } else {\n formIds.forEach((formId) => {\n newState[formId] = {\n ...state[formId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n case types.FORMS_ALL_QUESTIONS_CLEARED: {\n const formIds = action.payload;\n const newState = { ...state };\n if (formIds.length == 0) {\n forEach(state, (form: any, formId) => {\n newState[formId] = {\n ...form,\n questions: {\n byId: {},\n order: []\n }\n };\n });\n } else {\n formIds.forEach((formId) => {\n newState[formId] = {\n ...state[formId],\n questions: {\n byId: {},\n order: []\n }\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.FORMS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.FORMS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.FORM_ADD_COMPLETED: {\n const { oldId, form } = action.payload;\n return state.map((formId) => (formId === oldId ? form.organizationFormId : formId));\n }\n\n case types.FORM_REMOVE_COMPLETED: {\n const { formId } = action.payload;\n return state.filter((formIdState) => formIdState !== formId);\n }\n\n //CASE ADD STARTED\n case types.FORM_ADD_STARTED:\n case types.FORM_EXTERNAL_ADD_STARTED: {\n const form = action.payload;\n return [...state, form.organizationFormId];\n }\n\n //CASE ADD FAILED\n case types.FORM_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((formIdState) => formIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.FORMS_FETCH_STARTED: {\n return true;\n }\n case types.FORMS_FETCH_COMPLETED:\n case types.FORMS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.FORM_SECTIONS_FETCH_STARTED:\n case types.FORM_QUESTIONS_FETCH_STARTED:\n case types.FORM_RESPONSE_FETCH_STARTED: {\n return true;\n }\n case types.FORM_SECTIONS_FETCH_COMPLETED:\n case types.FORM_QUESTIONS_FETCH_COMPLETED:\n case types.FORM_RESPONSE_FETCH_COMPLETED:\n case types.FORM_SECTIONS_FETCH_FAILED:\n case types.FORM_QUESTIONS_FETCH_FAILED:\n case types.FORM_RESPONSE_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.FORM_ADD_STARTED:\n case types.FORM_EXTERNAL_ADD_STARTED: {\n return true;\n }\n case types.FORM_ADD_COMPLETED:\n case types.FORM_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.FORM_EDIT_STARTED:\n case types.FORM_EXTERNAL_EDIT_STARTED: {\n return true;\n }\n case types.FORM_EDIT_COMPLETED:\n case types.FORM_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.FORM_REMOVE_STARTED: {\n return true;\n }\n case types.FORM_REMOVE_COMPLETED:\n case types.FORM_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.FORMS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORMS_FETCH_STARTED:\n case types.FORMS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.FORMS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORMS_FETCH_STARTED:\n case types.FORMS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.FORM_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORM_ADD_STARTED:\n case types.FORM_EXTERNAL_ADD_STARTED:\n case types.FORM_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.FORM_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORM_EDIT_STARTED:\n case types.FORM_EXTERNAL_EDIT_STARTED:\n case types.FORM_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.FORM_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORM_REMOVE_STARTED:\n case types.FORM_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sectionsById = (state: { [id: string]: interfaces.Section } = {}, action) => {\n switch (action.type) {\n case types.FORM_SECTION_ADDED: {\n const { sectionType, position, sectionId } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n sectionId: sectionId,\n name: appIntl().formatMessage({ id: 'forms.section' }),\n questions: [],\n rows: sectionType === 0 ? [] : [{ rowId: 'initialRow', name: '' }],\n type: sectionType + 1,\n useDropDownRows: false,\n isCollapsed: false\n };\n return newState;\n }\n case types.FORM_SECTION_NAME_EDITED: {\n const { sectionId, sectionName } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n ...newState[sectionId],\n name: sectionName\n };\n return newState;\n }\n case types.FORM_SECTION_DELETED: {\n const sectionId = action.payload;\n const newState = { ...state };\n return omit(newState, sectionId);\n }\n case types.FORM_SECTION_COPIED: {\n const { sectionId, newSectionId, newSection } = action.payload;\n const newState = { ...state };\n const sectionToCopy = {\n ...newState[sectionId],\n questions: newState[sectionId].questions.map((question) => ({\n ...question,\n questionId: uuidv4()\n }))\n };\n return {\n ...newState,\n [newSectionId]: { ...sectionToCopy, ...newSection, sectionId: newSectionId }\n };\n }\n case types.FORM_ROW_ADDED: {\n const { sectionId, rowId, name } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n ...newState[sectionId],\n rows: [\n ...newState[sectionId].rows,\n {\n rowId,\n name\n }\n ]\n };\n return newState;\n }\n case types.FORM_ROW_NAME_EDITED: {\n const { sectionId, rowId, name } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n ...newState[sectionId],\n rows: [\n ...newState[sectionId].rows.map((row) => (row.rowId === rowId ? { ...row, name } : row))\n ]\n };\n return newState;\n }\n case types.FORM_ROW_MOVED: {\n const { sectionId, startingPosition, endingPosition } = action.payload;\n const newRows = [...state[sectionId].rows];\n const [removed] = newRows.splice(startingPosition, 1);\n newRows.splice(endingPosition, 0, removed);\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n rows: newRows\n }\n };\n }\n case types.FORM_ROW_DELETED: {\n const { sectionId, rowId } = action.payload;\n const newState = { ...state };\n\n newState[sectionId] = {\n ...newState[sectionId],\n rows: [...newState[sectionId].rows.filter((row) => !(row.rowId === rowId))]\n };\n return newState;\n }\n case types.FORM_QUESTION_ADDED: {\n const { sectionId, position, questionType, questionId } = action.payload;\n const newState = { ...state };\n const newQuestions = [\n ...state[sectionId].questions.map((question) => ({ ...question, isCollapsed: true }))\n ];\n let newQuestion = {\n questionId: questionId,\n name: '',\n type: questionType,\n isRequired: false,\n isPrivate: false,\n isCollapsed: false\n };\n let newQuestionA = {\n questionId: questionId,\n name: '',\n type: questionType,\n isRequired: false,\n isPrivate: false,\n isCollapsed: false,\n answers: [{ answerId: 'initialAnswer', answer: '' }]\n };\n if (questionType === 2 || questionType == 3 || questionType == 4) {\n newQuestions.splice(position, 0, newQuestionA);\n } else {\n newQuestions.splice(position, 0, newQuestion);\n }\n newState[sectionId] = {\n ...newState[sectionId],\n questions: newQuestions\n };\n return newState;\n }\n case types.FORM_QUESTION_MOVED: {\n const { sectionId, startingPosition, endingPosition } = action.payload;\n const newQuestions = [...state[sectionId].questions];\n const [removed] = newQuestions.splice(startingPosition, 1);\n newQuestions.splice(endingPosition, 0, removed);\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: newQuestions\n }\n };\n }\n case types.FORM_ANSWER_ADDED: {\n const { sectionId, questionId, answerId, answer } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: state[sectionId].questions.map((question, i) =>\n i === questionId\n ? { ...question, answers: [...(question.answers ?? []), { answerId, answer }] }\n : question\n )\n }\n };\n }\n case types.FORM_ANSWER_MOVED: {\n const { sectionId, questionId, startingPosition, endingPosition } = action.payload;\n const newQuestions = [...state[sectionId].questions];\n const newAnswers = newQuestions[questionId].answers ?? [];\n const [removed] = newAnswers.splice(startingPosition, 1);\n newAnswers.splice(endingPosition, 0, removed);\n newQuestions[questionId].answers = newAnswers;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: newQuestions\n }\n };\n }\n case types.FORM_ANSWER_EDITED: {\n const { sectionId, questionId, position, answer } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: state[sectionId].questions.map((question, i) =>\n i === questionId\n ? {\n ...question,\n answers: (question.answers ?? []).map((a, i) =>\n i === position ? { ...a, answer } : a\n )\n }\n : question\n )\n }\n };\n }\n case types.FORM_ANSWER_DELETED: {\n const { sectionId, questionId, position } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: state[sectionId].questions.map((question, i) =>\n i === questionId\n ? { ...question, answers: (question.answers ?? []).filter((_, i) => i != position) }\n : question\n )\n }\n };\n }\n case types.FORM_QUESTION_DELETED: {\n const { sectionId, questionId } = action.payload;\n const newQuestions = [...state[sectionId].questions].filter(\n (question) => question.questionId !== questionId\n );\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: newQuestions\n }\n };\n }\n case types.FORM_QUESTION_COPIED: {\n const { sectionId, questionId, newQuestion } = action.payload;\n const newState = { ...state };\n const newQuestions = newState[sectionId]?.questions;\n var oldQuestionIndex = newQuestions.length - 1;\n const oldQuestion = newQuestions.filter((question, i) => {\n if (question.questionId === questionId) {\n oldQuestionIndex = i + 1;\n return true;\n }\n return false;\n })[0];\n newQuestions.splice(oldQuestionIndex, 0, {\n ...oldQuestion,\n ...newQuestion\n });\n return {\n ...newState,\n [sectionId]: {\n ...newState[sectionId],\n questions: newQuestions\n }\n };\n }\n case types.FORM_SECTIONS_SET: {\n const { sectionsOrder, sectionsId } = action.payload;\n forEach(sectionsId, (value, key) => {\n sectionsId[key] = {\n ...sectionsId[key],\n questions: [],\n rows:\n sectionsId[key].sectionTypeId === 1\n ? []\n : sectionsId[key].sectionRows?.split('^')?.map((row) => {\n const [rowId, name] = row?.split('~');\n return { rowId, name };\n }),\n type: sectionsId[key].sectionTypeId\n };\n });\n return sectionsId ?? state;\n }\n case types.FORM_SECTION_CHANGE_COLLAPSED: {\n const { sectionId } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n ...newState[sectionId],\n isCollapsed: !newState[sectionId].isCollapsed\n };\n return newState;\n }\n\n case types.FORM_QUESTION_SET: {\n const { sectionId, question } = action.payload;\n const newSection = { ...state };\n const newQuestion = {\n ...question,\n type: question.questionTypeId\n };\n newSection[sectionId].questions = [...newSection[sectionId].questions, newQuestion];\n return newSection;\n }\n\n case types.FORM_QUESTION_NAME_EDITED: {\n const { sectionId, questionId, questionName } = action.payload;\n const newQuestions = [...state[sectionId].questions];\n newQuestions[questionId].name = questionName;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: newQuestions\n }\n };\n }\n\n case types.FORM_QUESTION_HEIGHT_EDITED: {\n const { sectionId, questionId, height } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: [\n ...state[sectionId].questions.map((question, i) =>\n i === questionId ? { ...question, height: height } : question\n )\n ]\n }\n };\n }\n\n case types.FORM_QUESTION_CHANGE_COLLAPSED: {\n const { sectionId, questionId } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: [\n ...state[sectionId].questions.map((question, i) =>\n question.questionId === questionId\n ? { ...question, isCollapsed: !question.isCollapsed }\n : question\n )\n ]\n }\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst sectionsOrder = (state: any[] = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.FORM_SECTION_ADDED: {\n const { sectionType, position, sectionId } = action.payload;\n const newState = [...state];\n newState.splice(position, 0, sectionId);\n return newState;\n }\n\n case types.FORM_SECTION_MOVED: {\n const { startingPosition, endingPosition } = action.payload;\n const list = [...state];\n const [removed] = list.splice(startingPosition, 1);\n list.splice(endingPosition, 0, removed);\n return list;\n }\n\n case types.FORM_SECTION_DELETED: {\n const sectionId = action.payload;\n const newState = state.filter((element) => element !== sectionId);\n return newState;\n }\n\n case types.FORM_SECTION_COPIED: {\n const { sectionId, newSectionId } = action.payload;\n const newState = [...state];\n var oldSectionIndex = newState.length;\n newState.map((id, i) => {\n if (id === sectionId) oldSectionIndex = i + 1;\n });\n newState.splice(oldSectionIndex, 0, newSectionId);\n return newState;\n }\n\n case types.FORM_SECTIONS_SET: {\n const { sectionsOrder, sectionsId } = action.payload;\n return sectionsOrder ?? state;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst selectedAnswer = (state: any = null, action) => {\n switch (action.type) {\n case types.FORM_ANSWER_SELECTED: {\n const responseId = action.payload;\n return responseId;\n }\n case types.FORM_ANSWER_DESELECTED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst forms = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n sectionsOrder,\n sectionsById,\n selectedAnswer\n});\n\nexport default forms;\n\n//Own state\nexport const getOwnState = (state) => state.forms;\n\n//Information\nexport const getForm = (state, formId) => {\n const form = getOwnState(state)?.byId[formId];\n if (form) {\n const operator = form.operatorId\n ? operatorSelectors.getOperator(state, form.operatorId)\n : undefined;\n const organization = form.organizationId\n ? organizationSelectors.getOrganization(state, form.organizationId)\n : undefined;\n const division = form.divisionId\n ? divisionSelectors.getDivision(state, form.divisionId)\n : undefined;\n const subdivision = form.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, form.subdivisionId)\n : undefined;\n return {\n ...form,\n operatorName: operator?.operatorName,\n organizationName: organization?.organizationName,\n divisionName: division?.divisionName,\n subdivisionName: subdivision?.subdivisionName\n };\n } else return undefined;\n};\n\nexport const getFormSections = (state, formId) => getForm(state, formId)?.sections;\nexport const getFormSection = (state, formId, sectionId) =>\n getFormSections(state, formId)?.byId[sectionId];\nexport const getFormSectionsList = (state, formId) =>\n getFormSections(state, formId)?.order?.map((section) => getFormSection(state, formId, section));\n\nexport const getFormQuestions = (state, formId) => getForm(state, formId)?.questions;\nexport const getFormQuestion = (state, formId, questionId) =>\n getFormQuestions(state, formId).byId[questionId];\nexport const getFormQuestionsList = (state, formId) =>\n getFormQuestions(state, formId)?.order?.map((question) =>\n getFormQuestion(state, formId, question)\n );\n\nexport const getSectionsWithQuestions = (state, formId) =>\n getFormSectionsList(state, formId)?.map((section) => ({\n ...section,\n questions: getFormQuestionsList(state, formId).filter(\n (question) => question.sectionId === section.sectionId\n )\n }));\n\nexport const getFormsList = (state) =>\n getOwnState(state)\n .order?.map((id) => getForm(state, id))\n .filter((form) => form.organizationFormStatus > 0);\n\n// Filter items inside list that are undefined\nexport const getFormsSpecificList = (state, list) =>\n list.map((id) => getForm(state, id)).filter((form) => form !== undefined);\nexport const getFormsListByOrganization = (state, organizationId) => {\n return getFormsList(state).filter((form) => form.organizationId === organizationId);\n};\nexport const getFormsListByMembership = (state, membership) => {\n return getFormsList(state).filter(\n (form) =>\n membership &&\n (!membership.operatorId || membership.operatorId === form.operatorId) &&\n (!membership.organizationId || membership.organizationId === form.organizationId) &&\n (!membership.divisionId || membership.divisionId === form.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === form.subdivisionId)\n );\n};\nexport const getSelectedForms = (state) => {\n const selectedForms = getFormsList(state).filter((form) => form.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedForms.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedForms.length > 0) return selectedForms;\n};\n\nexport const getSelectedForm = (state) => {\n const selectedForms = getFormsList(state).filter((form) => form?.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedForms.length === 1) return selectedForms[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const getSelectedFormSections = (state) => {\n const selectedForm = getSelectedForm(state);\n return selectedForm?.sections?.order.map((section) => selectedForm?.sections?.byId[section]);\n};\n\nexport const getSelectedFormQuestions = (state) => {\n const selectedForm = getSelectedForm(state);\n return selectedForm?.questions?.order.map((question) => selectedForm?.questions?.byId[question]);\n};\n\n//Formulario para creación de formularios\nexport const getSection = (state, id) => ({\n ...getOwnState(state).sectionsById[id],\n questions: getOwnState(state).sectionsById[id]?.questions?.map((question) => ({\n ...question,\n allowOtherOption: false,\n type: question?.questionTypeId ?? question?.type\n }))\n});\nexport const getSectionOrder = (state) => getOwnState(state).sectionsOrder;\nexport const getSections = (state) =>\n getSectionOrder(state).map((section) => getSection(state, section));\nexport const getQuestions = (state) =>\n getSections(state).map((section) => ({\n sectionId: section.sectionId,\n questions: section.questions.map((question) => ({\n ...question,\n allowOtherOption: false,\n isRequired: false,\n isPrivate: false\n }))\n }));\n\nexport const getResponses = (state, formId) =>\n getOwnState(state)?.byId[formId]?.responses?.order?.map(\n (response) => getOwnState(state)?.byId[formId]?.responses?.byId[response]\n );\n\nexport const getResponse = (state, formId, responseId) => {\n const response = getOwnState(state)?.byId[formId]?.responses?.byId[responseId];\n return response?.result.map((item) => response.questions[item]);\n};\n\nexport const getSelectedResponse = (state) => getOwnState(state).selectedAnswer;\n\nexport const getSelectedResponseDetails = (state) => {\n const selectedAnswer = getOwnState(state).selectedAnswer;\n const selectedResponses = getSelectedForm(state)?.responses?.byId[selectedAnswer];\n return selectedResponses.result.map((response) => selectedResponses.questions[response]);\n};\n\n//Status of sagas\nexport const isFetchingForm = (state) => getOwnState(state).isFetching;\nexport const isFetchingListForms = (state) => getOwnState(state).isFetchingList;\nexport const isAddingForm = (state) => getOwnState(state).isAdding;\nexport const isEditingForm = (state) => getOwnState(state).isEditing;\nexport const isRemovingForm = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingFormErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListFormsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingFormErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingFormErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingFormErrors = (state) => getOwnState(state).errorRemoving;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/driver';\n\ninterface DriverDeleteRequest {\n driverId: number;\n driverName: string;\n}\ninterface DriverFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n}\ninterface DriverImagesRequest {\n driverId: number;\n}\n\ninterface ImportVehiclesFilters {\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n drivers?: String;\n}\n\nexport const getDriversListService = (request: DriverFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'drivers.driver',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getDriverInformationService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDriverInformation`, request);\n};\n\nexport const getDriverImagesService = (\n request: DriverImagesRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'drivers.driverImages',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getImages`, request);\n};\n\nexport const saveDriverService = (request: any, configActions: ConfigActions, person: any) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: person && person === true ? 'people.person' : 'drivers.driver',\n action: request.driverId ? 'Edit' : 'Create',\n name: request.driverName,\n genderType: person && person === true ? 'SingularFemale' : 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteDriverService = (\n request: DriverDeleteRequest,\n configActions: ConfigActions,\n person: any\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.driverName}`,\n object: person && person === true ? 'people.person' : 'drivers.driver',\n action: 'Delete',\n genderType: person && person === true ? 'SingularFemale' : 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const getSensorsForPeople = (configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'drivers.driver',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.get(`${baseUrl}/sensors`);\n};\n\nexport const assignDriversMassivelyService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.units',\n action: 'Edit',\n name: request.driverName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/massiveAssignDriversToUnits`, request);\n};\n\nexport const importDriversService = async (\n request: ImportVehiclesFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'drivers.driver',\n action: 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importDrivers`, request);\n};\n","const permissions = {\n listEmailNotification: 'NT001',\n addEmailNotification: 'NT004',\n removeEmailNotification: 'NT005',\n\n listConsoleNotification: 'NT002',\n addConsoleNotification: 'NT006',\n removeConsoleNotification: 'NT008',\n\n listWebServiceNotification: 'NT003',\n addWebServiceNotification: 'NT007',\n removeWebServiceNotification: 'NT009',\n\n listSystemNotification: 'NT010',\n addSystemNotification: 'NT011',\n removeSystemNotification: 'NT012',\n editSystemNotification: 'NT013'\n};\n\nexport default permissions;\n","import * as types from '../../types/routesAssignments';\n\nexport const startFetchingAssignments = (\n startDate,\n endDate,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_STARTED,\n payload: { startDate, endDate, organizationId, divisionId, subdivisionId }\n});\nexport const completeFetchingAssignments = (\n entitiesByDate,\n orderByDate,\n entitiesBySchedule,\n orderBySchedule\n) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED,\n payload: {\n orderByDate,\n entitiesByDate,\n orderBySchedule,\n entitiesBySchedule\n }\n});\nexport const failFetchingAssignments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditingAssignment = (assignment) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_STARTED,\n payload: assignment\n});\nexport const completeEditingAssignment = (routeAssignmentId, assignment) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_COMPLETED,\n payload: { routeAssignmentId, assignment }\n});\nexport const failEditingAssignment = (routeAssignmentId, oldAssignment, error) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_FAILED,\n payload: { routeAssignmentId, oldAssignment, error }\n});\n\nexport const startRemovingAssignment = (routeAssignmentId) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_STARTED,\n payload: {\n routeAssignmentId\n }\n});\nexport const completeRemovingAssignment = (routeAssignmentId) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED,\n payload: {\n routeAssignmentId\n }\n});\nexport const failRemovingAssignment = (routeAssignmentId, error) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_FAILED,\n payload: {\n routeAssignmentId,\n error\n }\n});\n\nexport const startImportingRouteAssignments = (routeAssignments) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_STARTED,\n payload: {\n routeAssignments\n }\n});\nexport const completeImportingRouteAssignments = (entitiesByDate, orderByDate) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED,\n payload: {\n entitiesByDate,\n orderByDate\n }\n});\nexport const failImportingRouteAssignments = (error) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_FAILED,\n payload: {\n error\n }\n});\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/group';\n\ninterface GroupFilters {\n userFetchDate?: Date;\n groupId?: number;\n userName?: string;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n}\n\ninterface GroupDeleteRequest {\n groupId?: number;\n groupName?: number;\n}\n\ninterface SaveGroupRequest {\n groupName: string;\n owners: string;\n param?: any;\n entities?: string;\n entityType?: string;\n}\n\nexport const getGroupsListService = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getAllEntitiesInGroupService = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAllEntitiesInGroup`, request);\n};\n\nexport const getAvailableUsersForGroup = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableUsers',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableUsersForGroup`, request);\n};\n\nexport const getAvailableLocationsForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableLocations',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableLocationsForGroup`, request);\n};\n\nexport const getAvailableWorkplansForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableWorkplans',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableWorkPlansForGroup`, request);\n};\n\nexport const getAvailableUnitsForGroup = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableUnitsForGroup`, request);\n};\n\nexport const getAvailableGeofencesForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableGeofencesForGroup`, request);\n};\n\nexport const getAvailableDriversForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableDrivers',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableDriversForGroup`, request);\n};\n\nexport const saveGroupService = (request: SaveGroupRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Create',\n name: request.groupName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/create`, request);\n};\n\nexport const saveGroupWithEntitiesService = (\n request: SaveGroupRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Create',\n name: request.groupName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/createWithEntities`, request);\n};\n\nexport const deleteGroupService = (request: GroupDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.groupName}`,\n object: 'groups.group',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const leaveGroupService = (request: GroupDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.groupName}`,\n object: 'groups.group',\n action: 'Leave',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/leaveGroup`, request);\n};\n\nexport const verifyUserExistsAndNotInGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/verifyUserExistsAndNotInGroup`, request);\n};\n\nexport const pinUserGroupIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/pinUserGroupId`, request);\n};\n\nexport const getGroupByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","import { SaveSparePartCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/spareParts';\n\nexport const startFetchingSpareParts = (filters = {}) => ({\n type: types.SPAREPARTS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingSpareParts = (entities, order) => ({\n type: types.SPAREPARTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingSpareParts = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SPAREPARTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSpareParts = (entityTypeId) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingSpareParts = (entities, order) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingSpareParts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSparePart = (sparePart: SaveSparePartCategoryDTO) => ({\n type: types.SPAREPART_ADD_STARTED,\n payload: sparePart\n});\n\nexport const completeAddingSparePart = (id: string, oldId: string, sparePart) => ({\n type: types.SPAREPART_ADD_COMPLETED,\n payload: { id, oldId, sparePart }\n});\n\nexport const failAddingSparePart = (oldId, error) => ({\n type: types.SPAREPART_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSparePart = (sparePart: SaveSparePartCategoryDTO) => ({\n type: types.SPAREPART_EDIT_STARTED,\n payload: sparePart\n});\n\nexport const completeEditingSparePart = (sparePart) => ({\n type: types.SPAREPART_EDIT_COMPLETED,\n payload: sparePart\n});\n\nexport const failEditingSparePart = (oldSparePart, error) => ({\n type: types.SPAREPART_EDIT_FAILED,\n payload: {\n oldSparePart,\n error\n }\n});\n\nexport const startRemovingSparePart = (request: {\n sparePartId: number;\n sparePartName: string;\n}) => ({\n type: types.SPAREPART_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingSparePart = (id) => ({\n type: types.SPAREPART_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingSparePart = (id, error) => ({\n type: types.SPAREPART_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","export const SENSOR_MEASURES_FETCH_STARTED = 'SENSOR_MEASURES_FETCH_STARTED';\nexport const SENSOR_MEASURES_FETCH_COMPLETED = 'SENSOR_MEASURES_FETCH_COMPLETED';\nexport const SENSOR_MEASURES_FETCH_FAILED = 'SENSOR_MEASURES_FETCH_FAILED';\n\nexport const SENSOR_MEASURES_CLEAR = 'SENSOR_MEASURES_CLEAR';\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRoutesListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.route',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const deleteRouteService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.routeName}`,\n object: 'routes.route',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const deleteRoutesService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: '',\n object: 'routes.routes',\n action: 'Delete',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteMultiple`, request);\n};\n\nexport const saveRouteService = (request: any, configActions: ConfigActions, isNew: boolean) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.route.routeName}`,\n object: 'routes.route',\n action: isNew ? 'Create' : 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const getAlternateRoutesService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n\n return httpWebtrack.post(`${baseUrl}/getAlternateRoutes`, request);\n};\n\nexport const getRouteService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.route',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getRoute`, request);\n};\n","import { SaveWorkmanshipCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/workmanship';\n\nexport const startFetchingWorkmanships = (filters = {}) => ({\n type: types.WORKMANSHIPS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingWorkmanships = (entities, order) => ({\n type: types.WORKMANSHIPS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingWorkmanships = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKMANSHIPS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingWorkmanships = (entityTypeId) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingWorkmanships = (entities, order) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingWorkmanships = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingWorkmanship = (workmanship: SaveWorkmanshipCategoryDTO) => ({\n type: types.WORKMANSHIP_ADD_STARTED,\n payload: workmanship\n});\n\nexport const completeAddingWorkmanship = (id: string, oldId: string, workmanship) => ({\n type: types.WORKMANSHIP_ADD_COMPLETED,\n payload: { id, oldId, workmanship }\n});\n\nexport const failAddingWorkmanship = (oldId, error) => ({\n type: types.WORKMANSHIP_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingWorkmanship = (workmanship: SaveWorkmanshipCategoryDTO) => ({\n type: types.WORKMANSHIP_EDIT_STARTED,\n payload: workmanship\n});\n\nexport const completeEditingWorkmanship = (workmanship) => ({\n type: types.WORKMANSHIP_EDIT_COMPLETED,\n payload: workmanship\n});\n\nexport const failEditingWorkmanship = (oldWorkmanship, error) => ({\n type: types.WORKMANSHIP_EDIT_FAILED,\n payload: {\n oldWorkmanship,\n error\n }\n});\n\nexport const startRemovingWorkmanship = (request: {\n workmanshipId: number;\n description: string;\n}) => ({\n type: types.WORKMANSHIP_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingWorkmanship = (id) => ({\n type: types.WORKMANSHIP_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingWorkmanship = (id, error) => ({\n type: types.WORKMANSHIP_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import { SaveProviderCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/providers';\n\nexport const startFetchingProviders = (filters = {}) => ({\n type: types.PROVIDERS_FETCH_STARTED2,\n payload: filters\n});\n\nexport const completeFetchingProviders = (entities, order) => ({\n type: types.PROVIDERS_FETCH_COMPLETED2,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingProviders = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.PROVIDERS_FETCH_FAILED2,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingProviders = (entityTypeId) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_STARTED2,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingProviders = (entities, order) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_COMPLETED2,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingProviders = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_FAILED2,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingProvider = (provider: SaveProviderCategoryDTO) => ({\n type: types.PROVIDER_ADD_STARTED,\n payload: provider\n});\n\nexport const completeAddingProvider = (id: string, oldId: string, provider) => ({\n type: types.PROVIDER_ADD_COMPLETED,\n payload: { id, oldId, provider }\n});\n\nexport const failAddingProvider = (oldId, error) => ({\n type: types.PROVIDER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingProvider = (provider: SaveProviderCategoryDTO) => ({\n type: types.PROVIDER_EDIT_STARTED,\n payload: provider\n});\n\nexport const completeEditingProvider = (provider) => ({\n type: types.PROVIDER_EDIT_COMPLETED,\n payload: provider\n});\n\nexport const failEditingProvider = (oldProvider, error) => ({\n type: types.PROVIDER_EDIT_FAILED,\n payload: {\n oldProvider,\n error\n }\n});\n\nexport const startRemovingProvider = (request: { providerId: number; providerName: string }) => ({\n type: types.PROVIDER_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingProvider = (id) => ({\n type: types.PROVIDER_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingProvider = (id, error) => ({\n type: types.PROVIDER_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import React, { useState } from 'react';\nimport { Button, Tooltip } from 'reactstrap';\nimport { useSelector } from 'react-redux';\nimport { Edit2 } from 'react-feather';\nimport { FormattedMessage } from 'react-intl';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n isDisabled?: boolean;\n id?: any;\n permissions?: any[];\n handleClick: () => any;\n tooltipMessage?: string;\n visible?: boolean;\n}\n\nconst EditButton = (props: Props) => {\n const store = useSelector((state) => state);\n const { id = '', isDisabled, handleClick, tooltipMessage, permissions, visible = true } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n handleClick()}\n >\n \n {tooltipMessage && (\n \n \n \n )}\n \n ) : null;\n};\n\nEditButton.defaultProps = {\n isDisabled: false\n};\n\nexport default EditButton;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport { Button, Row, Col } from 'reactstrap';\nimport SlidingPane from 'react-sliding-pane';\nimport Table from '../../components/Table';\nimport { useForm } from 'react-hook-form';\nimport { FormattedMessage } from 'react-intl';\nimport { Fragment, useEffect, useRef, useState } from 'react';\nimport WebtrackCustomInput from '../WebtrackCustomInput';\n\ninterface Props {\n title: any;\n isOpenSlidingPane: any;\n closeSlidingPaneForm: any;\n onClickCancelButton?: any;\n idTable?: string;\n subtitle?: any;\n confirmText?: any;\n useTable?: boolean;\n heightTable?: number;\n columnsTable?: any[];\n selected?: any;\n isInMap?: boolean;\n changeSelected?: Function;\n dataTable?: any[];\n onSelectTable?: any;\n onDeselectTable?: any;\n width?: string;\n inputs?: any[];\n hasButtonSubmit?: boolean;\n hasButtonCancel?: boolean;\n action?: any;\n control?: any;\n handleSubmit?: Function;\n change?: any;\n onClose?: any;\n timeout?: number;\n}\n\nconst SlidingPaneForm = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n idTable,\n title,\n subtitle,\n confirmText,\n useTable,\n heightTable,\n columnsTable,\n selected,\n changeSelected,\n dataTable,\n onSelectTable,\n onDeselectTable,\n isOpenSlidingPane,\n closeSlidingPaneForm,\n inputs,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n width,\n control,\n handleSubmit,\n change,\n onClose,\n isInMap = false,\n onClickCancelButton,\n timeout\n } = props;\n\n const { control: innerControl, handleSubmit: innerHandleSubmit, watch } = useForm();\n const [isInnerForm, setIsInnerForm] = useState();\n\n const formValues = useRef();\n\n useEffect(() => {\n formValues.current = watch();\n }, [watch()]);\n\n useEffect(() => {\n setIsInnerForm(!(control && handleSubmit));\n }, []);\n\n const closeSlidingPane = (saving) => {\n closeSlidingPaneForm();\n if (onClose != null && !saving) onClose(); //Close without saving\n };\n\n const save = (values) => {\n closeSlidingPane(true);\n action(values);\n };\n\n return (\n closeSlidingPane(false)}\n >\n {useTable && columnsTable && dataTable && (\n <>\n {\n if (changeSelected) changeSelected(event);\n }}\n onSelect={(event: any) => {\n if (onSelectTable) onSelectTable(event);\n }}\n onDeselect={(event: any) => {\n if (onDeselectTable) onDeselectTable(event);\n }}\n />\n
\n
\n
\n \n )}\n \n {inputs &&\n inputs\n .filter((input) => input)\n .map((input, i) => {\n let WrapperInput = Fragment;\n var wrapperInputProps = {\n key: i.toString()\n };\n if (input.type !== 'membership') {\n WrapperInput = Col;\n wrapperInputProps['sm'] = input.sm ? input.sm : '12';\n wrapperInputProps['className'] = input.type === 'membership' ? 'pl-0 pr-0' : '';\n }\n\n return (\n \n {input.subtitle && (\n
\n {input.subtitle}\n
\n )}\n \n
\n );\n })}\n \n \n {hasButtonSubmit && (\n {\n if (timeout) setTimeout(() => save(formValues.current), timeout);\n else save(values);\n })\n : handleSubmit &&\n handleSubmit((values) => {\n if (timeout) setTimeout(() => save(formValues.current), timeout);\n else save(values);\n })\n }\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n {\n closeSlidingPane(false);\n if (onClickCancelButton) onClickCancelButton();\n }}\n >\n \n \n )}\n \n \n
\n \n );\n};\n\nSlidingPaneForm.defaultProps = {\n inputs: [],\n useTable: false,\n heightTable: 200,\n hasButtonSubmit: true,\n hasButtonCancel: true,\n columnsTable: [],\n dataTable: []\n};\n\nexport default SlidingPaneForm;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/organization';\n\ninterface ConsolidableEventsRequest {\n organizationId: number;\n}\n\nexport interface loginextConfiguration {\n organizationId: number;\n organizationName: string;\n loginextEffectiveVisitingTime: number;\n loginextDeliveryDelay: number;\n}\n\nexport const getOrganizationsListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'organizations.organization',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getConsolidableEvents = async (\n request: ConsolidableEventsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'organizations.consolidatedEvents',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/GetConsolidableEvents`, request);\n};\n\nexport const getDowntimeReasons = async (\n request: ConsolidableEventsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'organizations.downtimeReasons',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDowntimeReasons`, request);\n};\n\nexport const deleteOrganizationService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'organizations.organization',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const saveOrganizationService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'organizations.organization',\n action: request.organizationId ? 'Edit' : 'Create',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const getContactsService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'organizations.organization',\n action: 'Get',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getContacts`, request);\n};\n\nexport const saveLoginextConfigurationService = (\n request: loginextConfiguration,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'organizations.activeLoginext',\n action: 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/saveLoginextConfiguration`, request);\n};\n","import { combineReducers } from 'redux';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\nimport { CategoriesCatalogDTO } from 'views/screens/vehicleMaintenance/types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CATEGORIES_FETCH_COMPLETED:\n case types.CATEGORIES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((categoryId) => {\n newState[categoryId] = {\n isSelected: false,\n ...state[categoryId],\n ...entities[categoryId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CATEGORY_ADD_COMPLETED: {\n const { id, oldId, category } = action.payload;\n const newState = omit(state, oldId);\n newState[id] = {\n ...category,\n isConfirmed: true,\n isSelected: false\n };\n return newState;\n }\n\n case types.CATEGORY_EDIT_COMPLETED: {\n const category = action.payload;\n const id = category.categoryId;\n const newState = {\n ...state,\n [id]: {\n ...omit(state[id], ['oldCategory']),\n ...omit(category, ['oldCategory']),\n isConfirmed: true\n }\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.CATEGORY_ADD_STARTED: {\n const category = action.payload;\n const newState = { ...state };\n newState[category.tempId] = {\n isSelected: false,\n ...category,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.CATEGORY_EDIT_STARTED: {\n const category = action.payload;\n const id = category.categoryId;\n const newState = {\n ...state,\n [id]: {\n ...state[id],\n oldCategory: state[id],\n isConfirmed: false,\n ...category\n }\n };\n return newState;\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.CATEGORY_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.CATEGORY_EDIT_FAILED: {\n const { oldCategory } = action.payload;\n return {\n ...state,\n [oldCategory.categoryId]: {\n ...omit(state[oldCategory.categoryId], ['oldCategory']),\n ...oldCategory,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.CATEGORY_REMOVE_COMPLETED: {\n const { id } = action.payload;\n return omit(state, id);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CATEGORIES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.CATEGORIES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.CATEGORY_ADD_COMPLETED: {\n const { id, oldId } = action.payload;\n return state.map((categoryId) => (categoryId === oldId ? id : categoryId));\n }\n\n case types.CATEGORY_REMOVE_COMPLETED: {\n const { id } = action.payload;\n return state.filter((categoryIdState) => categoryIdState !== id);\n }\n\n //CASE ADD STARTED\n case types.CATEGORY_ADD_STARTED: {\n const category = action.payload;\n return [...state, category.tempId];\n }\n\n //CASE ADD FAILED\n case types.CATEGORY_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((categoryIdState) => categoryIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORIES_FETCH_STARTED: {\n return true;\n }\n case types.CATEGORIES_FETCH_COMPLETED:\n case types.CATEGORIES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORIES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.CATEGORIES_PARTIAL_FETCH_COMPLETED:\n case types.CATEGORIES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORY_ADD_STARTED: {\n return true;\n }\n case types.CATEGORY_ADD_COMPLETED:\n case types.CATEGORY_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORY_EDIT_STARTED: {\n return true;\n }\n case types.CATEGORY_EDIT_COMPLETED:\n case types.CATEGORY_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORY_REMOVE_STARTED: {\n return true;\n }\n case types.CATEGORY_REMOVE_COMPLETED:\n case types.CATEGORY_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORIES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORIES_FETCH_STARTED:\n case types.CATEGORIES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORIES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORIES_PARTIAL_FETCH_STARTED:\n case types.CATEGORIES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORY_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORY_ADD_STARTED:\n case types.CATEGORY_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORY_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORY_EDIT_STARTED:\n case types.CATEGORY_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORY_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORY_REMOVE_STARTED:\n case types.CATEGORY_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORIES_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst categories = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched\n});\n\nexport default categories;\n\n//Own state\nexport const getOwnState = (state) => state.categories;\n\n//Information\nexport const getCategory = (state, id) => {\n const category = getOwnState(state).byId[id];\n\n return {\n ...category\n };\n};\n\nexport const getCategoriesList = (state): Array =>\n getOwnState(state).order?.map((id) => getCategory(state, id));\n\nexport const getCategoriesListByMembership = (state, membership) => {\n //Se filtra por divisionId\n if (membership.organizationId) {\n return getCategoriesList(state).filter(\n (category) => category.organizationId === membership.organizationId\n );\n }\n //Si no se ha seleccionado una división se devuelve la lista completa\n else return getCategoriesList(state);\n};\n\n//Status of sagas\nexport const isPartialFetchingListCategories = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListCategories = (state) => getOwnState(state).isFetchingList;\nexport const haveCategoriesBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingCategory = (state) => getOwnState(state).isAdding;\nexport const isEditingCategory = (state) => getOwnState(state).isEditing;\nexport const isRemovingCategory = (state) => getOwnState(state).isRemoving;\n//Errors\nexport const getPartialFetchingListCategoriesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListCategoriesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingCategoryErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingCategoryErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingCategoryErrors = (state) => getOwnState(state).errorRemoving;\n","import { List, Plus } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport operatorPaths from 'views/screens/Operators/paths';\nimport organizationPaths from 'views/screens/Organizations/paths';\nimport agentPaths from 'views/screens/Agents/paths';\nimport divisionPaths from 'views/screens/Divisions/paths';\nimport subdivisionPaths from 'views/screens/Subdivisions/paths';\nimport serviceClassPaths from 'views/screens/ServiceClasses/paths';\nimport operatorPermissions from 'views/screens/Operators/permissions';\nimport organizationPermissions from 'views/screens/Organizations/permissions';\nimport agentPermissions from 'views/screens/Agents/permissions';\nimport divisionPermissions from 'views/screens/Divisions/permissions';\nimport subdivisionPermissions from 'views/screens/Subdivisions/permissions';\nimport serviceClassPermissions from 'views/screens/ServiceClasses/permissions';\n\nexport default [\n {\n id: 'afiliations',\n title: 'sidebar.affiliations',\n icon: ,\n permissions: [\n operatorPermissions.operatorList,\n organizationPermissions.organizationCatalog,\n divisionPermissions.listDivision,\n subdivisionPermissions.subdivisionCatalog,\n serviceClassPermissions.listServiceClass,\n agentPermissions.agentList\n ],\n iconName: 'Afiliaciones',\n children: [\n {\n id: 'operators',\n title: 'operators.operators',\n icon: ,\n iconName: 'Operator',\n permissions: [operatorPermissions.operatorList],\n accessLevels: [9, 15],\n navLink: operatorPaths.listOperator,\n screenId: screens.OPERATOR\n },\n {\n id: 'agent',\n title: 'agents.agent',\n icon: ,\n permissions: [agentPermissions.agentList],\n accessLevels: [9, 13, 15],\n iconName: 'noun_Call-Center_2560173',\n navLink: agentPaths.listAgent,\n screenId: screens.AGENT\n },\n {\n id: 'organization',\n title: 'organizations.organization',\n icon: ,\n permissions: [organizationPermissions.organizationCatalog],\n accessLevels: [9, 11, 13, 15],\n iconName: 'Organization',\n navLink: organizationPaths.listOrganization,\n screenId: screens.ORGANIZATION\n },\n {\n id: 'division',\n title: 'divisions.division',\n icon: ,\n permissions: [divisionPermissions.listDivision],\n accessLevels: [7, 9, 11, 13, 15],\n iconName: 'Division',\n navLink: divisionPaths.listDivision,\n screenId: screens.DIVISION\n },\n {\n id: 'subdivision',\n title: 'subdivisions.subdivision',\n icon: ,\n permissions: [subdivisionPermissions.subdivisionCatalog],\n accessLevels: [4, 7, 9, 11, 13, 15],\n iconName: 'Subdivision',\n navLink: subdivisionPaths.listSubdivision,\n screenId: screens.SUBDIVISION\n },\n {\n id: 'service-class',\n title: 'serviceClasses.serviceClasses',\n icon: ,\n permissions: [serviceClassPermissions.listServiceClass],\n accessLevels: [9, 13, 15],\n iconName: 'noun_service_1318655',\n navLink: serviceClassPaths.listServiceClass,\n screenId: screens.SERVICE_CLASSES\n }\n ]\n }\n];\n","import { List, Plus } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport modulePaths from 'views/screens/Modules/paths';\nimport vehiclePaths from 'views/screens/Vehicles/paths';\nimport simPaths from 'views/screens/SIMs/paths';\nimport sensorPaths from 'views/screens/Sensors/paths';\nimport assetPaths from 'views/screens/Assets/paths';\nimport modulePermissions from 'views/screens/Modules/permissions';\nimport vehiclePermissions from 'views/screens/Vehicles/permissions';\nimport simPermissions from 'views/screens/SIMs/permissions';\nimport sensorPermissions from 'views/screens/Sensors/permissions';\nimport assetPermissions from 'views/screens/Assets/permissions';\n\nexport default [\n {\n id: 'inventories',\n title: 'sidebar.inventories',\n icon: ,\n permissions: [],\n iconName: 'inbox-filled',\n children: [\n {\n id: 'modules',\n title: 'modules.modules',\n icon: ,\n permissions: [modulePermissions.listModule],\n iconName: 'noun_GPS_3452904',\n navLink: modulePaths.listModule,\n screenId: screens.DEVICES\n },\n {\n id: 'sims',\n title: 'sims.sim',\n icon: ,\n permissions: [simPermissions.listSim],\n iconName: 'noun_SIM_3331582-1',\n navLink: simPaths.listSim,\n screenId: screens.SIMS\n },\n {\n id: 'sensors',\n title: 'sensors.sensors',\n icon: ,\n permissions: [sensorPermissions.listSensor],\n iconName: 'noun_proximity-sensor_614178',\n navLink: sensorPaths.listSensor,\n screenId: screens.SENSORS\n },\n {\n id: 'assets',\n title: 'assets.assets',\n icon: ,\n permissions: [assetPermissions.assetCatalog],\n iconName: 'noun_Check_3687547',\n navLink: assetPaths.listAsset,\n screenId: screens.ASSETS\n },\n {\n id: 'vehicles',\n title: 'vehicles.vehicles',\n icon: ,\n permissions: [vehiclePermissions.listVehicle],\n iconName: 'noun_Wheel_4039720',\n navLink: vehiclePaths.listVehicle,\n screenId: screens.VEHICLES\n }\n ]\n }\n];\n","import { Calendar } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from 'views/screens/Schedules/permissions';\nimport paths from 'views/screens/Schedules/paths';\n\nexport default [\n {\n id: 'schedules',\n title: 'schedules.scheduling',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'noun_schedule_2522607',\n children: [\n {\n id: 'shiftListScreen',\n title: 'schedules.shift',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'turno',\n navLink: paths.listShift,\n screenId: screens.SHIFT\n },\n {\n id: 'triggerListScreen',\n title: 'schedules.trigger',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'disparador',\n navLink: paths.listTrigger,\n screenId: screens.TRIGGER\n }\n ]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Groups/paths';\nimport permissions from 'views/screens/Groups/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'groups',\n title: 'groups.groups',\n icon: ,\n permissions: [permissions.listGroup],\n iconName: 'Groups',\n navLink: paths.listGroup,\n screenId: screens.GROUPS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Drivers/paths';\nimport permissions from 'views/screens/Drivers/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'drivers',\n title: 'drivers.drivers',\n icon: ,\n permissions: [permissions.listDrivers],\n iconName: 'noun_steering_790455',\n navLink: paths.listDrivers,\n screenId: screens.DRIVERS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/People/paths';\nimport permissions from 'views/screens/People/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'people',\n title: 'people.people',\n icon: ,\n permissions: [permissions.listPerson],\n iconName: 'noun_people_1850291',\n navLink: paths.listPeople,\n screenId: screens.PEOPLE\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Users/paths';\nimport permissions from 'views/screens/Users/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'users',\n title: 'users.users',\n icon: ,\n permissions: [permissions.listUsers],\n iconName: 'noun_User_2905483',\n navLink: paths.listUsers,\n screenId: screens.USERS\n }\n];\n","import paths from 'views/screens/Customers/paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from 'views/screens/Customers/permissions';\nimport Icon from '../../utility/icomoon';\n\nexport default [\n {\n id: 'customers',\n title: 'customers.customers',\n icon: ,\n permissions: [permissions.listCustomers],\n iconName: 'Customers',\n navLink: paths.listCustomer,\n screenId: screens.CUSTOMERS\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'contacts',\n title: 'contacts.contacts2',\n permissions: ['CO001'],\n iconName: 'Contacts',\n navLink: paths.listContact,\n screenId: screens.CONTACTS\n }\n];\n","import { List, MapPin } from 'react-feather';\nimport paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'offices',\n title: 'offices.offices',\n iconName: 'Branch',\n permissions: [permissions.listOffices],\n navLink: paths.listOffice,\n screenId: screens.LOCATIONS_CATALOG\n }\n];\n","import drivers from './drivers';\nimport people from './people';\nimport users from './users';\nimport customers from './customers';\nimport contacts from 'views/screens/Contacts/sidebarLayout';\nimport offices from 'views/screens/Offices/sidebarLayout';\n\nexport default [\n {\n id: 'catalogs',\n title: 'sidebar.catalogs',\n icon: 'Users',\n permissions: [],\n iconName: 'Users',\n children: [...users, ...drivers, ...people, ...contacts, ...customers, ...offices]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Notifications/paths';\nimport permissions from 'views/screens/Notifications/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'notifications',\n title: 'notifications.notifications',\n icon: ,\n permissions: [\n permissions.listEmailNotification,\n permissions.listConsoleNotifications,\n permissions.listWebServiceNotification,\n permissions.listSystemNotification\n ],\n iconName: 'Bell',\n children: [\n {\n id: 'emailNotificationScreen',\n title: 'notifications.email',\n icon: ,\n permissions: [permissions.listEmailNotification],\n iconName: 'noun_Mail_1707176',\n navLink: paths.listEmailNotifications,\n screenId: screens.EMAIL_NOTIFICATIONS\n },\n {\n id: 'consoleNotificationScreen',\n title: 'notifications.console',\n icon: ,\n permissions: [permissions.listConsoleNotification],\n iconName: 'Consola',\n navLink: paths.listConsoleNotifications,\n screenId: screens.CONSOLE_NOTIFICATIONS\n },\n {\n id: 'webNotificationScreen',\n title: 'notifications.webService',\n icon: ,\n permissions: [permissions.listWebServiceNotification],\n iconName: 'WebService',\n navLink: paths.listWebServiceNotifications,\n screenId: screens.WEB_SERVICE_NOTIFICATIONS\n },\n {\n id: 'systemNotificationScreen',\n title: 'notifications.system',\n icon: ,\n permissions: [permissions.listSystemNotification],\n iconName: 'Diagnostico-de-comu',\n navLink: paths.listSystemNotifications,\n screenId: screens.SYSTEM_NOTIFICATIONS\n }\n ]\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'forms',\n title: 'forms.forms',\n permissions: [permissions.listForms, permissions.answersFormReport],\n iconName: 'Formularios',\n children: [\n {\n id: 'listFormScreen',\n title: 'forms.catalog',\n permissions: [permissions.listForms],\n iconName: 'Catalog',\n navLink: paths.listForms,\n screenId: screens.FORMS_CATALOG\n },\n {\n id: 'monitorFormScreen',\n title: 'forms.monitoring',\n permissions: [permissions.answersFormReport],\n iconName: 'Catalog',\n navLink: paths.answersReportForms,\n screenId: screens.ANSWERS_FORMS\n }\n ]\n }\n];\n","import affiliations from './affiliations';\nimport inventories from './inventories';\nimport schedules from './schedules';\nimport groups from './groups';\nimport catalogs from './catalogs';\nimport notifications from './notifications';\nimport forms from 'views/screens/Forms/sidebarLayout';\n\nexport default [\n {\n header: 'sidebar.administration',\n iconName: 'Sliders',\n children: [\n ...affiliations,\n ...groups,\n ...schedules,\n ...catalogs,\n ...forms,\n ...inventories,\n ...notifications\n ] //Only to check permission in children inside\n },\n ...affiliations,\n ...groups,\n ...schedules,\n ...catalogs,\n ...forms,\n ...inventories,\n ...notifications\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'workplans',\n title: 'workplans.workplan',\n permissions: [\n permissions.viewWorkplanCatalog,\n permissions.viewWorkplanMonitor,\n permissions.viewWorkplanReport,\n permissions.assignWorkplan\n ],\n iconName: 'Workplan',\n children: [\n {\n id: 'workplansListScreen',\n title: 'sidebar.catalog',\n permissions: [permissions.viewWorkplanCatalog],\n iconName: 'WorkplanCatalog',\n navLink: paths.workplanList,\n screenId: screens.WORK_PLAN_CATALOG\n },\n {\n id: 'workplansMonitorScreen',\n title: 'sidebar.monitor',\n permissions: [permissions.viewWorkplanMonitor],\n iconName: 'WorkplanMonitor',\n navLink: paths.workplanMonitor,\n screenId: screens.WORK_PLAN_MONITOR\n },\n {\n id: 'workplansReportScreen',\n title: 'sidebar.report',\n permissions: [permissions.viewWorkplanReport],\n iconName: 'WorkplanReport',\n navLink: paths.workplanReport,\n screenId: screens.WORK_PLAN_REPORT\n },\n {\n id: 'scheduledWorkplanCatalogScreen',\n title: 'workplans.scheduledPlans',\n permissions: [permissions.scheduledWorkplanList],\n iconName: 'WorkplanReport',\n navLink: paths.scheduledWorkplan,\n screenId: screens.SCHEDULED_WORKPLANS\n },\n {\n id: 'workplansAssignUnitScreen',\n title: 'sidebar.assignWorkplan',\n permissions: [permissions.viewWorkplanModule, permissions.assignWorkplan],\n iconName: 'PlusSquare',\n navLink: paths.workplanAssignUnit,\n screenId: screens.ASSIGN_WORK_PLAN\n }\n /* {\n id: 'WorkplanImport',\n title: 'common.import',\n permissions: [],\n iconName: 'UploadCloud',\n navLink: paths.workplanImport,\n screenId: screens.WORKPLAN_IMPORT\n } */\n ]\n }\n];\n","import * as screens from '@core/layouts/components/menu/screens';\nimport paths from './paths';\nimport permissions from './permissions';\n\nexport default [\n {\n id: 'routes',\n title: 'routes.logisticRoute',\n permissions: [\n permissions.viewRouteCatalog,\n permissions.viewRouteMonitor,\n permissions.viewRouteReport,\n permissions.assignRoute\n ],\n iconName: 'Route',\n children: [\n {\n id: 'routesListScreen',\n title: 'sidebar.catalog',\n permissions: [permissions.viewRouteCatalog],\n iconName: 'RouteCatalog',\n navLink: paths.routeList,\n screenId: screens.LOGISTIC_ROUTE_CATALOG\n },\n {\n id: 'routesMonitorScreen',\n title: 'sidebar.monitor',\n permissions: [permissions.viewRouteMonitor],\n iconName: 'RouteMonitor',\n navLink: paths.routeMonitor,\n screenId: screens.LOGISTIC_ROUTE_MONITOR\n },\n {\n id: 'routesReportScreen',\n title: 'sidebar.report',\n permissions: [permissions.viewRouteReport],\n iconName: 'RouteReport',\n navLink: paths.routeReport,\n screenId: screens.LOGISTIC_ROUTE_REPORT\n },\n {\n id: 'routesAssignUnitScreen',\n title: 'sidebar.assignRoute',\n permissions: [permissions.assignRoute],\n iconName: 'PlusSquare',\n navLink: paths.routeAssignUnit,\n screenId: screens.ASSIGN_LOGISTIC_ROUTE\n },\n {\n id: 'importRouteAssignmentsScreen',\n title: 'sidebar.importRouteAssignments',\n permissions: [permissions.importRouteAssignments],\n iconName: 'UploadCloud',\n navLink: paths.importRouteAssignments,\n screenId: screens.IMPORT_ROUTE_ASSIGNMENTS\n },\n {\n id: 'routesETAMonitorScreen',\n title: 'sidebar.ETAmonitor',\n permissions: [permissions.routeETAMonitor],\n iconName: 'RouteMonitor', //CAMBIAR\n navLink: paths.routeETAMonitor,\n screenId: screens.LOGISTIC_ROUTE_ETA_MONITOR\n }\n ]\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'optimizations',\n title: 'optimizations.optimizations',\n iconName: 'Zap',\n permissions: [permissions.viewOptimizations],\n children: [\n {\n id: 'optimizationsCatalog',\n title: 'sidebar.catalog',\n iconName: 'Catalog',\n permissions: [permissions.viewOptimizations],\n navLink: paths.listOptimization,\n screenId: screens.OPTIMIZATIONS\n }\n ]\n }\n];\n","import { Plus, PlusCircle, UploadCloud, List, Shield, FilePlus } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport paths from 'views/screens/VehicleFuel/paths';\nimport permissions from 'views/screens/VehicleFuel/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'vehicleFuel',\n title: 'vehicleFuel.fuel',\n icon: ,\n iconName: 'Fuel',\n permissions: [],\n children: [\n {\n id: 'vehicleFuelTickets',\n title: 'vehicleFuel.tickets',\n icon: ,\n iconName: 'Boleta',\n permissions: [permissions.addTicket, permissions.importTicket],\n children: [\n {\n id: 'vehicleFueNewTicket',\n title: 'vehicleFuel.newTicket',\n icon: ,\n iconName: 'FilePlus',\n permissions: [permissions.addTicket],\n navLink: paths.addTicket,\n screenId: screens.NEW_TICKET\n },\n {\n id: 'vehicleFuelRecordMultipleTickets',\n title: 'vehicleFuel.recordMultipleTickets',\n icon: ,\n iconName: 'FileVersion',\n permissions: [permissions.recordMultiple],\n navLink: paths.recordMultiple,\n screenId: screens.RECORD_MULTIPLE_TICKETS\n },\n {\n id: 'vehicleFuelImportTicket',\n title: 'vehicleFuel.importTicket',\n iconName: 'UploadCloud',\n icon: ,\n permissions: [permissions.importTicket],\n navLink: paths.importTicket,\n screenId: screens.IMPORT_FUEL_TICKETS\n }\n ]\n },\n {\n id: 'vehicleFuelReports',\n title: 'vehicleFuel.reports',\n icon: ,\n permissions: [permissions.consolidatedReport, permissions.byUnitReport],\n iconName: 'PlusCircle',\n children: [\n {\n id: 'vehicleConsolidatedReport',\n title: 'vehicleFuel.consolidatedReport',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.consolidatedReport],\n navLink: paths.consolidatedReport,\n screenId: screens.FUEL_TICKETS_CONSOLIDATED_REPORT\n },\n {\n id: 'vehicleByUnitReport',\n title: 'vehicleFuel.byUnitReport',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.byUnitReport],\n navLink: paths.byUnitReport,\n screenId: screens.FUEL_TICKETS_REPORT_BY_UNIT\n }\n ]\n }\n ]\n }\n];\n","import { Plus, PlusCircle, UploadCloud, List, Shield } from 'react-feather';\nimport paths from 'views/screens/vehicleMaintenance/paths';\nimport permissions from 'views/screens/vehicleMaintenance/permissions';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'vehicleMaintenance',\n title: 'sidebar.vehicleMaintenance',\n icon: ,\n iconName: 'Maintainance',\n permissions: [\n permissions.preventiveNotices,\n permissions.sparepartsCatalog,\n permissions.workshopCatalog,\n permissions.categoriesCatalog,\n permissions.providersCatalog,\n permissions.importTicket,\n permissions.generalReport,\n permissions.byCategoryReport,\n permissions.byUnitReport,\n permissions.byWorkShopReport\n ],\n children: [\n {\n id: 'vehicleMaintenancePreventiveNotices',\n title: 'vehicleMaintenance.preventiveNotices',\n icon: ,\n iconName: 'PreventiveNotice',\n permissions: [permissions.preventiveNotices],\n navLink: paths.preventiveNotices,\n screenId: screens.PREVENTIVE_NOTICES\n },\n {\n id: 'addWorkshopOrders',\n title: 'vehicleMaintenance.addWorkshopOrders',\n icon: ,\n iconName: 'Users',\n permissions: [permissions.addTickets],\n navLink: paths.addWorkshopOrders,\n screenId: screens.WORKSHOP_ADD_ORDER\n },\n {\n id: 'vehicleMaintenanceCatalogs',\n title: 'vehicleMaintenance.catalogs',\n icon: ,\n iconName: 'Shield',\n permissions: [\n permissions.sparepartsCatalog,\n permissions.workshopCatalog,\n permissions.categoriesCatalog,\n permissions.providersCatalog\n ],\n children: [\n {\n id: 'vehicleMaintenanceSpareParts',\n title: 'vehicleMaintenance.sparepart',\n icon: ,\n iconName: 'Spareparts',\n permissions: [permissions.sparepartsCatalog],\n navLink: paths.sparepartsCatalog,\n screenId: screens.SPAREPARTS_CATALOG\n },\n {\n id: 'vehicleMaintenanceWorkForce',\n title: 'vehicleMaintenance.workmanships',\n icon: ,\n iconName: 'Workmanship',\n permissions: [permissions.workshopCatalog],\n navLink: paths.workshopCatalog,\n screenId: screens.WORKMANSHIPS_CATALOG\n },\n {\n id: 'vehicleMaintenanceCategories',\n title: 'vehicleMaintenance.categories',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.categoriesCatalog],\n navLink: paths.categoriesCatalog,\n screenId: screens.SPAREPARTS_CATEGORIES_CATALOG\n },\n {\n id: 'vehicleMaintenanceProviders',\n title: 'vehicleMaintenance.providers',\n icon: ,\n iconName: 'SparepartProvider',\n permissions: [permissions.providersCatalog],\n navLink: paths.providersCatalog,\n screenId: screens.SPAREPARTS_PROVIDERS_CATALOG\n },\n {\n id: 'vehicleMaintenanceRanges',\n title: 'maintenanceLines.maintenanceLines',\n icon: ,\n iconName: 'Activity',\n permissions: [permissions.maintenanceLines],\n navLink: paths.maintenanceLineList,\n screenId: screens.MAINTENANCE_RANGES\n }\n ]\n },\n {\n id: 'vehicleMaintenanceReports',\n title: 'vehicleMaintenance.reports',\n icon: ,\n iconName: 'Shield',\n permissions: [\n permissions.generalReport,\n permissions.byCategoryReport,\n permissions.byUnitReport,\n permissions.byWorkShopReport\n ],\n children: [\n {\n id: 'vehicleMaintenanceGeneralReport',\n title: 'vehicleMaintenance.generalReport',\n icon: ,\n iconName: 'Plus',\n permissions: [permissions.generalReport],\n navLink: paths.generalReport,\n screenId: screens.GENERAL_MAINTENANCE_REPORT\n },\n {\n id: 'vehicleMaintenanceByCategoryReport',\n title: 'vehicleMaintenance.byCategory',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byCategoryReport],\n navLink: paths.byCategoryReport,\n screenId: screens.BY_CATEGORY_REPORT\n },\n {\n id: 'vehicleMaintenanceByUnitReport',\n title: 'vehicleMaintenance.byUnit',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byUnitReport],\n navLink: paths.byUnitReport,\n screenId: screens.BY_UNIT_REPORT\n },\n {\n id: 'vehicleMaintenanceByWorkShopReport',\n title: 'vehicleMaintenance.byWorkShop',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byWorkShopReport],\n navLink: paths.byWorkShopReport,\n screenId: screens.BY_WORKSHOP_REPORT\n }\n ]\n },\n {\n id: 'vehicleMaintenanceImportTicket',\n title: 'vehicleFuel.importTicket',\n iconName: 'UploadCloud',\n icon: ,\n permissions: [permissions.importTicket],\n navLink: paths.importTicket,\n screenId: screens.IMPORT_MAINTENANCE_TICKETS\n }\n ]\n }\n];\n","import workplans from '../../views/screens/Workplans/sidebarLayout';\nimport routes from '../../views/screens/Routes/sidebarLayout';\nimport optimizations from '../../views/screens/Optimizations/sidebarLayout';\nimport vehicleFuel from './vehicleFuel';\n\nimport vehicleMaintenance from './vehicleMaintenance';\n\nexport default [\n {\n header: 'sidebar.logistics',\n iconName: 'Share2',\n badgeText: 'common.premium',\n children: [...routes, ...workplans, ...vehicleFuel, ...vehicleMaintenance, ...optimizations] //Only to check permission in children inside\n },\n ...routes,\n ...workplans,\n ...vehicleMaintenance,\n ...vehicleFuel,\n ...optimizations\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport Icon from 'utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'telemetryUnits',\n title: 'units.units',\n icon: ,\n iconName: 'Unidades',\n permissions: [permissions.telemtryUnits],\n navLink: paths.telemetryUnits,\n screenId: screens.TELEMETRY_UNITS\n },\n {\n id: 'temperatureTelemetry',\n title: 'telemetry.temperature',\n iconName: 'Thermometer',\n permissions: [permissions.temperatureCatalog],\n navLink: paths.telemetryTemperature,\n screenId: screens.TEMPERATURE_TELEMETRY\n },\n {\n id: 'fuelTelemetry',\n title: 'telemetry.fuel',\n iconName: 'Fuel',\n permissions: [permissions.fuelCatalog, permissions.fuelReport],\n children: [\n {\n id: 'fuelTelemetryMonitor',\n title: 'telemetry.fuelMonitor',\n iconName: 'Fuel',\n permissions: [permissions.fuelCatalog],\n navLink: paths.telemetryFuelMonitor,\n screenId: screens.FUEL_TELEMETRY_MONITOR\n },\n {\n id: 'fuelTelemetryReport',\n title: 'telemetry.fuelReport',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n children: [\n {\n id: 'fuelTelemetryReport',\n title: 'assets.assets',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n navLink: paths.telemetryFuelReport,\n screenId: screens.FUEL_TELEMETRY_REPORT\n },\n {\n id: 'fuelTelemetryReportByVehicles',\n title: 'vehicles.vehicles',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n navLink: paths.telemetryFuelReportByVehicles,\n screenId: screens.FUEL_TELEMETRY_REPORT_BY_VEHICLES\n }\n ]\n },\n ]\n },\n {\n id: 'telemetryOBD2',\n title: 'telemetry.obd2',\n icon: ,\n iconName: 'Cpu',\n permissions: [permissions.obd2Monitor],\n navLink: paths.telemetryOBD2,\n screenId: screens.TELEMETRY_OBD2\n }\n];\n","import telemetry from 'views/screens/Telemetry/sidebarLayout';\n\nexport default [\n {\n header: 'telemetry.telemetry',\n iconName: 'Target',\n children: [...telemetry]\n },\n ...telemetry\n];\n","import { Map } from 'react-feather';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'map',\n title: 'sidebar.map',\n icon: ,\n permissions: ['BA001'],\n iconName: 'Map',\n navLink: '/home',\n screenId: screens.MAP\n }\n];\n","import paths from './paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from './permissions';\n\nexport default [\n {\n id: 'dashboard',\n title: 'dashboard.dashboard',\n iconName: 'Grid',\n badge: 'primary',\n badgeText: 'common.comingSoon',\n permissions: [permissions.dashboard],\n navLink: paths.dashboard,\n screenId: screens.DASHBOARD\n }\n];\n","import { List, MapPin } from 'react-feather';\nimport paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'locations',\n title: 'locations.locations',\n icon: ,\n iconName: 'MapPin',\n permissions: [permissions.listLocations, permissions.importLocation],\n children: [\n {\n id: 'locationsListScreen',\n title: 'locations.catalog',\n iconName: 'Catalog',\n permissions: [permissions.listLocations],\n // accessLevels: [9, 13, 15],\n navLink: paths.locationsList,\n screenId: screens.LOCATIONS_CATALOG\n },\n {\n id: 'importLocationsScreen',\n title: 'locations.importLocations',\n iconName: 'UploadCloud',\n permissions: [permissions.importLocation],\n // accessLevels: [9, 13, 15],\n navLink: paths.importLocations,\n screenId: screens.IMPORT_LOCATIONS\n }\n ]\n }\n];\n","import { List } from 'react-feather';\nimport paths from 'views/screens/Geofences/paths';\nimport permissions from 'views/screens/Geofences/permissions';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'geofences',\n title: 'geofences.geofences',\n icon: ,\n iconName: 'Geofences',\n permissions: [permissions.listGeofences, permissions.listAsignedGeofences],\n children: [\n {\n id: 'geofencesListScreen',\n title: 'geofences.catalog',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.listGeofences],\n // accessLevels: [9, 13, 15],\n navLink: paths.geofencesList,\n screenId: screens.GEOFENCES_CATALOG\n },\n {\n id: 'geofencesAssignedListScreen',\n title: 'geofences.assignedGeofences',\n icon: ,\n iconName: 'Link',\n permissions: [permissions.listAsignedGeofences],\n // accessLevels: [9, 13, 15],\n navLink: paths.geofencesAssignedList,\n screenId: screens.ASSIGNED_GEOFENCES\n }\n ]\n }\n];\n","import { MapPin } from 'react-feather';\nimport locations from '../../views/screens/Locations/sidebarLayout';\nimport geofences from './geofences';\n\nexport default [\n {\n id: 'pointsOfInterest',\n title: 'sidebar.pointsOfInterest',\n icon: ,\n iconName: 'MapPin',\n permissions: [],\n children: [...geofences, ...locations]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Reports/paths';\nimport permissions from 'views/screens/Reports/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'reports',\n title: 'reports.reports',\n icon: ,\n iconName: 'noun_report_556224',\n permissions: [\n permissions.systemCommunicationsDiagReport,\n permissions.systemNotificationsReport,\n permissions.accommodationChargesReport,\n permissions.mileageReport,\n permissions.hourMetersReport,\n permissions.consolidatedUnitActivityReport,\n permissions.consolidatedEventActivityReport,\n permissions.fuelSensorReport,\n permissions.consolidatedUnitMainStateReport,\n permissions.parkedGeofenceReport,\n permissions.administrativeReports,\n permissions.byUnitReports,\n permissions.consolidatedReports,\n permissions.listReports,\n permissions.runningTimeReport,\n permissions.unitActivity,\n permissions.byUnitReport,\n permissions.consumptionAPIReport,\n permissions.readWebEvents,\n permissions.scheduledReports\n ],\n navLink: paths.reportList,\n screenId: screens.REPORTS\n //children: [...scheduledReports, ...consolidated, ...byUnit, ...system]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/TrackingUnits/paths';\nimport permissions from 'views/screens/TrackingUnits/permissions';\nimport unitPermissions from 'views/screens/Units/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'trackingUnits',\n title: 'units.units',\n icon: ,\n permissions: [permissions.trackingUnitsList, unitPermissions.listFleet],\n iconName: 'Unidades',\n navLink: paths.listTrackingUnits,\n screenId: screens.TRACKING_UNITS,\n children: [\n {\n id: 'trackingUnitsCatalog',\n title: 'sidebar.catalog',\n icon: ,\n permissions: [permissions.trackingUnitsList],\n iconName: 'Unidades',\n navLink: paths.listTrackingUnits,\n screenId: screens.TRACKING_UNITS\n },\n {\n id: 'trackingUnitsMonitor',\n title: 'sidebar.monitor',\n icon: ,\n permissions: [unitPermissions.listFleet],\n iconName: 'Unidades',\n navLink: paths.listFleet,\n screenId: screens.FLEET\n }\n ]\n }\n];\n","import maps from './maps';\nimport dashboard from 'views/screens/Dashboard/sidebarLayout';\nimport pointsOfInterest from './pointsOfInterest';\nimport reports from './reports';\nimport trackingUnits from './trackingUnits';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...dashboard, ...maps, ...reports, ...trackingUnits, ...pointsOfInterest] //Only to check permission in children inside\n },\n ...dashboard,\n ...maps,\n ...reports,\n ...trackingUnits,\n ...pointsOfInterest\n];\n","import Icon from '../../utility/icomoon';\nimport organizationContractPaths from 'views/screens/Contracts/paths';\nimport contractTemplatesPaths from 'views/screens/ContractTemplates/paths';\nimport serviceClassPaths from 'views/screens/ServiceClasses/paths';\nimport quotationPaths from 'views/screens/Quotations/paths';\nimport organizationContractPermissions from 'views/screens/Contracts/permissions';\nimport contractTemplatesPermissions from 'views/screens/ContractTemplates/permissions';\nimport serviceClassPermissions from 'views/screens/ServiceClasses/permissions';\nimport quotationPermissions from 'views/screens/Quotations/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'service-class-orm',\n title: 'serviceClasses.serviceClasses',\n icon: ,\n permissions: [serviceClassPermissions.listServiceClass],\n accessLevels: [9, 13, 15],\n iconName: 'DollarSign',\n navLink: serviceClassPaths.listServiceClass,\n screenId: screens.SERVICE_CLASSES\n },\n {\n id: 'contracts-templates',\n title: 'contractTemplates.templates',\n icon: ,\n permissions: [contractTemplatesPermissions.listTemplate],\n iconName: 'PenTool',\n navLink: contractTemplatesPaths.listTemplate,\n screenId: screens.CONTRACT_TEMPLATES\n },\n {\n id: 'contracts',\n title: 'contracts.contracts',\n icon: ,\n iconName: 'FileText',\n permissions: [organizationContractPermissions.listContract],\n navLink: organizationContractPaths.listContract,\n screenId: screens.CONTRACTS\n },\n {\n id: 'quotations',\n title: 'quotations.quotations',\n icon: ,\n iconName: 'Edit',\n permissions: [quotationPermissions.listQuotation],\n navLink: quotationPaths.listQuotations,\n screenId: screens.QUOTATIONS\n }\n];\n","import contracts from './contracts';\nimport trackingUnits from './trackingUnits';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...contracts, ...trackingUnits] //Only to check permission in children inside\n },\n ...contracts,\n ...trackingUnits\n];\n","import paths from 'views/screens/Jobs/paths';\nimport permissions from 'views/screens/Jobs/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'jobs',\n title: 'jobs.jobs',\n iconName: 'Jobs',\n permissions: [permissions.jobs],\n children: [\n {\n id: 'jobsBacklog',\n title: 'jobs.backlog',\n iconName: 'Server',\n permissions: [permissions.listJobsBacklog],\n navLink: paths.backlog,\n screenId: screens.BACKLOG_JOBS\n },\n {\n id: 'ImportJobs',\n title: 'jobs.importJobs',\n iconName: 'UploadCloud',\n permissions: [permissions.jobsImport],\n navLink: paths.import,\n screenId: screens.IMPORT_JOBS\n },\n {\n id: 'jobsBoard',\n title: 'jobs.board',\n iconName: 'Trello',\n permissions: [permissions.jobsBoard],\n navLink: paths.board,\n screenId: screens.JOBS_BOARD\n },\n {\n id: 'jobsReport',\n title: 'jobs.report',\n iconName: 'Clock',\n permissions: [permissions.jobsReport],\n navLink: paths.report,\n screenId: screens.JOBS_REPORT\n },\n {\n id: 'workingActivityReport',\n title: 'jobs.reports.workingActivity',\n iconName: 'Calendar',\n permissions: [permissions.jobsWorkingActivity],\n navLink: paths.workingActivityReport,\n screenId: screens.JOBS_WORK_ACTIVITY\n }\n ]\n }\n];\n","import paths from 'views/screens/SafeDriver/paths';\nimport permissions from 'views/screens/SafeDriver/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'safeDriver',\n title: 'safeDriver.safeDriver',\n iconName: 'SafeDriver',\n badge: 'primary',\n badgeText: 'common.comingSoon',\n permissions: [permissions.safedriver],\n navLink: paths.list,\n screenId: screens.SAFE_DRIVER\n }\n];\n","import jobs from 'views/screens/Jobs/sidebarLayout';\nimport safeDriver from 'views/screens/SafeDriver/sidebarLayout';\n\nexport default [\n {\n header: 'sidebar.apps',\n iconName: 'BarChart2',\n children: [...jobs, ...safeDriver] //Only to check permission in children inside\n },\n ...jobs,\n ...safeDriver\n];\n","import businessPartnersPaths from 'views/screens/BusinessPartners/paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport Icon from '../../utility/icomoon';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport default [\n {\n id: 'businessPartner',\n title: 'partners.businessPartner',\n icon: ,\n iconName: 'Customers',\n permissions: [],\n navLink: businessPartnersPaths.editPartner,\n screenId: screens.BUSINESS_PARTNERS\n },\n {\n id: 'webServiceRates',\n title: 'partners.webServiceRates',\n icon: ,\n iconName: 'WebService',\n permissions: [],\n navLink: businessPartnersPaths.webServiceRates,\n screenId: screens.WEB_SERVICE_RATES\n }\n];\n","import businessPartners from './businessPartners';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...businessPartners] //Only to check permission in children inside\n },\n ...businessPartners\n];\n","import Icon from '../../utility/icomoon';\nimport paths from '../../views/screens/Console/paths';\nimport permissions from '../../views/screens/Console/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'console',\n title: 'console.console',\n icon: ,\n permissions: [permissions.console],\n iconName: 'Monitor',\n navLink: paths.console,\n screenId: screens.CONSOLE_NOTIFICATIONS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from '../../views/screens/Protocols/paths';\nimport permissions from '../../views/screens/Protocols/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'protocol',\n title: 'protocol.protocol',\n icon: ,\n permissions: [\n permissions.listProtocol,\n permissions.createProtocol,\n permissions.editProtocol,\n permissions.deleteProtocol\n ],\n iconName: 'List',\n navLink: paths.protocolsList,\n screenId: screens.PROTOCOL_CATALOG\n }\n];\n","import console from './console';\nimport protocol from './protocol';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'Target',\n children: [...console, ...protocol]\n },\n ...console,\n ...protocol\n];\n","import administrations from './administrations';\r\nimport operations from './operations';\r\nimport telemetry from './telemetry';\r\nimport general from './general';\r\nimport generalCRM from './generalCRM';\r\nimport apps from './apps';\r\nimport generalAdmin from './generalAdmin';\r\nimport generalMonitoringCenter from './generalMonitoringCenter';\r\n\r\nconst sidebarOptions = [...general, ...apps, ...operations, ...telemetry, ...administrations];\r\nexport const sidebarOptionsCRM = [...generalCRM];\r\nexport const sidebarOptionsMonitoring = [...generalMonitoringCenter];\r\nexport const sidebarOptionsAdmin = [...generalAdmin];\r\n\r\nexport function getOptions(sidebarOptions) {\r\n let options = [];\r\n\r\n sidebarOptions.forEach((option) => {\r\n if (option['navLink'] != null) {\r\n const optionNav = {\r\n ...option,\r\n isBookmarked: false,\r\n link: option['navLink'],\r\n\r\n target: option['id'],\r\n icon: option['iconName']\r\n };\r\n options.push(optionNav);\r\n }\r\n if (option['children'] != null && option['header'] == null) {\r\n let childrenOptions = getOptions(option['children']);\r\n options = [...options, ...childrenOptions];\r\n }\r\n });\r\n\r\n return options;\r\n}\r\n\r\nexport default sidebarOptions;\r\n","export const LOCATION_CLASSES_FETCH_STARTED = 'LOCATION_CLASSES_FETCH_STARTED';\nexport const LOCATION_CLASSES_FETCH_COMPLETED = 'LOCATION_CLASSES_FETCH_COMPLETED';\nexport const LOCATION_CLASSES_FETCH_FAILED = 'LOCATION_CLASSES_FETCH_FAILED';\n","export const TIME_ZONES_FETCH_STARTED = \"TIME_ZONES_FETCH_STARTED\";\nexport const TIME_ZONES_FETCH_COMPLETED = \"TIME_ZONES_FETCH_COMPLETED\";\nexport const TIME_ZONES_FETCH_FAILED = \"TIME_ZONES_FETCH_FAILED\";\n","export const CURRENCIES_FETCH_STARTED = 'CURRENCIES_FETCH_STARTED';\nexport const CURRENCIES_FETCH_COMPLETED = 'CURRENCIES_FETCH_COMPLETED';\nexport const CURRENCIES_FETCH_FAILED = 'CURRENCIES_FETCH_FAILED';\n\nexport interface Currency {\n isSelected: boolean;\n currencyId: number;\n currencyName: string;\n codeAlpha: string;\n symbol: string;\n countryCode: string;\n isConfirmed: boolean;\n}\n","export const SENSOR_BRANDS_FETCH_STARTED = 'SENSOR_BRANDS_FETCH_STARTED';\nexport const SENSOR_BRANDS_FETCH_COMPLETED = 'SENSOR_BRANDS_FETCH_COMPLETED';\nexport const SENSOR_BRANDS_FETCH_FAILED = 'SENSOR_BRANDS_FETCH_FAILED';\n","export const SENSOR_MODELS_FETCH_STARTED = 'SENSOR_MODELS_FETCH_STARTED';\nexport const SENSOR_MODELS_FETCH_COMPLETED = 'SENSOR_MODELS_FETCH_COMPLETED';\nexport const SENSOR_MODELS_FETCH_FAILED = 'SENSOR_MODELS_FETCH_FAILED';\n","export const PAYMENT_METHODS_FETCH_STARTED = 'PAYMENT_METHODS_FETCH_STARTED';\nexport const PAYMENT_METHODS_FETCH_COMPLETED = 'PAYMENT_METHODS_FETCH_COMPLETED';\nexport const PAYMENT_METHODS_FETCH_FAILED = 'PAYMENT_METHODS_FETCH_FAILED';\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansAssignments';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst bySchedule = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assignmentId) => {\n newState[assignmentId] = {\n isSelected: false,\n ...state[assignmentId],\n ...entities[assignmentId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return omit(state, assignmentId);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED: {\n const assignment = action.payload;\n return {\n ...state,\n [assignment.assignmentId]: {\n ...state[assignment.assignmentId],\n ...assignment\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byDateTime = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assignmentId) => {\n newState[assignmentId] = {\n isSelected: false,\n ...state[assignmentId],\n ...entities[assignmentId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return omit(state, assignmentId);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED: {\n const assignment = action.payload;\n return {\n ...state,\n [assignment.assignmentId]: {\n ...state[assignment.assignmentId],\n ...assignment\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byScheduleOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return state.filter((assignmentIdState) => assignmentIdState !== assignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byDateTimeOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return state.filter((assignmentIdState) => assignmentIdState !== assignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingAssignments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAssignments = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_STARTED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansAssignments = combineReducers({\n bySchedule,\n byDateTime,\n byScheduleOrder,\n byDateTimeOrder,\n isFetchingAssignments,\n //isAdding,\n isEditing,\n isRemoving,\n errorFetchingAssignments,\n //errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default workplansAssignments;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansAssignments;\n\n//Information\nexport const getWorkplansAssignment = (state, assignmentId, assignmentType) => {\n if (assignmentType === 'bySchedule') {\n return getOwnState(state).bySchedule[assignmentId];\n } else if (assignmentType === 'byDateTime') {\n return getOwnState(state).byDateTime[assignmentId];\n }\n};\nexport const getWorkplansAssignmentsByScheduleList = (state) =>\n getOwnState(state).byScheduleOrder?.map((id) => getWorkplansAssignment(state, id, 'bySchedule'));\n\nexport const getWorkplansAssignmentsByScheduleListByMembership = (\n state,\n membership: DefaultFilters\n) => {\n return getWorkplansAssignmentsByScheduleList(state)\n .filter((assignment) => {\n return !!assignment?.operatorId && !!membership?.operatorId\n ? assignment?.operatorId === membership?.operatorId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.organizationId && !!membership?.organizationId\n ? assignment?.organizationId === membership?.organizationId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.divisionId && !!membership?.divisionId\n ? assignment?.divisionId === membership?.divisionId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.subdivisionId && !!membership?.subdivisionId\n ? assignment?.subdivisionId === membership?.subdivisionId\n : !!assignment;\n });\n};\n\nexport const getWorkplansAssignmentsByDateTimeList = (state) =>\n getOwnState(state).byDateTimeOrder?.map((id) => getWorkplansAssignment(state, id, 'byDateTime'));\n\nexport const getWorkplansAssignmentsByDateTimeListByMembership = (\n state,\n membership: DefaultFilters\n) => {\n return getWorkplansAssignmentsByDateTimeList(state)\n .filter((assignment) => {\n return !!assignment?.operatorId && !!membership?.operatorId\n ? assignment?.operatorId === membership?.operatorId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.organizationId && !!membership?.organizationId\n ? assignment?.organizationId === membership?.organizationId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.divisionId && !!membership?.divisionId\n ? assignment?.divisionId === membership?.divisionId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.subdivisionId && !!membership?.subdivisionId\n ? assignment?.subdivisionId === membership?.subdivisionId\n : !!assignment;\n });\n};\n\n//Status of sagas\nexport const isFetchingWorkplansAssignments = (state) => getOwnState(state).isFetchingAssignments;\n//export const isAddingWorkplansComments = (state) => getOwnState(state).isAdding;\nexport const isEditingWorplansAssignments = (state) => getOwnState(state).isEditing;\nexport const isRemovingWorkplansAssignments = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingWorkplansAssignmentsErrors = (state) =>\n getOwnState(state).errorFetchingAssignments;\n//export const getAddingWorkplansCommentsErrors = (state) => getOwnState(state).errorAdding;\nexport const getAddingWorkplansAssignmentsErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingWorkplansAssignmentsErrors = (state) => getOwnState(state).errorRemoving;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/location';\n\ninterface LocationSaveRequest {\n locationId?: number;\n dispatchCompletionType: number;\n dispatchEmails: string;\n dispatchNotificationFreq: number;\n enableDispatch: number;\n latitude: number;\n longitude: number;\n radius: number;\n locationName: string;\n locationTypeId: number;\n locationClassId: number;\n locationAddress?: string;\n privateCode?: string;\n organizationId: number;\n divisionId: number;\n subdivisionId: number;\n}\n\ninterface LocationDeleteRequest {\n locationId: number;\n locationName: string;\n}\ninterface LocationFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n locationIds?: string;\n}\n\nexport const getLocationsListService = (request: LocationFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveLocationService = (request: LocationSaveRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: request.locationId ? 'Edit' : 'Create',\n name: request.locationName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteLocationService = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'locations.location',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const importLocationsService = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importLocations`, request);\n};\n\nexport const importLocationsServiceOptimization = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importLocationsOptimizations`, request);\n};\n\nexport const getLocationByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport { store } from 'redux/storeConfig/store';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\n\nexport const baseUrl = '/sensor';\n\nexport const getSensorsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sensors.sensor',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveSensorService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sensors.sensor',\n action: request.sensorId ? 'Edit' : 'Create',\n name: request.uniqueIdentifier,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteSensorService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const fuelCalibrationStartService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/startFuelCalibration`, { sensorId: request.sensorId });\n};\n\nexport const fuelCalibrationFinalizeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/finalizeFuelCalibration`, { sensorId: request.sensorId });\n};\n\nexport const getFuelCalibrationPubSubUrl = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.get(`${baseUrl}/getPubSubFuelCalibrationToken`);\n};\n\nexport const sendPubSubFuelCalibrationCommand = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/sendPubSubFuelCalibrationCommand`, request);\n};\n","import React, { useEffect, useState } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport MultiSelectInput from '../MultiSelectInput';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\n\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as ContactSelectors from 'views/screens/Contacts/reducers';\nimport * as authSelectors from 'views/../redux/reducers/auth';\nimport SlidingPaneAddEditContact from 'views/formComponents/SlidingPaneAddEditContact';\nimport { useGetOperatorContacts } from 'views/screens/Operators/hooks/useGetOperatorContacts';\nimport { useGetContacts } from 'views/screens/Organizations/hooks/useGetContacts';\n\ninterface Props {\n id: any;\n name: any;\n control: any;\n shouldUnregister?: any;\n defaultContacts?: any;\n extraContacts?: any;\n label?: any;\n isInModal?: boolean;\n initialFetch?: boolean;\n required?: boolean;\n contactTypeId?: number;\n isMultiple?: boolean;\n isClearable?: boolean;\n canCreate?: boolean;\n setContactsIn?: any;\n contactsIn?: any;\n setNewContact?: (value) => void;\n closeSlidingPaneAddEditContact?: () => void;\n prependcomponentFun?: () => void;\n appendcomponentFun?: () => void;\n operatorId?: number;\n organizationId?: number;\n defaultJobTitle?: string;\n watch?: any;\n reset?: any;\n}\n\nconst ContactsDropdown = (props: Props) => {\n const store = useSelector((state) => state);\n const userInSession = authSelectors.getUser(store);\n\n const {\n id,\n name,\n shouldUnregister,\n defaultContacts,\n extraContacts = [],\n label,\n isInModal,\n isMultiple = true,\n isClearable = false,\n initialFetch = true,\n canCreate = true,\n required,\n control,\n contactTypeId = 1,\n setContactsIn,\n contactsIn,\n setNewContact = null,\n closeSlidingPaneAddEditContact = undefined,\n prependcomponentFun = undefined,\n appendcomponentFun = undefined,\n operatorId = authSelectors.getAuthUserOperatorId(store),\n organizationId = authSelectors.getAuthUserOrganizationId(store),\n defaultJobTitle = '',\n watch = undefined,\n reset = undefined\n } = props;\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const [selectedContacts, changeSelectedContacts] = useState(\n Array.isArray(defaultContacts) ? defaultContacts : []\n );\n\n const [addEditContactSlideOpen, openAddEditContactSlide] = useState(false);\n const [newContact, changeNewContact] = useState(null);\n\n const selectAndEditContact = (contactId) => {\n dispatch(contactActions.selectContact(contactId));\n openAddEditContactSlide(true);\n };\n\n const selectedContactOnCreate = useSelector(ContactSelectors.getSelectedContact);\n const contacts = useSelector(ContactSelectors.getContactsList);\n const userContactsEmails = contacts.map((c) => c.email);\n\n const { operatorPublicContacts, areFetchingOperatorContacts } = (() => {\n const { operatorContacts, isFetchingOperatorContacts } = useGetOperatorContacts(operatorId);\n return {\n areFetchingOperatorContacts: isFetchingOperatorContacts,\n operatorPublicContacts: operatorContacts.map((c) => ({ ...c, contactTypeId: 2 }))\n };\n })();\n\n const { organizationPublicContacts, areFetchingOrganizationContacts } = (() => {\n const { contacts, isFetching } = useGetContacts(organizationId);\n return {\n organizationPublicContacts: contacts.map((c) => ({ ...c, contactTypeId: 3 })),\n areFetchingOrganizationContacts: isFetching\n };\n })();\n\n const formatContactsForDropdown = (contact) => {\n if (contact)\n return {\n ...contact,\n id: contact.contactId,\n value: contactTypeId === 1 ? contact.email : contact.contactId,\n label:\n contact.contactName !== contact.email\n ? `${contact.contactName} <${contact.email}>`\n : contact.contactName,\n edit: selectAndEditContact,\n identifierIcon: (\n <>\n \n {intl.formatMessage({\n id:\n contact.contactTypeId === 2\n ? 'contacts.operatorContact'\n : contact.contactTypeId === 3\n ? 'contacts.organizationContact'\n : 'contacts.userContact'\n })}\n \n \n \n )\n };\n return {};\n };\n\n const filterContactByAcces = (\n userContacts: Array,\n operatorContacts: Array,\n OrganizationContacts: Array\n ): Array => {\n const usedEmails: Array = userContacts.map((c) => c.email);\n const filteredContacts: Array = [...userContacts];\n\n const addNotIncludedContacts = (contact: any) => {\n if (usedEmails.includes(contact.email)) return;\n usedEmails.push(contact.email);\n filteredContacts.push(contact);\n };\n\n if (['9', '11', '13'].indexOf(userInSession?.accessLevelId) >= 0) {\n operatorContacts?.forEach(addNotIncludedContacts);\n }\n\n if (['7', '9', '11', '13'].indexOf(userInSession?.accessLevelId)) {\n OrganizationContacts?.forEach(addNotIncludedContacts);\n }\n\n return filteredContacts?.map(formatContactsForDropdown);\n };\n\n const contactsToShow: Array = filterContactByAcces(\n contacts,\n operatorPublicContacts,\n organizationPublicContacts\n );\n\n const contactsToAdd =\n contactTypeId === 1\n ? defaultContacts !== undefined && defaultContacts !== null && defaultContacts !== ''\n ? defaultContacts\n .split(',')\n .filter((c) => !userContactsEmails.includes(c))\n .filter(\n (defaultContact) =>\n contactsToShow\n .concat(extraContacts)\n .filter((contact) => contact.id === defaultContact).length === 0\n )\n .map((contactToAdd) => ({\n ...(contactTypeId === 1 ? {} : contactToAdd),\n id: contactTypeId === 1 ? contactToAdd : contactToAdd.contactId,\n value: contactTypeId === 1 ? contactToAdd : contactToAdd.contactId,\n label:\n contactTypeId === 1\n ? contactToAdd\n : contactToAdd.contactName !== contactToAdd.email\n ? `${contactToAdd.contactName} <${contactToAdd.email}>`\n : contactToAdd.contactName\n }))\n : []\n : [];\n\n const [resetValue, setResetValue] = useState(Date.now());\n const [selectedContact, setSelectedContact] = useState(\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts !== '' &&\n !isMultiple\n ? contactsToShow\n .concat(extraContacts)\n .concat(contactsToAdd)\n .filter((contact) => `${contact.contactId}` === selectedContacts)[0]\n : null\n );\n\n useEffect(() => {\n changeSelectedContacts(defaultContacts);\n setResetValue(Date.now());\n }, [defaultContacts]);\n\n // Realizar el fetch inicial de contactos\n useEffect(() => {\n if (selectedContacts || initialFetch) {\n dispatch(contactActions.startFetchingContacts(null));\n }\n }, [selectedContacts, initialFetch, dispatch]);\n\n // Efecto para seleccionar el nuevo contacto inmediatamente al crearse\n useEffect(() => {\n if (newContact) {\n changeSelectedContacts((prevContacts) => [\n ...(Array.isArray(prevContacts) ? prevContacts : []),\n newContact\n ]);\n }\n }, [newContact]);\n\n // Función para manejar la creación de un nuevo contacto\n const onCreate = (event) => {\n const newContactData = {\n contactName: event[event.length - 1].value,\n email: event[event.length - 1].value,\n contactId: uuidv4()\n };\n\n // Guardar el nuevo contacto en el estado local\n changeNewContact(newContactData);\n\n // Llamar a la acción para agregar el contacto\n dispatch(contactActions.startAddingContact(newContactData));\n\n // Luego realizar un nuevo fetch de contactos para actualizar la lista completa\n setTimeout(() => {\n dispatch(contactActions.startFetchingContacts(null));\n }, 500); // Un pequeño retraso para asegurar que el contacto se haya agregado en el backend\n };\n\n // Función para manejar la edición de un contacto existente\n const onEdit = (editedContactData) => {\n // Actualizar el contacto temporalmente en el estado local\n changeSelectedContacts((prevContacts) =>\n prevContacts.map((contact) =>\n contact.contactId === editedContactData.contactId ? editedContactData : contact\n )\n );\n\n // Llamar a la acción para editar el contacto\n dispatch(contactActions.startEditingContact(editedContactData));\n\n // Luego realizar un nuevo fetch de contactos para actualizar la lista completa\n setTimeout(() => {\n dispatch(contactActions.startFetchingContacts(null));\n }, 500); // Un pequeño retraso para asegurar que el contacto se haya actualizado en el backend\n };\n\n return (\n <>\n (\n \n \n {intl.formatMessage({ id: 'contacts.editContact' })}\n \n {\n if (\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts.trim() !== ''\n ) {\n openAddEditContactSlide(true);\n if (prependcomponentFun) prependcomponentFun();\n setSelectedContact(\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts !== '' &&\n !isMultiple\n ? contactsToShow\n .concat(extraContacts)\n .concat(contactsToAdd)\n .filter((contact) => `${contact.contactId}` === selectedContacts)[0]\n : null\n );\n }\n }}\n >\n \n \n \n )\n }\n appendcomponent={\n isMultiple ? undefined : (\n <>\n \n {intl.formatMessage({ id: 'contacts.addContact' })}\n \n {\n if (appendcomponentFun) appendcomponentFun();\n openAddEditContactSlide(true);\n setSelectedContact(null);\n }}\n >\n \n \n \n )\n }\n onCreate={onCreate} // Llamar a la función onCreate al crear un nuevo contacto\n onSelect={(event) => {\n var string = '';\n isMultiple\n ? event.map((email) => (string = string + email.id + ','))\n : (string = `${string}${event !== undefined && event !== null ? event.id : ''},`);\n changeSelectedContacts(string.slice(0, -1));\n }}\n selectedValues={selectedContacts}\n type={'select'}\n options={contactsToShow.concat(extraContacts).concat(contactsToAdd)}\n label={\n label ||\n intl.formatMessage({\n id: 'contacts.contacts'\n })\n }\n placeholder={intl.formatMessage({ id: 'contacts.placeholder' })}\n canCreate={isMultiple && canCreate}\n />\n )}\n />\n {\n openAddEditContactSlide(false);\n if (closeSlidingPaneAddEditContact) closeSlidingPaneAddEditContact();\n }}\n setNewContact={changeNewContact}\n defaultJobTitle={defaultJobTitle}\n canCreate={\n (!isMultiple && canCreate && contactTypeId !== 1) || (contactTypeId === 1 && canCreate)\n }\n operatorId={operatorId}\n organizationId={organizationId}\n isSelectedOnCreate\n isEditingFromMulti={isMultiple && contactTypeId === 1}\n onSave={onEdit} // Llamar a la función onEdit al editar un contacto\n />\n \n );\n};\n\nContactsDropdown.defaultProps = {\n isInModal: false\n};\n\nexport default ContactsDropdown;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ASSETS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((assetId) => {\n newState[assetId] = {\n isSelected: false,\n ...state[assetId],\n ...entities[assetId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assetId) => {\n newState[assetId] = {\n isSelected: false,\n ...state[assetId],\n ...entities[assetId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ASSET_ADD_COMPLETED: {\n const { oldId, asset } = action.payload;\n const newState = omit(state, oldId);\n newState[asset.assetId] = {\n ...state[oldId],\n ...asset,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ASSET_EDIT_COMPLETED: {\n const asset = action.payload;\n return {\n ...state,\n [asset.assetId]: {\n ...omit(state[asset.assetId], ['oldAsset']),\n ...omit(asset, ['oldAsset']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ASSET_ADD_STARTED: {\n const asset = action.payload;\n const newState = { ...state };\n newState[asset.assetId] = {\n isSelected: false,\n ...asset,\n isConfirmed: false\n };\n return newState;\n }\n case types.ASSET_EDIT_STARTED: {\n const asset = action.payload;\n return {\n ...state,\n [asset.assetId]: {\n ...state[asset.assetId],\n oldAsset: state[asset.assetId],\n ...asset,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ASSET_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ASSET_EDIT_FAILED: {\n const { oldAsset } = action.payload;\n return {\n ...state,\n [oldAsset.assetId]: {\n ...omit(state[oldAsset.assetId], ['oldAsset']),\n ...oldAsset,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ASSET_REMOVE_COMPLETED: {\n const { assetId } = action.payload;\n return omit(state, assetId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ASSET_SELECTED: {\n const assetId = action.payload;\n const newState = {\n ...state,\n [assetId]: {\n ...state[assetId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ASSET_DESELECTED: {\n const assetId = action.payload;\n return {\n ...state,\n [assetId]: {\n ...state[assetId],\n isSelected: false\n }\n };\n }\n\n case types.ASSETS_ALL_SELECTED: {\n const assetIds = action.payload;\n const newState = { ...state };\n if (assetIds.length == 0) {\n forEach(state, (asset: any, assetId) => {\n newState[assetId] = {\n ...asset,\n isSelected: true\n };\n });\n } else {\n assetIds.forEach((assetId) => {\n newState[assetId] = {\n ...state[assetId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ASSETS_ALL_DESELECTED: {\n const assetIds = action.payload;\n const newState = { ...state };\n if (assetIds.length == 0) {\n forEach(state, (asset: any, assetId) => {\n newState[assetId] = {\n ...asset,\n isSelected: false\n };\n });\n } else {\n assetIds.forEach((assetId) => {\n newState[assetId] = {\n ...state[assetId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ASSETS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ASSET_ADD_COMPLETED: {\n const { oldId, asset } = action.payload;\n return state.map((assetId) => (assetId === oldId ? asset.assetId : assetId));\n }\n\n case types.ASSET_REMOVE_COMPLETED: {\n const { assetId } = action.payload;\n return state.filter((assetIdState) => assetIdState !== assetId);\n }\n\n //CASE ADD STARTED\n case types.ASSET_ADD_STARTED: {\n const asset = action.payload;\n return [...state, asset.assetId];\n }\n\n //CASE ADD FAILED\n case types.ASSET_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((assetIdState) => assetIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ASSETS_FETCH_STARTED: {\n return true;\n }\n case types.ASSETS_FETCH_COMPLETED:\n case types.ASSETS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ASSETS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ASSETS_PARTIAL_FETCH_COMPLETED:\n case types.ASSETS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_ADD_STARTED: {\n return true;\n }\n case types.ASSET_ADD_COMPLETED:\n case types.ASSET_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_EDIT_STARTED: {\n return true;\n }\n case types.ASSET_EDIT_COMPLETED:\n case types.ASSET_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_REMOVE_STARTED: {\n return true;\n }\n case types.ASSET_REMOVE_COMPLETED:\n case types.ASSET_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ASSETS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSETS_FETCH_STARTED:\n case types.ASSETS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ASSETS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSETS_PARTIAL_FETCH_STARTED:\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_ADD_STARTED:\n case types.ASSET_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_EDIT_STARTED:\n case types.ASSET_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_REMOVE_STARTED:\n case types.ASSET_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validIdentifier = (state = true, action) => {\n switch (action.type) {\n case types.ASSET_IDENTIFIER_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ASSET_IDENTIFIER_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validSecuritySealCode = (state = true, action) => {\n switch (action.type) {\n case types.ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ASSET_SECURITY_SEAL_CODE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst assets = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n validIdentifier,\n validSecuritySealCode\n});\n\nexport default assets;\n\n//Own state\nexport const getOwnState = (state) => state.assets;\n\n//Information\nexport const getAsset = (state, assetId) => getOwnState(state).byId[assetId];\nexport const getAssetsList = (state) =>\n getOwnState(state)\n .order.map((id) => getAsset(state, id))\n .filter((asset) => asset.assetStatus > 0);\n\nexport const getAssetListByMembership = (state, membership) =>\n getAssetsList(state).filter(\n (asset) =>\n membership &&\n (!membership.operatorId || membership.operatorId === asset.operatorId) &&\n (!membership.organizationId || membership.organizationId === asset.organizationId) &&\n (!membership.divisionId || membership.divisionId === asset.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === asset.subdivisionId)\n );\n\nexport const getSelectedAssets = (state) => {\n const selectedAssets = getAssetsList(state).filter((asset) => asset.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedAssets.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedAssets.length > 0) return selectedAssets;\n};\n\nexport const getSelectedAsset = (state) => {\n const selectedAssets = getAssetsList(state).filter((asset) => asset.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedAssets.length === 1) return selectedAssets[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isValidIdentifier = (state) => getOwnState(state).validIdentifier;\nexport const isValidSecuritySealCode = (state) => getOwnState(state).validSecuritySealCode;\n\n//Status of sagas\nexport const isPartialFetchingListAssets = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListAssets = (state) => getOwnState(state).isFetchingList;\nexport const isAddingAsset = (state) => getOwnState(state).isAdding;\nexport const isEditingAsset = (state) => getOwnState(state).isEditing;\nexport const isRemovingAsset = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListAssetsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListAssetsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingAssetErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingAssetErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingAssetErrors = (state) => getOwnState(state).errorRemoving;\n","import * as types from '../../types/routeCheckpoints';\n\nexport const startFetchingRouteCheckpoints = (routeId) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_STARTED,\n payload: routeId\n});\nexport const completeFetchingRouteCheckpoints = (entities, order) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingRouteCheckpoints = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\nexport const clearRouteCheckpoints = () => ({\n type: types.ROUTE_CHECKPOINTS_CLEAR,\n payload: {}\n});\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SIMS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((simId) => {\n newState[simId] = {\n isSelected: false,\n ...state[simId],\n ...entities[simId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((simId) => {\n newState[simId] = {\n isSelected: false,\n ...state[simId],\n ...entities[simId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SIM_FETCH_COMPLETED: {\n const { sim } = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...state[sim.simCardId],\n ...sim,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.SIM_ADD_COMPLETED: {\n const { oldId, sim } = action.payload;\n const newState = omit(state, oldId);\n newState[sim.simCardId] = {\n ...state[oldId],\n ...sim,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SIM_EDIT_COMPLETED: {\n const sim = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...omit(state[sim.simCardId], ['oldSim']),\n ...omit(sim, ['oldSim']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SIM_ADD_STARTED: {\n const sim = action.payload;\n const newState = { ...state };\n newState[sim.simId] = {\n isSelected: false,\n ...sim,\n isConfirmed: false\n };\n return newState;\n }\n case types.SIM_EDIT_STARTED: {\n const sim = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...state[sim.simCardId],\n oldSim: state[sim.simCardId],\n ...sim,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SIM_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SIM_EDIT_FAILED: {\n const { oldSim } = action.payload;\n return {\n ...state,\n [oldSim.simCardId]: {\n ...omit(state[oldSim.simCardId], ['oldSim']),\n ...oldSim,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SIM_REMOVE_COMPLETED: {\n const { simId } = action.payload;\n return omit(state, simId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SIM_SELECTED: {\n const simId = action.payload;\n const newState = {\n ...state,\n [simId]: {\n ...state[simId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SIM_DESELECTED: {\n const simId = action.payload;\n return {\n ...state,\n [simId]: {\n ...state[simId],\n isSelected: false\n }\n };\n }\n\n case types.SIMS_ALL_SELECTED: {\n const simIds = action.payload;\n const newState = { ...state };\n if (simIds.length == 0) {\n forEach(state, (sim: any, simId) => {\n newState[simId] = {\n ...sim,\n isSelected: true\n };\n });\n } else {\n simIds.forEach((simId) => {\n newState[simId] = {\n ...state[simId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SIMS_ALL_DESELECTED: {\n const simIds = action.payload;\n const newState = { ...state };\n if (simIds.length == 0) {\n forEach(state, (sim: any, simId) => {\n newState[simId] = {\n ...sim,\n isSelected: false\n };\n });\n } else {\n simIds.forEach((simId) => {\n newState[simId] = {\n ...state[simId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SIMS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SIM_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SIM_ADD_COMPLETED: {\n const { oldId, sim } = action.payload;\n return state.map((simId) => (simId === oldId ? sim.simCardId : simId));\n }\n\n case types.SIM_REMOVE_COMPLETED: {\n const { simId } = action.payload;\n return state.filter((simIdState) => simIdState !== simId);\n }\n\n //CASE ADD STARTED\n case types.SIM_ADD_STARTED: {\n const sim = action.payload;\n return [...state, sim.simId];\n }\n\n //CASE ADD FAILED\n case types.SIM_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((simIdState) => simIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SIMS_FETCH_STARTED: {\n return true;\n }\n case types.SIMS_FETCH_COMPLETED:\n case types.SIMS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingSim = (state = false, action) => {\n switch (action.type) {\n case types.SIM_FETCH_STARTED: {\n return true;\n }\n case types.SIM_FETCH_COMPLETED:\n case types.SIM_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SIMS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SIMS_PARTIAL_FETCH_COMPLETED:\n case types.SIMS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SIM_ADD_STARTED: {\n return true;\n }\n case types.SIM_ADD_COMPLETED:\n case types.SIM_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SIM_EDIT_STARTED: {\n return true;\n }\n case types.SIM_EDIT_COMPLETED:\n case types.SIM_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SIM_REMOVE_STARTED: {\n return true;\n }\n case types.SIM_REMOVE_COMPLETED:\n case types.SIM_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SIMS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIMS_FETCH_STARTED:\n case types.SIMS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SIMS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIMS_PARTIAL_FETCH_STARTED:\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SIM_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_ADD_STARTED:\n case types.SIM_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SIM_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_EDIT_STARTED:\n case types.SIM_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SIM_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_REMOVE_STARTED:\n case types.SIM_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sims = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n isFetchingSim\n});\n\nexport default sims;\n\n//Own state\nexport const getOwnState = (state) => state.sims;\n\n//Information\nexport const getSim = (state, simId) => getOwnState(state).byId[simId];\nexport const getSimsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSim(state, id))\n .filter((sim) => sim.simCardStatus > 0);\nexport const getSimsListAll = (state) => getOwnState(state).order.map((id) => getSim(state, id));\nexport const getSimsListByUnit = (state, unitId) => {\n if (unitId || unitId === 0) {\n return getSimsList(state).filter((sim) => sim.unitId === unitId);\n }\n return getSimsList(state);\n};\nexport const getSimsListByCountry = (state, countryId, providerId, unitId) => {\n if (countryId || countryId === 0) {\n if (providerId || providerId === 0) {\n return getSimsListByUnit(state, unitId).filter(\n (sim) => sim.countryId === countryId && sim.mobileOperatorId === providerId\n );\n }\n return getSimsListByUnit(state, unitId).filter((sim) => sim.countryId === countryId);\n }\n return getSimsListByUnit(state, unitId);\n};\n\nexport const getSimsListByMembership = (state, membership) =>\n getSimsList(state).filter(\n (sim) =>\n membership &&\n (!membership.operatorId || membership.operatorId === sim.operatorId) &&\n (!membership.organizationId || membership.organizationId === sim.organizationId) &&\n (!membership.divisionId || membership.divisionId === sim.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === sim.subdivisionId)\n );\nexport const getSelectedSims = (state) => {\n const selectedSims = getSimsList(state).filter((sim) => sim.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSims.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedSims.length > 0) return selectedSims;\n};\n\nexport const getSelectedSim = (state) => {\n const selectedSims = getSimsList(state).filter((sim) => sim.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSims.length === 1) return selectedSims[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSims = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSims = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSim = (state) => getOwnState(state).isAdding;\nexport const isEditingSim = (state) => getOwnState(state).isEditing;\nexport const isRemovingSim = (state) => getOwnState(state).isRemoving;\nexport const isFetchingSimById = (state) => getOwnState(state).isFetchingSim;\n\n//Errors\nexport const getPartialFetchingListSimsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSimsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSimErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSimErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSimErrors = (state) => getOwnState(state).errorRemoving;\n","const paths = {\n routeList: '/route/list',\n routeEdit: '/route/edit',\n routeMonitor: '/route/monitor',\n routeReport: '/route/report',\n routeAssignUnit: '/route/assignUnit',\n importRouteAssignments: '/route/importRouteAssignments',\n routeETAMonitor: '/route/etaMonitor'\n};\n\nexport default paths;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport { store } from 'redux/storeConfig/store';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\n\nexport const baseUrl = '/geofence';\n\ninterface GeofenceSaveRequest {\n geofenceId?: number;\n shape: string;\n color: string;\n geofenceName: string;\n geofenceAddress?: string;\n privateCode?: string;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n latitude?: number;\n longitude?: number;\n latitude2?: number;\n longitude2?: number;\n radius?: number;\n vertexCount?: number;\n geofenceWKT?: string;\n vertexCsv?: string;\n}\n\ninterface GeofenceDeleteRequest {\n geofenceId: number;\n geofenceName: string;\n}\n\ninterface GeofenceFilters {\n startDate?: string;\n endDate?: string;\n unitId?: number;\n geofenceId?: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n userFetchDate?: Date;\n email?: string;\n consoleName?: string;\n deepSearch?: boolean;\n byUnit?: number;\n tab?: number;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n groupId?: number;\n}\n\ninterface GetGeofencesFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n}\n\nexport const getGeofencesListService = (\n request: GetGeofencesFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getGeofenceDropdownByOrganization = (\n request: GeofenceFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/organization/dropdown`, request);\n};\n\nexport const getCpGeofence = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/cpgeofence`, request);\n};\n\nexport const saveGeofenceService = (request: GeofenceSaveRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: request.geofenceId ? 'Edit' : 'Create',\n name: request.geofenceName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteGeofenceService = (\n request: GeofenceDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.geofenceName}`,\n object: 'geofences.geofence',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const getUnitGeofences = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/unitGeofences`, request);\n};\n\nexport const getUnitGeofenceInfo = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/UnitGeofenceInfo`, request);\n};\n\nexport const getAssignments = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignedUnits`, request);\n};\n\nexport const getUnassignedEntities = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/unassignedEntities`, request);\n};\n\nexport const getGeofenceByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente CustomersDropdown */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput que permite elegir un cliente y abrir un slide para crear nuevos clientes\n\nimport { useState } from 'react';\nimport { Edit2, Plus } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport SlidingPaneAddEditCustomer from 'views/formComponents/SlidingPaneAddEditCustomer';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as customerSelectors from '../../screens/Customers/reducers';\nimport DropdownInput from '../DropdownInput';\n\nconst CustomersDropdown = (props) => {\n const {\n appendAddCustomer = true,\n enableSelectLocation = false,\n isClearable = false,\n customersFilters,\n notAssigned = false,\n locationId,\n field,\n ...dropdownProps\n } = props;\n const intl = useIntl();\n const { customers } = useSelector((state) => ({\n customers: notAssigned\n ? customerSelectors.getNotAssignedCustomersList(state, locationId)\n : customerSelectors.getCustomersList(state)\n }));\n const [isOpenShiftPane, setOpenShiftPane] = useState(false);\n const [selectedCustomer, setSelectedCustomer] = useState(undefined);\n const closeShiftPane = () => setOpenShiftPane(false);\n const id_dropdwon = appendAddCustomer ? 'In_SP' : 'Out_SP'\n return (\n <>\n \n ({\n value: customer.customerId,\n label: customer.customerName\n })) || []\n }\n id = {'customerDropdown' + id_dropdwon}\n label={intl.formatMessage({ id: 'customers.customer' })}\n placeholder={intl.formatMessage({ id: 'customers.selectCustomer' })}\n appendcomponent={\n appendAddCustomer ? (\n <>\n {field.value && (\n {\n setSelectedCustomer({ customerId: field.value });\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n )}\n {\n setSelectedCustomer(undefined);\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n \n ) : (\n <>\n )\n }\n />\n {\n setSelectedCustomer(undefined);\n closeShiftPane();\n }}\n />\n \n );\n};\n\nexport default CustomersDropdown;\n","import { combineReducers } from 'redux';\n\nimport forEach from 'lodash/forEach';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\n\nimport brands from '../../../../redux/reducers/static-catalogs/brands';\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SENSORS_FETCH_COMPLETED:\n case types.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((sensorId) => {\n newState[sensorId] = {\n isSelected: false,\n ...entities[sensorId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SENSOR_FETCH_COMPLETED: {\n const sensor = action.payload;\n const newState = { ...state };\n newState[sensor.deviceId] = {\n isSelected: false,\n ...state[sensor.deviceId],\n ...sensor,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SENSOR_ADD_COMPLETED: {\n const { oldId, sensor } = action.payload;\n const newState = omit(state, oldId);\n newState[sensor.sensorId] = {\n ...state[oldId],\n ...sensor,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SENSOR_EDIT_COMPLETED: {\n const sensor = action.payload;\n return {\n ...state,\n [sensor.sensorId]: {\n ...omit(state[sensor.sensorId], ['oldSensor']),\n ...omit(sensor, ['oldSensor']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SENSOR_ADD_STARTED: {\n const sensor = action.payload;\n const newState = { ...state };\n newState[sensor.sensorId] = {\n isSelected: false,\n ...sensor,\n isConfirmed: false\n };\n return newState;\n }\n case types.SENSOR_EDIT_STARTED: {\n const sensor = action.payload;\n return {\n ...state,\n [sensor.sensorId]: {\n ...state[sensor.sensorId],\n oldSensor: state[sensor.sensorId],\n ...sensor,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SENSOR_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SENSOR_EDIT_FAILED: {\n const oldSensor = action.payload;\n return {\n ...state,\n [oldSensor.sensorId]: {\n ...omit(state[oldSensor.sensorId], ['oldSensor']),\n ...oldSensor,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SENSOR_REMOVE_COMPLETED: {\n const { sensorId } = action.payload;\n return omit(state, sensorId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SENSOR_SELECTED: {\n const sensorId = action.payload;\n const newState = {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SENSOR_DESELECTED: {\n const sensorId = action.payload;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n isSelected: false\n }\n };\n }\n\n case types.SENSORS_ALL_SELECTED: {\n const sensorIds = action.payload;\n const newState = { ...state };\n if (sensorIds.length == 0) {\n forEach(state, (sensor: any, sensorId) => {\n newState[sensorId] = {\n ...sensor,\n isSelected: true\n };\n });\n } else {\n sensorIds.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SENSORS_ALL_DESELECTED: {\n const sensorIds = action.payload;\n const newState = { ...state };\n if (sensorIds.length == 0) {\n forEach(state, (sensor: any, sensorId) => {\n newState[sensorId] = {\n ...sensor,\n isSelected: false\n };\n });\n } else {\n sensorIds.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n case types.START_SENSOR_CALIBRATION_COMPLETED: {\n const sensorId = action.payload?.sensorId;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n calibrationState: 1\n }\n };\n }\n\n case types.FINALIZE_SENSOR_CALIBRATION_COMPLETED: {\n const sensorId = action.payload?.sensorId;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n calibrationState: 0\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SENSORS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SENSOR_FETCH_COMPLETED: {\n const sensor = action.payload;\n return uniq([...state, sensor.deviceId]);\n }\n\n case types.SENSOR_ADD_COMPLETED: {\n const { oldId, sensor } = action.payload;\n return state.map((sensorId) => (sensorId === oldId ? sensor.sensorId : sensorId));\n }\n\n case types.SENSOR_REMOVE_COMPLETED: {\n const { sensorId } = action.payload;\n return state.filter((sensorIdState) => sensorIdState !== sensorId);\n }\n\n //CASE ADD STARTED\n case types.SENSOR_ADD_STARTED: {\n const sensor = action.payload;\n return [...state, sensor.sensorId];\n }\n\n //CASE ADD FAILED\n case types.SENSOR_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((sensorIdState) => sensorIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SENSORS_FETCH_STARTED: {\n return true;\n }\n case types.SENSORS_FETCH_COMPLETED:\n case types.SENSORS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_FETCH_STARTED: {\n return true;\n }\n case types.SENSOR_FETCH_COMPLETED:\n case types.SENSOR_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_ADD_STARTED: {\n return true;\n }\n case types.SENSOR_ADD_COMPLETED:\n case types.SENSOR_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_EDIT_STARTED: {\n return true;\n }\n case types.SENSOR_EDIT_COMPLETED:\n case types.SENSOR_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_REMOVE_STARTED: {\n return true;\n }\n case types.SENSOR_REMOVE_COMPLETED:\n case types.SENSOR_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SENSORS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSORS_FETCH_STARTED:\n case types.SENSORS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_FETCH_STARTED:\n case types.SENSOR_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_ADD_STARTED:\n case types.SENSOR_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_EDIT_STARTED:\n case types.SENSOR_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_REMOVE_STARTED:\n case types.SENSOR_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.IDENTIFIER_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.IDENTIFIER_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sensors = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n brands,\n validCode\n});\n\nexport default sensors;\n\n//Own state\nexport const getOwnState = (state) => state.sensors;\n\n//Information\nexport const getSensor = (state, sensorId) => getOwnState(state).byId[sensorId];\nexport const getSensorsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSensor(state, id))\n .filter((sensor) => sensor.sensorStatus > 0);\n\nexport const getSensorsListByMembership = (state, membership) =>\n getSensorsList(state).filter(\n (sensor) =>\n membership &&\n (!membership.operatorId || membership.operatorId === sensor.operatorId) &&\n (!membership.organizationId || membership.organizationId === sensor.organizationId) &&\n (!membership.divisionId || membership.divisionId === sensor.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === sensor.subdivisionId)\n );\nexport const getSelectedSensors = (state) => {\n const selectedSensors = getSensorsList(state).filter((sensor) => sensor.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSensors.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedSensors.length > 0) return selectedSensors;\n};\n\nexport const getSelectedSensor = (state) => {\n const selectedSensors = getSensorsList(state).filter((sensor) => {\n return sensor.isSelected;\n });\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSensors.length === 1) return selectedSensors[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isValidCode = (state) => getOwnState(state).validCode;\n\n//Status of sagas\nexport const isFetchingSensor = (state) => getOwnState(state).isFetching;\nexport const isFetchingListSensors = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSensor = (state) => getOwnState(state).isAdding;\nexport const isEditingSensor = (state) => getOwnState(state).isEditing;\nexport const isRemovingSensor = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingSensorErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListSensorsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSensorErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSensorErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSensorErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n listJobsBacklog: 'JB002',\n addJobBacklog: 'JB015',\n editJobBacklog: 'JB016',\n removeJobBacklog: 'JB017',\n jobs: 'JB001',\n jobsBoard: 'JB003',\n jobsReport: 'JB004',\n jobsImport: 'JB013',\n jobsWorkingActivity: 'JB014',\n listAsignedJobsBacklog: 'GF006',\n asignJobBacklogToUnit: 'GF007',\n listOwnLocations: 'JB008',\n addLocations: 'JB005',\n editLocations: 'JB006',\n assignLocations: 'JB007',\n listLocationImages: 'JB010',\n addLocationImages: 'JB011',\n removeLocationImages: 'JB012'\n};\n\nexport default permissions;\n","const paths = {\n telemetryTemperature: '/telemetry/temperature',\n telemetryFuelMonitor: '/telemetry/fuel/monitor',\n telemetryFuelReport: '/telemetry/fuel/report',\n telemetryFuelReportByVehicles: '/telemetry/fuel/vehicles/report',\n telemetryUnits: '/telemetry/units',\n telemetryOBD2: '/telemetry/obd2'\n};\n\nexport default paths;\n","import * as types from '../../types/board';\n\nexport const startFetchingJobsBoard = (filters = {}) => ({\n type: types.JOBS_BOARD_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingJobsBoard = (entities, order) => ({\n type: types.JOBS_BOARD_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingJobsBoard = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOBS_BOARD_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeStatusJobsBoard = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_STARTED,\n payload: { jobs, jobStatus, comment }\n});\nexport const completeChangeStatusJobsBoard = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobStatus, comment }\n});\nexport const failChangeStatusJobsBoard = (oldJobs, error) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n","// ** Get Bookmarks Array from @fakeDB\nimport * as navbarTypes from \"../../types/navbar\";\n\nexport const completeFetchingBookmarks = (bookmarks, suggestions) => ({\n type: navbarTypes.GET_BOOKMARKS_FETCH_COMPLETED,\n payload: {\n bookmarks: bookmarks,\n suggestions: suggestions,\n },\n});\n\nexport const startFetchingBookmarks = () => ({\n type: navbarTypes.GET_BOOKMARKS_FETCH_STARTED,\n payload: {},\n});\n\nexport const failFetchingBookmarks = () => ({\n type: navbarTypes.GET_BOOKMARKS_FETCH_FAILED,\n payload: {},\n});\n\n// ** Update & Get Updated Bookmarks Array\nexport const updateBookmarkedStarted = (id) => ({\n type: navbarTypes.UPDATE_BOOKMARKED_STARTED,\n payload: { id },\n});\n\n// ** Update & Get Updated Bookmarks Array\nexport const updateBookmarkedCompleted = () => ({\n type: navbarTypes.UPDATE_BOOKMARKED_COMPLETED,\n payload: {},\n});\n\n// ** Update & Get Updated Bookmarks Array\nexport const updateBookmarkedFailed = () => ({\n type: navbarTypes.UPDATE_BOOKMARKED_FAILED,\n payload: {},\n});\n\n// ** Handle Bookmarks & Main Search Queries\nexport const handleSearchQuery = (val) => ({\n type: navbarTypes.HANDLE_SEARCH_QUERY,\n payload: val,\n});\n","import * as types from '../../types/workplansComments';\n\nexport const startFetchingComments = (visitId, locationId) => ({\n type: types.WORKPLAN_COMMENTS_FETCH_STARTED,\n payload: { visitId, locationId }\n});\nexport const completeFetchingComments = (entities, order) => ({\n type: types.WORKPLAN_COMMENTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingComments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKPLAN_COMMENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingComment = (comment) => ({\n type: types.WORKPLAN_COMMENT_ADD_STARTED,\n payload: comment\n});\nexport const completeAddingComment = (oldId, comment) => ({\n type: types.WORKPLAN_COMMENT_ADD_COMPLETED,\n payload: { oldId, comment }\n});\nexport const failAddingComment = (oldId, error) => ({\n type: types.WORKPLAN_COMMENT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startRemovingComment = (jobCommentId) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_STARTED,\n payload: {\n jobCommentId\n }\n});\nexport const completeRemovingComment = (jobCommentId) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_COMPLETED,\n payload: {\n jobCommentId\n }\n});\nexport const failRemovingComment = (jobCommentId, error) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_FAILED,\n payload: {\n jobCommentId,\n error\n }\n});\n","import { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport * as unitSelectors from '../../screens/Units/reducers';\nimport { FC, useEffect, useState } from 'react';\nimport FetchEntities, { DefaultFilters } from '../../screens/Entities/views/FetchEntities';\nimport DropdownInput, { DropdownProps, Options } from '../DropdownInput';\nimport { ReduxUnit } from 'views/screens/Units/types';\n\ninterface Props extends DropdownProps {\n usePartialMembership?: boolean;\n membership?: DefaultFilters;\n unitsFilters?: any;\n placeholder?: string;\n isClearable?: boolean;\n forceinitialvalue?: string | number;\n options?: Options;\n label?: string | JSX.Element;\n useLabel?: true;\n}\n\nconst UnitsDropdown: FC = (props) => {\n const {\n usePartialMembership,\n membership,\n unitsFilters,\n useLabel = true,\n placeholder,\n isClearable = false,\n forceinitialvalue\n } = props;\n const { units, isFetching } = useSelector((state: any) => {\n let units: ReduxUnit[] = [];\n\n if (!!membership && usePartialMembership) {\n units = unitSelectors.getActiveUnitsListByPartialMembership(state, membership);\n } else if (!!membership) {\n units = unitSelectors.getActiveUnitsListByMembership(state, membership);\n } else {\n units = unitSelectors.getUnitsList(state);\n }\n\n return {\n units,\n isFetching:\n unitSelectors.isFetchingListUnits(state) || unitSelectors.isPartialFetchingListUnits(state)\n };\n });\n\n //Reset value with initial when values are loaded from db\n const [resetValue, setResetValue] = useState(Date.now());\n const resetDropdown = () => {\n setResetValue(Date.now());\n };\n\n //Update reactselect values of units when fetched is finished\n useEffect(() => {\n if (!isFetching) {\n resetDropdown();\n }\n }, [\n isFetching,\n props?.options?.length,\n membership?.operatorId,\n membership?.organizationId,\n membership?.divisionId,\n membership?.subdivisionId\n ]);\n\n return (\n <>\n {!props.options && }\n : null\n }\n options={\n props.options ||\n (unitsFilters?.unitTypeId\n ? units.filter((unit) => (typeof unitsFilters?.unitTypeId === 'string' || typeof unitsFilters?.unitTypeId === 'number') ? \n unit.unitTypeId === unitsFilters?.unitTypeId\n : unitsFilters?.unitTypeId.includes(unit.unitTypeId)\n )\n : units\n ).map((unit) => {\n return {\n ...unit,\n id: unit.unitId,\n value: unit.unitId,\n label: unit.unitName,\n label_intl: unit.unitName\n };\n })\n }\n placeholder={\n placeholder ??\n useIntl().formatMessage({\n id: 'common.all'\n })\n }\n forceinitialvalue={forceinitialvalue ?? null}\n isClearable={isClearable}\n />\n \n );\n};\n\nUnitsDropdown.defaultProps = {};\n\nexport default UnitsDropdown;\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport _ from 'lodash';\nimport { useEffect } from 'react';\nimport Select, { components } from 'react-select';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport { FormGroup, InputGroup, InputGroupAddon, Label } from 'reactstrap';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst { Option, SingleValue, NoOptionsMessage } = components;\n//Filter option needed to work with formatted messages\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label &&\n _.deburr(candidate.data.label.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n _.deburr(candidate.data.label_intl.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\n\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {props.data.iconSVG && (\n \n )}\n {props.data.label}\n
\n
\n );\n};\n\nconst cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n});\n\nconst MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n};\n\nconst DropdownInput = (props) => {\n //const [touched, setTouched] = useState(false);\n const {\n input,\n meta: { error, touched, initial },\n hasPlaceholder = true,\n options = [],\n intl,\n isInModal = false,\n required,\n forceinitialvalue,\n additionalonchangefunction = (value) => null,\n isDisabled = false,\n menuIsOpen,\n onInputChange,\n ...inputProps\n } = props;\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n useEffect(() => {\n onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n input.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n \n {inputProps.label && (\n \n )}\n \n {props.prependcomponent}\n ({ ...styles, zIndex: 91000 }),\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused\n ? `1px solid ${primary} !important`\n : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n }}\n id={inputProps.id}\n components={{ Option: IconOption, SingleValue: IconSingleValue, MenuList }}\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={error && touched ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'}\n onChange={(event) => {\n onChangeFinal(event ? event.value : null);\n if (inputProps.onSelect) inputProps.onSelect(event);\n }}\n onBlur={() => {\n input.onBlur(input.value === '' ? null : input.value);\n }}\n options={options}\n filterOption={filterOption}\n isClearable={inputProps.isClearable}\n isDisabled={isDisabled}\n value={\n options.filter((option) => {\n const selectedValue = /^\\d+$/.test(input.value) ? parseInt(input.value) : input.value;\n const optionValue = /^\\d+$/.test(option.value)\n ? parseInt(option.value)\n : option.value;\n return optionValue === selectedValue;\n })[0] || null\n }\n menuIsOpen={menuIsOpen}\n defaultValue={\n inputProps.defaultValue ?? options.filter((opt) => opt.value == initial).length > 0\n ? options.filter((opt) => opt.value == initial)[0]\n : null\n }\n noOptionsMessage={() => appIntl().formatMessage({ id: 'common.noOptions' })}\n maxMenuHeight={250}\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n />\n {props.appendcomponent}\n \n {error && touched && (\n
\n {error}\n
\n )}\n
\n );\n};\n\nexport default DropdownInput;\n","// You can customize the template with the help of this file\r\nimport { env } from 'env';\r\n//Template config options\r\nconst themeConfig = {\r\n app: {\r\n appName: 'Webtrack',\r\n appLogoImage: require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logoName.png`).default,\r\n appLogo: require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logo.png`).default\r\n },\r\n layout: {\r\n isRTL: false,\r\n skin: 'bordered', // light, dark, bordered, semi-dark\r\n routerTransition: 'fadeIn', // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/\r\n type: 'vertical', // vertical, horizontal\r\n contentWidth: 'full', // full, boxed\r\n menu: {\r\n isHidden: false,\r\n isCollapsed: false,\r\n isPinner: false\r\n },\r\n navbar: {\r\n // ? For horizontal menu, navbar type will work for navMenu type\r\n type: 'sticky', // static , sticky , floating, hidden\r\n backgroundColor: 'white' // BS color options [primary, success, etc]\r\n },\r\n footer: {\r\n type: 'static' // static, sticky, hidden\r\n },\r\n customizer: env.REACT_APP_CUSTOMIZER === 'true' ? true : false,\r\n scrollTop: true // Enable scroll to top button\r\n }\r\n};\r\n\r\nexport default themeConfig;\r\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/user';\n\ninterface RolesPermissionsUserRequest {\n userId?: number;\n userName?: string;\n rolId?: number;\n permissionId?: string;\n permissions?: string[];\n}\n\ninterface ScreensRequest {\n userId?: number;\n roleId: number;\n}\n\ninterface UserDeleteRequest {\n userName: string;\n}\n\ninterface UserNameValidate {\n userName: string;\n userNameEdit: string;\n}\n\ninterface UserFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n}\n\ninterface UserFiltersStatus {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n userStatus?: number;\n}\n\ninterface UserRequest {\n userName: string;\n password: string;\n completeName: string;\n email: string;\n imageName: string;\n accessLevelId: number;\n utcZoneId: number;\n currencyId: number;\n metricSystemId: number;\n userStatus: number;\n operatorId: number;\n organizationId: number;\n divisionId: number;\n subdivisionId: number;\n enableLocationClustering: number;\n locationMapLabelAlwaysOn: number;\n activateUnitTrackMode: number;\n unitMapLabelAlwaysOn: number;\n useGoogleMaps: number;\n useBingMaps: number;\n useHereMaps: number;\n}\n\nexport const getUsersListService = (request: UserFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveUserService = (request: UserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteUserService = (request: UserDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const availabilityUserNameService = (request: UserNameValidate) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n return httpWebtrack.post(`${baseUrl}/availabilityUserName`, request);\n};\n\nexport const getRoles = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/roles`, request);\n};\n\nexport const getPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permissions',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/permissions`, request);\n};\n\nexport const getRolesAndPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rolesAndPermissions`, request);\n};\n\nexport const getPermissionGroups = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/permissionGroups`, request);\n};\n\nexport const getRolePermissionGroups = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rolePermissionGroups`, request);\n};\n\nexport const addRole = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.role',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addRole`, request);\n};\n\nexport const removeRole = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.role',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removeRole`, request);\n};\n\nexport const addPermission = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addPermission`, request);\n};\n\nexport const addPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addPermissions`, request);\n};\n\nexport const removePermission = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removePermission`, request);\n};\n\nexport const removePermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removePermissions`, request);\n};\n\nexport const getScreens = (request: ScreensRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.screen',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/screens`, request);\n};\n\nexport const getSuspendedUsersListService = (\n request: UserFiltersStatus,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDisabled`, request);\n};\n\nexport const updateUserStatus = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Edit',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateStatus`, request);\n};\n\nexport const getUsersListByFiltersService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getByFilters`, request);\n};\n\nexport const getUserByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n\nexport const getUserByAutoComplete = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUsersByAutoComplete`, request);\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport { isNullOrUndefined } from 'utility/Utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.VEHICLES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((vehicleId) => {\n newState[vehicleId] = {\n isSelected: false,\n ...state[vehicleId],\n ...entities[vehicleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((vehicleId) => {\n newState[vehicleId] = {\n isSelected: false,\n ...state[vehicleId],\n ...entities[vehicleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.VEHICLE_ADD_COMPLETED: {\n const { oldId, vehicle } = action.payload;\n const newState = omit(state, oldId);\n newState[vehicle.vehicleId] = {\n ...state[oldId],\n ...vehicle,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.VEHICLE_EDIT_COMPLETED: {\n const vehicle = action.payload;\n return {\n ...state,\n [vehicle.vehicleId]: {\n ...omit(state[vehicle.vehicleId], ['oldVehicle']),\n ...omit(vehicle, ['oldVehicle']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.VEHICLE_ADD_STARTED: {\n const vehicle = action.payload;\n const newState = { ...state };\n newState[vehicle.vehicleId] = {\n isSelected: false,\n ...vehicle,\n isConfirmed: false\n };\n return newState;\n }\n case types.VEHICLE_EDIT_STARTED: {\n const vehicle = action.payload;\n return {\n ...state,\n [vehicle.vehicleId]: {\n ...state[vehicle.vehicleId],\n oldVehicle: state[vehicle.vehicleId],\n ...vehicle,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.VEHICLE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.VEHICLE_EDIT_FAILED: {\n const { oldVehicle } = action.payload;\n return {\n ...state,\n [oldVehicle.vehicleId]: {\n ...omit(state[oldVehicle.vehicleId], ['oldVehicle']),\n ...oldVehicle,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.VEHICLE_REMOVE_COMPLETED: {\n const { vehicleId } = action.payload;\n return omit(state, vehicleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.VEHICLE_SELECTED: {\n const vehicleId = action.payload;\n const newState = {\n ...state,\n [vehicleId]: {\n ...state[vehicleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.VEHICLE_DESELECTED: {\n const vehicleId = action.payload;\n return {\n ...state,\n [vehicleId]: {\n ...state[vehicleId],\n isSelected: false\n }\n };\n }\n\n case types.VEHICLES_ALL_SELECTED: {\n const vehicleIds = action.payload;\n const newState = { ...state };\n if (vehicleIds.length == 0) {\n forEach(state, (vehicle: any, vehicleId) => {\n newState[vehicleId] = {\n ...vehicle,\n isSelected: true\n };\n });\n } else {\n vehicleIds.forEach((vehicleId) => {\n newState[vehicleId] = {\n ...state[vehicleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.VEHICLES_ALL_DESELECTED: {\n const vehicleIds = action.payload;\n const newState = { ...state };\n if (vehicleIds.length == 0) {\n forEach(state, (vehicle: any, vehicleId) => {\n newState[vehicleId] = {\n ...vehicle,\n isSelected: false\n };\n });\n } else {\n vehicleIds.forEach((vehicleId) => {\n newState[vehicleId] = {\n ...state[vehicleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.VEHICLES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.VEHICLE_ADD_COMPLETED: {\n const { oldId, vehicle } = action.payload;\n return state.map((vehicleId) => (vehicleId === oldId ? vehicle.vehicleId : vehicleId));\n }\n\n case types.VEHICLE_REMOVE_COMPLETED: {\n const { vehicleId } = action.payload;\n return state.filter((vehicleIdState) => vehicleIdState !== vehicleId);\n }\n\n //CASE ADD STARTED\n case types.VEHICLE_ADD_STARTED: {\n const vehicle = action.payload;\n return [...state, vehicle.vehicleId];\n }\n\n //CASE ADD FAILED\n case types.VEHICLE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((vehicleIdState) => vehicleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLES_FETCH_STARTED: {\n return true;\n }\n case types.VEHICLES_FETCH_COMPLETED:\n case types.VEHICLES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED:\n case types.VEHICLES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_ADD_STARTED: {\n return true;\n }\n case types.VEHICLE_ADD_COMPLETED:\n case types.VEHICLE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_EDIT_STARTED: {\n return true;\n }\n case types.VEHICLE_EDIT_COMPLETED:\n case types.VEHICLE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_REMOVE_STARTED: {\n return true;\n }\n case types.VEHICLE_REMOVE_COMPLETED:\n case types.VEHICLE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLES_FETCH_STARTED:\n case types.VEHICLES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLES_PARTIAL_FETCH_STARTED:\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_ADD_STARTED:\n case types.VEHICLE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_EDIT_STARTED:\n case types.VEHICLE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_REMOVE_STARTED:\n case types.VEHICLE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.VEHICLE_LICENSE_PLATE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.VEHICLE_LICENSE_PLATE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst vehicles = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n validCode\n});\n\nexport default vehicles;\n\n//Own state\nexport const getOwnState = (state) => state.vehicles;\n\n//Information\nexport const getVehicle = (state, vehicleId) => getOwnState(state).byId[vehicleId];\nexport const getVehiclesList = (state) =>\n getOwnState(state)\n .order.map((id) => getVehicle(state, id))\n .filter((vehicle) => vehicle.vehicleStatus > 0);\nexport const getVehiclesListAll = (state) =>\n getOwnState(state).order.map((id) => getVehicle(state, id));\nexport const getVehiclesListByMembership = (state, membership) =>\n getVehiclesList(state).filter(\n (vehicle) =>\n membership &&\n (!membership.operatorId || membership.operatorId === vehicle.operatorId) &&\n (!membership.organizationId || membership.organizationId === vehicle.organizationId) &&\n (!membership.divisionId || membership.divisionId === vehicle.divisionId || isNullOrUndefined(vehicle.divisionId)) &&\n (!membership.subdivisionId || membership.subdivisionId === vehicle.subdivisionId || isNullOrUndefined(vehicle.subdivisionId))\n );\nexport const isLicenseValid = (state) => getOwnState(state).validCode;\n\nexport const getSelectedVehicles = (state) => {\n const selectedVehicles = getVehiclesList(state).filter((vehicle) => vehicle.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedVehicles.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedVehicles.length > 0) return selectedVehicles;\n};\n\nexport const getSelectedVehicle = (state) => {\n const selectedVehicles = getVehiclesList(state).filter((vehicle) => vehicle.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedVehicles.length === 1) return selectedVehicles[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListVehicles = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListVehicles = (state) => getOwnState(state).isFetchingList;\nexport const isAddingVehicle = (state) => getOwnState(state).isAdding;\nexport const isEditingVehicle = (state) => getOwnState(state).isEditing;\nexport const isRemovingVehicle = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListVehiclesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListVehiclesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingVehicleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingVehicleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingVehicleErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansExecutions';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport * as unitSelectors from '../../../Units/reducers';\nimport locations, * as workplansExecutionsLocationsSelectors from '../workplansExecutionLocations';\nimport permissions from '../../permissions';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n const { workplanExecution } = action.payload;\n const newState = { ...state };\n\n newState[workplanExecution.visitId] = {\n isSelected: false,\n ...state[workplanExecution.visitId],\n ...workplanExecution,\n isConfirmed: true\n };\n return newState;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_COMPLETED: {\n const { visitId } = action.payload;\n return omit(state, visitId);\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED: {\n const { visitId } = action.payload;\n const newState = { ...state };\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n executionStatus: 5,\n isConfirmed: true\n };\n return newState;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED: {\n const { visitId, unitId } = action.payload;\n const newState = { ...state };\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n unitId,\n isConfirmed: true\n };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n const { workplanExecution } = action.payload;\n return uniq([...state, workplanExecution.visitId]);\n }\n case types.WORKPLANS_EXECUTION_CANCEL_COMPLETED: {\n const { visitId } = action.payload;\n return state.filter((id) => id !== visitId);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst executionStatus = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { executionStatus } = action.payload;\n const newState = { ...executionStatus };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst geographicStatus = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { geographicStatus } = action.payload;\n const newState = { ...geographicStatus };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingExecutions = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTIONS_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED:\n case types.WORKPLANS_EXECUTIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_EXECUTION_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED:\n case types.WORKPLAN_EXECUTION_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCancelingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_COMPLETED:\n case types.WORKPLANS_EXECUTION_CANCEL_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFinalizingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED:\n case types.WORKPLANS_EXECUTION_FINALIZE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isManualTransitExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED:\n case types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isChangingExecutionUnit = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED:\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingExecutions = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_EXECUTIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_EXECUTIONS_FETCH_STARTED:\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_EXECUTION_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_EXECUTION_FETCH_STARTED:\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCancelingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_STARTED:\n case types.WORKPLANS_EXECUTION_CANCEL_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFinalizingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_STARTED:\n case types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorChangingExecutionUnit = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED:\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansExecutions = combineReducers({\n byId,\n order,\n indicators,\n executionStatus,\n geographicStatus,\n locations,\n isFetchingExecutions,\n isFetchingExecution,\n isCancelingExecution,\n isFinalizingExecution,\n isManualTransitExecution,\n isChangingExecutionUnit,\n errorFetchingExecutions,\n errorFetchingExecution,\n errorCancelingExecution,\n errorFinalizingExecution,\n errorChangingExecutionUnit\n});\n\nexport default workplansExecutions;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansExecutions;\n\n//Information\nexport const getWorkplansExecution = (state, visitId) => {\n const intl = appIntl();\n const workplanExecution = getOwnState(state).byId[visitId];\n if (workplanExecution) {\n const workplansExecutionsLocations =\n workplansExecutionsLocationsSelectors.getLocationsListByVisit(\n state,\n workplanExecution.visitId\n );\n const workplansExecutionsGeofences = [\n ...geofenceSelectors\n .getGeofencesList(state)\n .filter((geofence) =>\n [\n workplanExecution.originGeofenceId,\n workplanExecution.workGeofenceId,\n workplanExecution.destinationGeofenceId\n ].includes(geofence.geofenceId)\n ),\n workplanExecution?.workGeofenceArea\n ? {\n geofenceId: 'autogeneratedGeofence',\n shape: 'P',\n geofenceName: intl.formatMessage({ id: 'workplans.autogeneratedGeofence' }),\n geofenceWktString: workplanExecution?.workGeofenceArea\n }\n : undefined\n ].filter((geofence) => geofence);\n const originGeofence =\n workplansExecutionsGeofences.filter(\n (geofence) => geofence.geofenceId === workplanExecution?.originGeofenceId\n )[0] ?? undefined;\n const workGeofence =\n workplansExecutionsGeofences.filter((geofence) =>\n [workplanExecution?.workGeofenceId, 'autogeneratedGeofence'].includes(geofence.geofenceId)\n )[0] ?? undefined;\n const destinationGeofence =\n workplansExecutionsGeofences.filter(\n (geofence) => geofence.geofenceId === workplanExecution?.destinationGeofenceId\n )[0] ?? undefined;\n\n var executionStatusLabel = '';\n var executionStatusLabelInfo = '';\n switch (workplanExecution.executionStatus) {\n case 0:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.programmed'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.programmedInfo'\n });\n break;\n case 1:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.onTransit'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.onTransitInfo'\n });\n break;\n case 2:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.onOrigin'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.onOriginInfo'\n });\n break;\n case 3:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.onDestination'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.onDestinationInfo'\n });\n break;\n case 4:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.onLocation'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.onLocationInfo'\n });\n break;\n case 5:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.complete'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.completeInfo'\n });\n break;\n case 7:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.dht'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.dhtInfo'\n });\n break;\n case 8:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.ddt'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.ddtInfo'\n });\n break;\n case 9:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.fat'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.fatInfo'\n });\n break;\n case 10:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.dhd'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.dhdInfo'\n });\n break;\n case 11:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.eao'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.eaoInfo'\n });\n break;\n case 12:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.incomplete'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.incompleteInfo'\n });\n break;\n default:\n executionStatusLabel = '';\n executionStatusLabelInfo = '';\n break;\n }\n return {\n ...workplanExecution,\n progress: (workplanExecution.visited / (workplanExecution.total || 1)) * 100,\n progressLabel:\n Math.round((workplanExecution.visited / (workplanExecution.total || 1)) * 100) + '%',\n pending: workplanExecution.total - workplanExecution.visited,\n sequenceCompliance:\n parseInt(workplanExecution.sequenceCountValid || 0) +\n ' | ' +\n parseInt(workplanExecution.sequenceCountInvalid || 0) +\n ' | ' +\n parseInt(workplanExecution.sequenceCountPending || 0),\n executionStatusLabel,\n executionStatusLabelInfo,\n originGeofenceName: originGeofence?.geofenceName ?? '',\n workGeofenceId: workGeofence?.geofenceId ?? null,\n workGeofenceName: workGeofence?.geofenceName ?? '',\n destinationGeofenceName: destinationGeofence?.geofenceName ?? '',\n locations: workplansExecutionsLocations,\n geofences: workplansExecutionsGeofences\n };\n } else return undefined;\n};\nexport const getWorkplansExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getWorkplansExecution(state, id));\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n\n const total =\n indicators.totalComplete + indicators.totalIncomplete > 0\n ? indicators.totalComplete + indicators.totalIncomplete\n : 1;\n const finalIndicators = {\n ...indicators,\n executionPercent: (indicators.totalComplete / total) * 100\n };\n return [\n {\n title: intl.formatMessage({\n id: 'workplans.plans'\n }),\n permissions: [permissions.viewPlansIndicator],\n bigIndicator: finalIndicators.totalAssignedPlans || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.scheduledWorkplans'\n }) +\n ': ' +\n parseInt(finalIndicators.totalScheduledPlans || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.activeWorkplans'\n }) +\n ': ' +\n parseInt(finalIndicators.totalActivePlans || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.completeWorkplans'\n }) +\n ': ' +\n parseInt(finalIndicators.totalCompletePlans || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.incompleteWorkplans'\n }) +\n ': ' +\n parseInt(finalIndicators.totalIncompletePlans || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.units'\n }) +\n ': ' +\n parseInt(finalIndicators.totalUnits || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.locations'\n }),\n permissions: [permissions.viewLocationsIndicator],\n bigIndicator: finalIndicators.totalLocations || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.pending'\n }) +\n ': ' +\n parseInt(finalIndicators.totalIncomplete || 0)\n },\n {\n popoverTitle: intl.formatMessage({\n id: 'workplans.sequenceCompliance'\n }),\n popoverBody: intl.formatMessage({\n id: 'workplans.complianceYesNotPend'\n }),\n info:\n intl.formatMessage({\n id: 'workplans.sequence'\n }) +\n ': ' +\n parseInt(finalIndicators.sequenceCountValid || 0) +\n ' | ' +\n parseInt(finalIndicators.sequenceCountInvalid || 0) +\n ' | ' +\n parseInt(finalIndicators.sequenceCountPending || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.withoutSequence'\n }) +\n ': ' +\n (finalIndicators.totalLocations -\n (finalIndicators.sequenceCountValid +\n finalIndicators.sequenceCountInvalid +\n finalIndicators.sequenceCountPending)) || 0\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.confirmed'\n }) +\n ': ' +\n parseInt(finalIndicators.totalConfirmed || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.visits'\n }),\n permissions: [permissions.viewVisitsIndicator],\n bigIndicator: finalIndicators.totalVisited || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.onTime'\n }) +\n ': ' +\n parseInt(finalIndicators.totalNormal || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.early'\n }) +\n ': ' +\n parseInt(finalIndicators.totalEarly || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.late'\n }) +\n ': ' +\n parseInt(finalIndicators.totalLate || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.repeated'\n }) +\n ': ' +\n parseInt(finalIndicators.totalRepeated || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.visitsPercent'\n }),\n permissions: [permissions.viewExecutionIndicator],\n bigIndicator: Math.round(finalIndicators.executionPercent || 0) + '%'\n }\n ];\n};\nexport const getDurationStatus = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n var labels: any[] = [];\n var series: any[] = [];\n if (\n indicators.totalNormalDuration > 0 ||\n indicators.totalShortDuration > 0 ||\n indicators.totalLongDuration > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'workplans.normal'\n }),\n intl.formatMessage({\n id: 'workplans.toShortPermanence'\n }),\n intl.formatMessage({\n id: 'workplans.toLongPermanence'\n })\n ];\n series = [\n indicators.totalNormalDuration,\n indicators.totalShortDuration,\n indicators.totalLongDuration\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.effectivenessInPermanence'\n }),\n permissions: [permissions.viewPermanenceEffectivenessGraph],\n labels: labels,\n series: series,\n duration: ['N', 'C', 'L']\n };\n};\nexport const getExecutionStatus = (state) => {\n const intl = appIntl();\n const executionStatus = getOwnState(state).executionStatus;\n var labels: any[] = [];\n var series: any[] = [];\n if (\n executionStatus.complete > 0 ||\n executionStatus.incomplete > 0 ||\n executionStatus.inAction > 0 ||\n executionStatus.scheduled > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'workplans.complete'\n }),\n intl.formatMessage({\n id: 'workplans.incomplete'\n }),\n intl.formatMessage({\n id: 'workplans.inAction'\n }),\n intl.formatMessage({\n id: 'workplans.scheduledWorkplans'\n })\n ];\n series = [\n executionStatus.complete,\n executionStatus.incomplete,\n executionStatus.inAction,\n executionStatus.scheduled\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.executionStatus'\n }),\n labels: labels,\n values: ['T', 'I', 'A', 'P'],\n series: series\n };\n};\nexport const getGeographicStatus = (state) => {\n const intl = appIntl();\n const geographicStatus = getOwnState(state).geographicStatus;\n const colorsGeographicStatus = [\n '#490002',\n '#44ABFF',\n '#FFC737',\n '#005BE0',\n '#7669E8',\n '#FF4459',\n '#1F8836',\n '#00D57E',\n '#FF7B7B'\n ];\n return {\n title: intl.formatMessage({\n id: 'workplans.geographicStatus'\n }),\n labels: Object.keys(geographicStatus)\n .filter((label) => geographicStatus[label] > 0)\n .map((label) =>\n intl.formatMessage({\n id: 'workplans.' + label\n })\n ),\n values: Object.keys(geographicStatus)\n .filter((label) => geographicStatus[label] > 0)\n .map((label) => 'workplans.' + label),\n colors: Object.keys(geographicStatus)\n .map((label, i) => {\n if (geographicStatus[label] > 0) return colorsGeographicStatus[i];\n })\n .filter((color) => color),\n series: Object.values(geographicStatus).filter((value: any) => value > 0)\n };\n};\n//Status of sagas\nexport const isFetchingWorkplansExecutions = (state) => getOwnState(state).isFetchingExecutions;\nexport const isFetchingWorkplanExecution = (state) => getOwnState(state).isFetchingExecution;\nexport const isCancelingWorkplansExecution = (state) => getOwnState(state).isCancelingExecution;\nexport const isFinalizingWorkplansExecution = (state) => getOwnState(state).isFinalizingExecution;\nexport const isManualTransitWorkplansExecution = (state) =>\n getOwnState(state).isManualTransitExecution;\nexport const isChangingWorkplansExecutionUnit = (state) =>\n getOwnState(state).isChangingExecutionUnit;\n\n//Errors\nexport const getFetchingWorkplansExecutionsErrors = (state) =>\n getOwnState(state).errorFetchingExecutions;\nexport const getFetchingWorkplanExecutionErrors = (state) =>\n getOwnState(state).errorFetchingExecution;\nexport const getCancelingWorkplansExecutionErrors = (state) =>\n getOwnState(state).errorCancelingExecution;\nexport const getFinalizingWorkplansExecutionErrors = (state) =>\n getOwnState(state).errorFinalizingExecution;\nexport const getChangingWorkplansExecutionUnitErrors = (state) =>\n getOwnState(state).errorChangingExecutionUnit;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansVisits';\nimport * as unitSelectors from '../../../Units/reducers';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_VISITS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_VISITS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst allById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst allOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingVisits = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_VISITS_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_VISITS_FETCH_COMPLETED:\n case types.WORKPLANS_VISITS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingAllVisits = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_ALL_VISITS_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED:\n case types.WORKPLANS_ALL_VISITS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingVisits = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_VISITS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_VISITS_FETCH_STARTED:\n case types.WORKPLANS_VISITS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAllVisits = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_ALL_VISITS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_ALL_VISITS_FETCH_STARTED:\n case types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansVisits = combineReducers({\n byId,\n order,\n allById,\n allOrder,\n isFetchingVisits,\n isFetchingAllVisits,\n errorFetchingVisits,\n errorFetchingAllVisits\n});\n\nexport default workplansVisits;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansVisits;\n\n//Information\nexport const getWorkplansVisit = (state, visitId) => {\n const workplanVisit = getOwnState(state).byId[visitId];\n if (workplanVisit) {\n return workplanVisit;\n } else return undefined;\n};\nexport const getWorkplansVisitsList = (state) =>\n getOwnState(state).order.map((id) => getWorkplansVisit(state, id));\n\nexport const getWorkplansAllVisit = (state, visitId) => {\n const workplanVisit = getOwnState(state).allById[visitId];\n if (workplanVisit) {\n return workplanVisit;\n } else return undefined;\n};\nexport const getWorkplansAllVisitsList = (state) =>\n getOwnState(state).allOrder.map((id) => getWorkplansAllVisit(state, id));\n\nexport const getWorkplansVisitsListByDuration = (state, duration) =>\n getWorkplansVisitsList(state).filter((visit) => {\n return visit.duration === duration && ['V', 'A', 'T'].includes(visit.visitStatus);\n });\n\nexport const getWorkplanAllVisitsById = (state, visitId) =>\n getWorkplansAllVisitsList(state).filter((visit) => visit.visitId === visitId);\n\nexport const getWorkplansAllVisitsListByFilters = (state, visitId, locationId, visitStatusArray) =>\n getWorkplansAllVisitsList(state).filter(\n (visit) =>\n visit.visitId === visitId &&\n visit.locationId === locationId &&\n visitStatusArray.includes(visit.visitStatus)\n );\n\n//Status of sagas\nexport const isFetchingWorkplansVisits = (state) => getOwnState(state).isFetchingVisits;\nexport const isFetchingWorkplansAllVisits = (state) => getOwnState(state).isFetchingAllVisits;\n\n//Errors\nexport const getFetchingWorkplansVisitsErrors = (state) => getOwnState(state).errorFetchingVisits;\nexport const getFetchingWorkplansAllVisitsErrors = (state) =>\n getOwnState(state).errorFetchingAllVisits;\n","import { combineReducers } from 'redux';\n\nimport { orderBy, union } from 'lodash';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansReport';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport * as unitSelectors from '../../../Units/reducers';\nimport permissions from '../../permissions';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { unitsEntities, unitsOrder } = action.payload;\n const newState = { ...state };\n unitsOrder.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n ...state[unitId],\n ...unitsEntities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { unitsOrder } = action.payload;\n return union(unitsOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst locationsById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { locationsEntities, locationsOrder } = action.payload;\n const newState = { ...state };\n locationsOrder.forEach((locationId) => {\n newState[locationId] = {\n isSelected: false,\n ...state[locationId],\n ...locationsEntities[locationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst locationsOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { locationsOrder } = action.payload;\n return union(locationsOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingReport = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_REPORT_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_REPORT_FETCH_COMPLETED:\n case types.WORKPLANS_REPORT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingReport = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_REPORT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_REPORT_FETCH_STARTED:\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansReport = combineReducers({\n byId,\n order,\n indicators,\n unitsById,\n unitsOrder,\n locationsById,\n locationsOrder,\n isFetchingReport,\n errorFetchingReport\n});\n\nexport default workplansReport;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansReport;\n\n//Information\nexport const getWorkplansExecution = (state, visitId) => {\n const intl = appIntl();\n const workplanExecution = getOwnState(state).byId[visitId];\n if (workplanExecution) {\n const originGeofence = workplanExecution.originGeofenceId\n ? geofenceSelectors.getGeofence(state, workplanExecution.originGeofenceId)\n : undefined;\n const workGeofence = workplanExecution.workGeofenceId\n ? geofenceSelectors.getGeofence(state, workplanExecution.workGeofenceId)\n : undefined;\n const destinationGeofence = workplanExecution.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, workplanExecution.destinationGeofenceId)\n : undefined;\n var visitStatusLabel = '';\n switch (workplanExecution.visitStatus) {\n case 'I':\n visitStatusLabel = intl.formatMessage({\n id: 'workplans.incomplete'\n });\n break;\n case 'T':\n visitStatusLabel = intl.formatMessage({\n id: 'workplans.complete'\n });\n break;\n case 'A':\n visitStatusLabel = intl.formatMessage({\n id: 'workplans.active'\n });\n break;\n default:\n visitStatusLabel = '';\n break;\n }\n return {\n ...workplanExecution,\n progress: (workplanExecution.visited / (workplanExecution.assigned || 1)) * 100,\n progressLabel:\n Math.round((workplanExecution.visited / (workplanExecution.assigned || 1)) * 100) + '%',\n sequenceCompliance:\n parseInt(workplanExecution.sequenceCountValid || 0) +\n ' | ' +\n parseInt(workplanExecution.sequenceCountInvalid || 0) +\n ' | ' +\n parseInt(workplanExecution.sequenceCountPending || 0),\n visitStatusLabel,\n originGeofenceName: originGeofence ? originGeofence.geofenceName : '',\n workGeofenceName: workGeofence\n ? workGeofence.geofenceName\n : workplanExecution?.workGeofenceArea\n ? intl.formatMessage({ id: 'workplans.autogeneratedGeofence' })\n : '',\n destinationGeofenceName: destinationGeofence ? destinationGeofence.geofenceName : ''\n };\n } else return undefined;\n};\nexport const getWorkplansExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getWorkplansExecution(state, id));\nexport const getWorkplansUnit = (state, visitId) => {\n const unit = getOwnState(state).unitsById[visitId];\n return {\n ...unit,\n progress: (unit.totalComplete / (unit.totalComplete + unit.totalIncomplete || 1)) * 100,\n progressLabel:\n Math.round((unit.totalComplete / (unit.totalComplete + unit.totalIncomplete || 1)) * 100) +\n '%'\n };\n};\nexport const getWorkplansUnitsList = (state) =>\n orderBy(\n getOwnState(state).unitsOrder.map((id) => getWorkplansUnit(state, id)),\n 'total',\n 'desc'\n );\nexport const getWorkplansLocation = (state, visitId) => getOwnState(state).locationsById[visitId];\nexport const getWorkplansLocationsList = (state) =>\n orderBy(\n getOwnState(state).locationsOrder.map((id) => getWorkplansLocation(state, id)),\n 'total',\n 'desc'\n );\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n const total =\n indicators.totalComplete + indicators.totalIncomplete > 0\n ? indicators.totalComplete + indicators.totalIncomplete\n : 1;\n const finalIndicators = {\n ...indicators,\n executionPercent: (indicators.totalComplete / total) * 100\n };\n return [\n {\n title: intl.formatMessage({\n id: 'workplans.assignedWorkplans'\n }),\n permissions: [permissions.viewPlansIndicator],\n bigIndicator: finalIndicators.totalAssignedPlans || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.units'\n }) +\n ': ' +\n parseInt(finalIndicators.totalUnits || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.locations'\n }),\n permissions: [permissions.viewLocationsIndicator],\n bigIndicator: finalIndicators.totalLocations || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.notVisited'\n }) +\n ': ' +\n parseInt(finalIndicators.totalIncomplete || 0)\n },\n {\n popoverTitle: intl.formatMessage({\n id: 'workplans.sequenceCompliance'\n }),\n popoverBody: intl.formatMessage({\n id: 'workplans.complianceYesNotPend'\n }),\n info:\n intl.formatMessage({\n id: 'workplans.sequence'\n }) +\n ': ' +\n parseInt(finalIndicators.sequenceCountValid || 0) +\n ' | ' +\n parseInt(finalIndicators.sequenceCountInvalid || 0) +\n ' | ' +\n parseInt(finalIndicators.sequenceCountPending || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.withoutSequence'\n }) +\n ': ' +\n (finalIndicators.totalLocations -\n (finalIndicators.sequenceCountValid +\n finalIndicators.sequenceCountInvalid +\n finalIndicators.sequenceCountPending)) || 0\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.confirmed'\n }) +\n ': ' +\n finalIndicators.totalConfirmed || 0\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.visits'\n }),\n permissions: [permissions.viewVisitsIndicator],\n bigIndicator: finalIndicators.totalVisited || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.onTime'\n }) +\n ': ' +\n parseInt(finalIndicators.totalNormal || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.early'\n }) +\n ': ' +\n parseInt(finalIndicators.totalEarly || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.late'\n }) +\n ': ' +\n parseInt(finalIndicators.totalLate || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.repeated'\n }) +\n ': ' +\n parseInt(finalIndicators.totalRepeated || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.percentComplete'\n }),\n permissions: [permissions.viewExecutionIndicator],\n bigIndicator: Math.round(finalIndicators.executionPercent || 0) + '%'\n }\n ];\n};\nexport const getEffectivenessStatus = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n var labels: any[] = [];\n var series: any[] = [];\n if (indicators.totalComplete > 0 || indicators.totalIncomplete > 0 || indicators.totalConfirmed) {\n labels = [\n intl.formatMessage({\n id: 'workplans.visited'\n }),\n intl.formatMessage({\n id: 'workplans.notVisited'\n }),\n intl.formatMessage({\n id: 'workplans.confirmed'\n })\n ];\n series = [\n indicators.totalComplete ?? 0,\n indicators.totalIncomplete ?? 0,\n indicators.totalConfirmed ?? 0\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.effectiveness'\n }),\n labels: labels,\n series: series\n };\n};\nexport const getArrivalStatus = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n var labels: any[] = [];\n var series: any[] = [];\n if (indicators.totalNormal > 0 || indicators.totalEarly > 0 || indicators.totalLate > 0) {\n labels = [\n intl.formatMessage({\n id: 'workplans.onTime'\n }),\n intl.formatMessage({\n id: 'workplans.early'\n }),\n intl.formatMessage({\n id: 'workplans.late'\n })\n ];\n series = [indicators.totalNormal, indicators.totalEarly, indicators.totalLate];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.performanceOnArrival'\n }),\n permissions: [permissions.viewArrivalEffectivnessGraph],\n labels: labels,\n series: series\n };\n};\nexport const getDurationStatus = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n var labels: any[] = [];\n var series: any[] = [];\n if (\n indicators.totalNormalDuration > 0 ||\n indicators.totalShortDuration > 0 ||\n indicators.totalLongDuration > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'workplans.normal'\n }),\n intl.formatMessage({\n id: 'workplans.toShortPermanence'\n }),\n intl.formatMessage({\n id: 'workplans.toLongPermanence'\n })\n ];\n series = [\n indicators.totalNormalDuration,\n indicators.totalShortDuration,\n indicators.totalLongDuration\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.performanceOnPermanence'\n }),\n permissions: [permissions.viewPermanenceEffectivenessGraph],\n labels: labels,\n series: series\n };\n};\nexport const getSlidingPaneInformation = (state, chartId) => {\n const intl = appIntl();\n const colors = ['#2ED573', '#1E90FF', '#FFA502', '#FF4757'];\n const workplansUnits = getWorkplansUnitsList(state);\n const workplansLocations = getWorkplansLocationsList(state);\n const total = workplansUnits.reduce((total, obj) => obj.total + total, 0);\n return {\n indicators: [\n {\n title: intl.formatMessage({\n id: 'workplans.total'\n }),\n size: '4',\n bigIndicator: total || 0\n },\n {\n title: intl.formatMessage({\n id:\n chartId === 'effectivenessStatusChart'\n ? 'workplans.visited'\n : chartId === 'arrivalStatusChart'\n ? 'workplans.onTime'\n : 'workplans.normal'\n }),\n size: '4',\n bigIndicator:\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'effectivenessStatusChart'\n ? obj.totalComplete\n : chartId === 'arrivalStatusChart'\n ? obj.totalNormal\n : obj.totalNormalDuration) + total,\n 0\n ) || 0,\n details: [\n {\n info:\n Math.round(\n (parseInt(\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'effectivenessStatusChart'\n ? obj.totalComplete\n : chartId === 'arrivalStatusChart'\n ? obj.totalNormal\n : obj.totalNormalDuration) + total,\n 0\n ) || 0\n ) /\n (total || 1)) *\n 100\n ) + '%'\n }\n ]\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n title: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart' ? 'workplans.early' : 'workplans.toShortPermanence'\n }),\n size: '4',\n bigIndicator:\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'arrivalStatusChart' ? obj.totalEarly : obj.totalShortDuration) +\n total,\n 0\n ) || 0,\n details: [\n {\n info:\n Math.round(\n (parseInt(\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'arrivalStatusChart'\n ? obj.totalEarly\n : obj.totalShortDuration) + total,\n 0\n ) || 0\n ) /\n (total || 1)) *\n 100\n ) + '%'\n }\n ]\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n title: intl.formatMessage({\n id: chartId === 'arrivalStatusChart' ? 'workplans.late' : 'workplans.toLongPermanence'\n }),\n size: '4',\n bigIndicator:\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'arrivalStatusChart' ? obj.totalLate : obj.totalLongDuration) +\n total,\n 0\n ) || 0,\n details: [\n {\n info:\n Math.round(\n (parseInt(\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'arrivalStatusChart'\n ? obj.totalLate\n : obj.totalLongDuration) + total,\n 0\n ) || 0\n ) /\n (total || 1)) *\n 100\n ) + '%'\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.notVisited'\n }),\n size: '4',\n bigIndicator:\n workplansUnits.reduce(\n (totalIncomplete, obj) => obj.totalIncomplete + totalIncomplete,\n 0\n ) || 0,\n details: [\n {\n info:\n Math.round(\n (parseInt(\n workplansUnits.reduce(\n (totalIncomplete, obj) => obj.totalIncomplete + totalIncomplete,\n 0\n ) || 0\n ) /\n (total || 1)) *\n 100\n ) + '%'\n }\n ]\n }\n ].filter((indicator) => indicator),\n charts: [\n {\n idChart: 'slidingPaneUnitsChart',\n buttonChartText: 'workplans.units',\n chartType: 'bar',\n colors: chartId === 'effectivenessStatusChart' ? [colors[0], colors[3]] : colors,\n title: intl.formatMessage({\n id: 'workplans.graphGroupedByUnits'\n }),\n horizontal: true,\n stacked: true,\n labels: workplansUnits.map((unit) => unit.unitName),\n series: [\n {\n name: intl.formatMessage({\n id:\n chartId === 'effectivenessStatusChart'\n ? 'workplans.visited'\n : chartId === 'arrivalStatusChart'\n ? 'workplans.onTime'\n : 'workplans.normal'\n }),\n data: workplansUnits.map((unit) =>\n chartId === 'effectivenessStatusChart'\n ? unit.totalComplete\n : chartId === 'arrivalStatusChart'\n ? unit.totalNormal\n : unit.totalNormalDuration\n )\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n name: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart'\n ? 'workplans.early'\n : 'workplans.toShortPermanence'\n }),\n data: workplansUnits.map((unit) =>\n chartId === 'arrivalStatusChart' ? unit.totalEarly : unit.totalShortDuration\n )\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n name: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart'\n ? 'workplans.late'\n : 'workplans.toLongPermanence'\n }),\n data: workplansUnits.map((unit) =>\n chartId === 'arrivalStatusChart' ? unit.totalLate : unit.totalLongDuration\n )\n },\n {\n name: intl.formatMessage({\n id: 'workplans.notVisited'\n }),\n data: workplansUnits.map((unit) => unit.totalIncomplete)\n }\n ].filter((serie) => serie)\n },\n {\n idChart: 'slidingPaneLocationsChart',\n buttonChartText: 'workplans.locations',\n chartType: 'bar',\n colors: [colors[0], colors[3]],\n title: intl.formatMessage({\n id: 'workplans.graphGroupedByLocations'\n }),\n horizontal: true,\n stacked: true,\n labels: workplansLocations.map((location) => location.locationName),\n series: [\n {\n name: intl.formatMessage({\n id:\n chartId === 'effectivenessStatusChart'\n ? 'workplans.visited'\n : chartId === 'arrivalStatusChart'\n ? 'workplans.onTime'\n : 'workplans.normal'\n }),\n data: workplansLocations.map((location) =>\n chartId === 'effectivenessStatusChart'\n ? location.totalComplete\n : chartId === 'arrivalStatusChart'\n ? location.totalNormal\n : location.totalNormalDuration\n )\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n name: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart'\n ? 'workplans.early'\n : 'workplans.toShortPermanence'\n }),\n data: workplansLocations.map((location) =>\n chartId === 'arrivalStatusChart'\n ? location.totalEarly\n : location.totalShortDuration\n )\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n name: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart'\n ? 'workplans.late'\n : 'workplans.toLongPermanence'\n }),\n data: workplansLocations.map((location) =>\n chartId === 'arrivalStatusChart' ? location.totalLate : location.totalLongDuration\n )\n },\n {\n name: intl.formatMessage({\n id: 'workplans.notVisited'\n }),\n data: workplansLocations.map((location) => location.totalIncomplete)\n }\n ].filter((serie) => serie)\n }\n ]\n };\n};\n\n//Status of sagas\nexport const isFetchingWorkplansReport = (state) => getOwnState(state).isFetchingReport;\n\n//Errors\nexport const getFetchingWorkplansReportErrors = (state) => getOwnState(state).errorFetchingReport;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplans';\nimport workplansExecutions, * as workplansSelectorsExecutions from '../workplansExecutions';\nimport workplansExecutionLocations, * as workplansSelectorsExecutionLocations from '../workplansExecutionLocations';\nimport workplansComments from '../workplansComments';\nimport workplansAssignments from '../workplansAssignments';\nimport workplansVisits, * as workplansSelectorsVisits from '../workplansVisits';\nimport workplansReport, * as workplansSelectorsReport from '../workplansReport';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport persistReducer from 'redux-persist/es/persistReducer';\nimport autoMergeLevel2 from 'redux-persist/es/stateReconciler/autoMergeLevel2';\nimport localforage from 'localforage';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, LOCATIONSFETCH, ADD AND EDIT\n case types.WORKPLANS_FETCH_COMPLETED:\n case types.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((workplanId) => {\n newState[workplanId] = {\n isSelected: false,\n ...state[workplanId],\n ...entities[workplanId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.WORKPLAN_LOCATIONS_FETCH_COMPLETED: {\n const { workplanId, locations } = action.payload;\n const newState = {\n ...state,\n [workplanId]: {\n ...state[workplanId],\n locations\n }\n };\n return newState;\n }\n\n case types.WORKPLAN_ADD_COMPLETED: {\n const { oldId, workplan } = action.payload;\n const newState = omit(state, oldId);\n newState[workplan.workplanId] = {\n ...state[oldId],\n ...workplan,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.WORKPLAN_EDIT_COMPLETED: {\n const workplan = action.payload;\n return {\n ...state,\n [workplan.workplanId]: {\n ...omit(state[workplan.workplanId], ['oldWorkplan']),\n ...omit(workplan, ['oldWorkplan']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.WORKPLAN_ADD_STARTED: {\n const workplan = action.payload;\n const newState = { ...state };\n newState[workplan.workplanId] = {\n isSelected: false,\n ...workplan,\n isConfirmed: false\n };\n return newState;\n }\n case types.WORKPLAN_EDIT_STARTED: {\n const workplan = action.payload;\n return {\n ...state,\n [workplan.workplanId]: {\n ...state[workplan.workplanId],\n oldWorkplan: state[workplan.workplanId],\n ...workplan,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.WORKPLAN_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.WORKPLAN_EDIT_FAILED: {\n const { oldWorkplan } = action.payload;\n return {\n ...state,\n [oldWorkplan.workplanId]: {\n ...omit(state[oldWorkplan.workplanId], ['oldWorkplan']),\n ...oldWorkplan,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.WORKPLAN_REMOVE_COMPLETED: {\n const { workplanId } = action.payload;\n return omit(state, workplanId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.WORKPLAN_SELECTED: {\n const workplanId = action.payload;\n const newState = {\n ...state,\n [workplanId]: {\n ...state[workplanId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.WORKPLAN_DESELECTED: {\n const workplanId = action.payload;\n return {\n ...state,\n [workplanId]: {\n ...state[workplanId],\n isSelected: false\n }\n };\n }\n\n case types.WORKPLANS_ALL_SELECTED: {\n const workplanIds = action.payload;\n const newState = { ...state };\n if (workplanIds.length == 0) {\n forEach(state, (workplan: any, workplanId) => {\n newState[workplanId] = {\n ...workplan,\n isSelected: true\n };\n });\n } else {\n workplanIds.forEach((workplanId) => {\n newState[workplanId] = {\n ...state[workplanId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.WORKPLANS_ALL_DESELECTED: {\n const workplanIds = action.payload;\n const newState = { ...state };\n if (workplanIds.length == 0) {\n forEach(state, (workplan: any, workplanId) => {\n newState[workplanId] = {\n ...workplan,\n isSelected: false\n };\n });\n } else {\n workplanIds.forEach((workplanId) => {\n newState[workplanId] = {\n ...state[workplanId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //COPY WORKPLAN\n case types.WORKPLAN_COPY_COMPLETED: {\n const {\n workplanId,\n newWorkplanId,\n newWorkplanName,\n organizationId,\n divisionId,\n subdivisionId\n } = action.payload;\n\n return {\n ...state,\n [newWorkplanId]: {\n isSelected: false,\n ...state[workplanId],\n workplanId: newWorkplanId,\n workplanName: newWorkplanName,\n organizationId,\n divisionId,\n subdivisionId,\n isConfirmed: true\n }\n };\n }\n\n //ASSIGN GEOFENCES\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED: {\n const {\n workplanIds,\n originGeofenceId,\n originGeofenceName,\n originExitWindow,\n originValidationWindow\n } = action.payload;\n const newState = { ...state };\n workplanIds.map(\n (workplanId) =>\n (newState[workplanId] = {\n isSelected: false,\n ...state[workplanId],\n originGeofenceId,\n originGeofenceName,\n originExitWindow,\n originValidationWindow,\n isConfirmed: true\n })\n );\n return newState;\n }\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED: {\n const {\n workplanIds,\n workGeofenceId,\n workGeofenceName,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n } = action.payload;\n const newState = { ...state };\n workplanIds.map(\n (workplanId) =>\n (newState[workplanId] = {\n isSelected: false,\n ...state[workplanId],\n workGeofenceId,\n workGeofenceName,\n workGeofenceArriveWindow,\n workGeofenceMaxTime,\n isConfirmed: true\n })\n );\n return newState;\n }\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED: {\n const { workplanIds, destinationGeofenceId, destinationGeofenceName } = action.payload;\n const newState = { ...state };\n workplanIds.map(\n (workplanId) =>\n (newState[workplanId] = {\n isSelected: false,\n ...state[workplanId],\n destinationGeofenceId,\n destinationGeofenceName,\n isConfirmed: true\n })\n );\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.WORKPLANS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.WORKPLAN_ADD_COMPLETED: {\n const { oldId, workplan } = action.payload;\n return state.map((workplanId) => (workplanId === oldId ? workplan.workplanId : workplanId));\n }\n\n case types.WORKPLAN_REMOVE_COMPLETED: {\n const { workplanId } = action.payload;\n return state.filter((workplanIdState) => workplanIdState !== workplanId);\n }\n\n //CASE ADD STARTED\n case types.WORKPLAN_ADD_STARTED: {\n const workplan = action.payload;\n return [...state, workplan.workplanId];\n }\n\n //CASE ADD FAILED\n case types.WORKPLAN_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((workplanIdState) => workplanIdState !== oldId);\n }\n\n //COPY WORKPLAN\n case types.WORKPLAN_COPY_COMPLETED: {\n const { newWorkplanId } = action.payload;\n return [...state, newWorkplanId];\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_FETCH_COMPLETED:\n case types.WORKPLANS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_PARTIAL_FETCH_COMPLETED:\n case types.WORKPLANS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingLocationsList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_SELECTED: {\n return true;\n }\n case types.WORKPLAN_LOCATIONS_FETCH_COMPLETED:\n case types.WORKPLAN_LOCATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ADD_STARTED: {\n return true;\n }\n case types.WORKPLAN_ADD_COMPLETED:\n case types.WORKPLAN_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_EDIT_STARTED: {\n return true;\n }\n case types.WORKPLAN_EDIT_COMPLETED:\n case types.WORKPLAN_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_REMOVE_STARTED: {\n return true;\n }\n case types.WORKPLAN_REMOVE_COMPLETED:\n case types.WORKPLAN_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_COPY_STARTED: {\n return true;\n }\n case types.WORKPLAN_COPY_COMPLETED:\n case types.WORKPLAN_COPY_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAssigningGeofence = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED: {\n return true;\n }\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_FETCH_STARTED:\n case types.WORKPLANS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_PARTIAL_FETCH_STARTED:\n case types.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingLocationsList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_LOCATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_SELECTED:\n case types.WORKPLAN_LOCATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ADD_STARTED:\n case types.WORKPLAN_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_EDIT_STARTED:\n case types.WORKPLAN_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_REMOVE_STARTED:\n case types.WORKPLAN_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_COPY_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_COPY_COMPLETED:\n case types.WORKPLAN_COPY_STARTED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAssigningGeofence = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplans: any = combineReducers({\n workplansExecutions,\n workplansVisits,\n workplansReport,\n workplansComments,\n workplansAssignments,\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isFetchingLocationsList,\n isAdding,\n isEditing,\n isRemoving,\n isCopying,\n isAssigningGeofence,\n errorPartialFetchingList,\n errorFetchingList,\n errorFetchingLocationsList,\n errorAdding,\n errorEditing,\n errorRemoving,\n errorCopying,\n errorAssigningGeofence\n});\n\nconst workplansPersistConfig = {\n key: 'workplans',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'workplansExecutions',\n 'workplansVisits',\n 'workplansReport',\n 'workplansComments',\n 'workplansAssignments',\n 'isPartialFetchingList',\n 'isFetchingList',\n 'isFetchingLocationsList',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isCopying',\n 'isAssigningGeofence',\n 'errorPartialFetchingList',\n 'errorFetchingList',\n 'errorFetchingLocationsList',\n 'errorAdding',\n 'errorEditing',\n 'errorRemoving',\n 'errorCopying',\n 'errorAssigningGeofence'\n ],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(workplansPersistConfig, workplans);\n\n//Own state\nexport const getOwnState = (state) => state.workplans;\n\n//Information\nexport const getWorkplan = (state, workplanId) => {\n const intl = appIntl();\n const workplan = getOwnState(state).byId[workplanId];\n if (workplan) {\n const organization = workplan.organizationId\n ? organizationSelectors.getOrganization(state, workplan.organizationId)\n : undefined;\n const division = workplan.divisionId\n ? divisionSelectors.getDivision(state, workplan.divisionId)\n : undefined;\n const subdivision = workplan.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, workplan.subdivisionId)\n : undefined;\n return {\n ...workplan,\n estimatedTotalDistance: workplan?.estimatedTotalDistance\n ? authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(workplan?.estimatedTotalDistance)\n : 0,\n originExitWindow: workplan?.originExitWindow / 60 || 0,\n originValidationWindow: workplan?.originValidationWindow / 60 || 0,\n workGeofenceName: workplan?.hasAutogeneratedGeofence\n ? intl.formatMessage({ id: 'workplans.autogeneratedGeofence' })\n : workplan?.workGeofenceName,\n workGeofenceArriveWindow: workplan?.workGeofenceArriveWindow / 60 || 0,\n workGeofenceMaxTime: workplan?.workGeofenceMaxTime / 60 || 0,\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: workplan.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: workplan.checkSequence ? 'common.yes' : 'common.no'\n }),\n membership: {\n organizationId: workplan.organizationId || undefined,\n divisionId: workplan.divisionId || undefined,\n subdivisionId: workplan.subdivisionId || undefined\n }\n };\n } else return undefined;\n};\n\nexport const getWorkplansList = (state) =>\n getOwnState(state)\n .order.map((id) => getWorkplan(state, id))\n .filter((workplan) => workplan.workplanStatus > 0);\nexport const getWorkplansListByMembership = (state, membership) => {\n return getWorkplansList(state).filter(\n (workplan) =>\n membership &&\n (!membership.operatorId || membership.operatorId === workplan.operatorId) &&\n (!membership.organizationId || membership.organizationId === workplan.organizationId) &&\n (!membership.divisionId || membership.divisionId === workplan.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === workplan.subdivisionId) &&\n (!membership.groupId || membership.groupId === workplan.groupId)\n );\n};\nexport const getSelectedWorkplans = (state) => {\n const selectedWorkplans = getWorkplansList(state).filter((workplan) => workplan.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedWorkplans.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedWorkplans.length > 0) return selectedWorkplans;\n};\n\nexport const getSelectedWorkplan = (state) => {\n const selectedWorkplans = getWorkplansList(state).filter((workplan) => workplan.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedWorkplans.length === 1) return selectedWorkplans[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListWorkplans = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListWorkplans = (state) => getOwnState(state).isFetchingList;\nexport const isFetchingLocationsListWorkplans = (state) =>\n getOwnState(state).isFetchingLocationsList;\nexport const isAddingWorkplan = (state) => getOwnState(state).isAdding;\nexport const isEditingWorkplan = (state) => getOwnState(state).isEditing;\nexport const isRemovingWorkplan = (state) => getOwnState(state).isRemoving;\nexport const isCopyingWorkplan = (state) => getOwnState(state).isCopying;\nexport const isAssigningGeofenceWorkplan = (state) => getOwnState(state).isAssigningGeofence;\n\n//Errors\nexport const getPartialFetchingListWorkplansErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListWorkplansErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getFetchingLocationsListWorkplansErrors = (state) =>\n getOwnState(state).errorFetchingLocationsList;\nexport const getAddingWorkplanErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingWorkplanErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingWorkplanErrors = (state) => getOwnState(state).errorRemoving;\nexport const getCopyingWorkplanErrors = (state) => getOwnState(state).errorCopying;\nexport const getAssigningGeofenceWorkplanErrors = (state) =>\n getOwnState(state).errorAssigningGeofence;\n\n/* -------------------------------------------------------------------------- */\n/* WORKPLANS EXECUTIONS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getWorkplansExecution = (state, visitId) =>\n workplansSelectorsExecutions.getWorkplansExecution(state, visitId);\nexport const getWorkplansExecutionsList = (state) =>\n workplansSelectorsExecutions.getWorkplansExecutionsList(state);\nexport const getWorkplansExecutionsIndicators = (state) =>\n workplansSelectorsExecutions.getIndicators(state);\nexport const getWorkplansExecutionsDurationStatus = (state) =>\n workplansSelectorsExecutions.getDurationStatus(state);\nexport const getWorkplansExecutionStatus = (state) =>\n workplansSelectorsExecutions.getExecutionStatus(state);\nexport const getWorkplansExecutionsGeographicStatus = (state) =>\n workplansSelectorsExecutions.getGeographicStatus(state);\n//Status of sagas\nexport const isFetchingWorkplansExecutions = (state) =>\n workplansSelectorsExecutions.isFetchingWorkplansExecutions(state);\nexport const isFetchingWorkplanExecution = (state) =>\n workplansSelectorsExecutions.isFetchingWorkplanExecution(state);\nexport const isCancelingWorkplansExecution = (state) =>\n workplansSelectorsExecutions.isCancelingWorkplansExecution(state);\nexport const isFinalizingWorkplansExecution = (state) =>\n workplansSelectorsExecutions.isFinalizingWorkplansExecution(state);\nexport const isManualTransitWorkplansExecution = (state) =>\n workplansSelectorsExecutions.isManualTransitWorkplansExecution(state);\nexport const isChangingWorkplansExecutionUnit = (state) =>\n workplansSelectorsExecutions.isChangingWorkplansExecutionUnit(state);\n\n//Errors\nexport const getFetchingWorkplansExecutionsErrors = (state) =>\n workplansSelectorsExecutions.getFetchingWorkplansExecutionsErrors(state);\nexport const getFetchingWorkplansExecutionError = (state) =>\n workplansSelectorsExecutions.getFetchingWorkplanExecutionErrors(state);\nexport const getCancelingWorkplansExecutionErrors = (state) =>\n workplansSelectorsExecutions.getCancelingWorkplansExecutionErrors(state);\nexport const getFinalizingWorkplansExecutionErrors = (state) =>\n workplansSelectorsExecutions.getFinalizingWorkplansExecutionErrors(state);\nexport const getChangingWorkplansExecutionUnitErrors = (state) =>\n workplansSelectorsExecutions.getChangingWorkplansExecutionUnitErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* WORKPLANS VISITS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getWorkplansVisit = (state, visitId) =>\n workplansSelectorsVisits.getWorkplansVisit(state, visitId);\nexport const getWorkplansVisitsList = (state) =>\n workplansSelectorsVisits.getWorkplansVisitsList(state);\nexport const getWorkplansVisitsListByDuration = (state, duration) =>\n workplansSelectorsVisits.getWorkplansVisitsListByDuration(state, duration);\n\n//Status of sagas\nexport const isFetchingWorkplansVisits = (state) =>\n workplansSelectorsVisits.isFetchingWorkplansVisits(state);\n\n//Errors\nexport const getFetchingWorkplansVisitsErrors = (state) =>\n workplansSelectorsVisits.getFetchingWorkplansVisitsErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* WORKPLANS REPORT */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getWorkplansReportExecution = (state, visitId) =>\n workplansSelectorsReport.getWorkplansExecution(state, visitId);\nexport const getWorkplansReportExecutionsList = (state) =>\n workplansSelectorsReport.getWorkplansExecutionsList(state);\nexport const getWorkplansReportUnit = (state, visitId) =>\n workplansSelectorsReport.getWorkplansUnit(state, visitId);\nexport const getWorkplansReportUnitsList = (state) =>\n workplansSelectorsReport.getWorkplansUnitsList(state);\nexport const getWorkplansReportLocation = (state, visitId) =>\n workplansSelectorsReport.getWorkplansLocation(state, visitId);\nexport const getWorkplansReportLocationsList = (state) =>\n workplansSelectorsReport.getWorkplansLocationsList(state);\nexport const getWorkplansReportIndicators = (state) =>\n workplansSelectorsReport.getIndicators(state);\nexport const getWorkplansReportEffectivenessStatus = (state) =>\n workplansSelectorsReport.getEffectivenessStatus(state);\nexport const getWorkplansReportArrivalStatus = (state) =>\n workplansSelectorsReport.getArrivalStatus(state);\nexport const getWorkplansReportDurationStatus = (state) =>\n workplansSelectorsReport.getDurationStatus(state);\nexport const getWorkplansReportSlidingPaneInormation = (state, chartId) =>\n workplansSelectorsReport.getSlidingPaneInformation(state, chartId);\n//Status of sagas\nexport const isFetchingWorkplansReport = (state) =>\n workplansSelectorsReport.isFetchingWorkplansReport(state);\n\n//Errors\nexport const getFetchingWorkplansReportErrors = (state) =>\n workplansSelectorsReport.getFetchingWorkplansReportErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* WORKPLAN EXECUTION LOCATIONS */\n/* -------------------------------------------------------------------------- */\n//Status of sagas\nexport const isAddingWorkplanExecutionLocation = (state) =>\n workplansSelectorsExecutionLocations.isAddingLocation(state);\nexport const isEditingWorkplanExecutionLocation = (state) =>\n workplansSelectorsExecutionLocations.isEditingLocation(state);\nexport const isRemovingWorkplanExecutionLocation = (state) =>\n workplansSelectorsExecutionLocations.isRemovingLocation(state);\n\n//Errors\nexport const getAddingWorkplanExecutionLocationErrors = (state) =>\n workplansSelectorsExecutionLocations.getAddingLocationErrors(state);\nexport const getEditingWorkplanExecutionLocationErrors = (state) =>\n workplansSelectorsExecutionLocations.getEditingLocationErrors(state);\nexport const getRemovingWorkplanExecutionLocationErrors = (state) =>\n workplansSelectorsExecutionLocations.getRemovingLocationErrors(state);\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((quotationId) => {\n newState[quotationId] = {\n isSelected: false,\n ...state[quotationId],\n ...entities[quotationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.QUOTATIONS_ADD_COMPLETED: {\n const { oldId, quotation } = action.payload;\n const newState = omit(state, oldId);\n newState[quotation.quotationId] = {\n ...state[oldId],\n ...quotation,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.QUOTATIONS_EDIT_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...omit(state[quotation.quotationId], ['oldQuotation']),\n ...omit(quotation, ['oldQuotation']),\n isConfirmed: true\n }\n };\n }\n\n case types.QUOTATION_COPY_COMPLETED: {\n const { quotation } = action.payload;\n const newState = state;\n newState[quotation.quotationId] = {\n isSelected: false,\n ...quotation,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationStatus: quotation.approve == 1 ? 2 : 5,\n denyRequisitionReason: quotation.denyRequisitionReason\n }\n };\n }\n\n case types.QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationStatus: quotation.accept == 1 ? 6 : 7,\n deniedCustomerReason: quotation.deniedCustomerReason\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.QUOTATIONS_ADD_STARTED: {\n const { quotation, isSelected } = action.payload;\n const newState = { ...state };\n newState[quotation.quotationId] = {\n isSelected: isSelected,\n ...quotation,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.QUOTATIONS_EDIT_STARTED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n oldQuotation: state[quotation.quotationId],\n ...quotation,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.QUOTATIONS_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.QUOTATIONS_EDIT_FAILED: {\n const { oldQuotation } = action.payload;\n return {\n ...state,\n [oldQuotation.quotationId]: {\n ...omit(state[oldQuotation.quotationId], ['oldQuotation']),\n ...oldQuotation,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n const { quotationId } = action.payload;\n return omit(state, quotationId);\n }\n\n //TYPES SCHEDULE AND CHECK SCHEDULE\n case types.QUOTATIONS_SCHEDULE_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n isScheduled: true\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_SET_TIMESUP_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n isTimesup: quotation.timesup\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationId: quotation.quotationIdDB,\n isScheduled: quotation.isScheduled,\n quotationStatus: quotation.quotationStatus,\n isTimesup: quotation.isTimesup,\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.QUOTATION_CHANGE_ORGANIZATION: {\n const { quotation, organization } = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n ...organization\n },\n ...(quotation.baseQuotationId\n ? {\n [quotation.baseQuotationId]: {\n ...state[quotation.baseQuotationId],\n ...organization\n }\n }\n : {})\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.QUOTATIONS_SELECTED: {\n const quotationId = action.payload;\n const newState = {\n ...state,\n [quotationId]: {\n ...state[quotationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_DESELECTED: {\n const quotationId = action.payload;\n return {\n ...state,\n [quotationId]: {\n ...state[quotationId],\n isSelected: false\n }\n };\n }\n\n case types.QUOTATIONS_ALL_SELECTED: {\n const quotationIds = action.payload;\n const newState = { ...state };\n if (quotationIds.length == 0) {\n forEach(state, (quotation: any, quotationIds) => {\n newState[quotationIds] = {\n ...quotation,\n isSelected: true\n };\n });\n } else {\n quotationIds.forEach((quotationId) => {\n newState[quotationId] = {\n ...state[quotationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.QUOTATIONS_ALL_DESELECTED: {\n const quotationIds = action.payload;\n const newState = { ...state };\n if (quotationIds.length == 0) {\n forEach(state, (quotation: any, quotationId) => {\n newState[quotationId] = {\n ...quotation,\n isSelected: false\n };\n });\n } else {\n quotationIds.forEach((quotationId) => {\n newState[quotationId] = {\n ...state[quotationId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.QUOTATIONS_ADD_COMPLETED: {\n const { oldId, quotation } = action.payload;\n return state.map((quotationId) =>\n quotationId === oldId ? quotation.quotationId : quotationId\n );\n }\n\n case types.QUOTATION_COPY_COMPLETED: {\n const { quotation } = action.payload;\n return [...state, quotation.quotationId];\n }\n\n case types.QUOTATIONS_CHECK_SCHEDULING_STARTED: {\n const { quotationId } = action.payload;\n return [\n ...state.filter((quotationIdState) => quotationIdState !== Number(quotationId)),\n Number(quotationId)\n ];\n }\n\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n const { quotationId } = action.payload;\n return state.filter((quotationIdState) => quotationIdState !== quotationId);\n }\n\n //CASE ADD STARTED\n case types.QUOTATIONS_ADD_STARTED: {\n const { quotation } = action.payload;\n return [...state, quotation.quotationId];\n }\n\n //CASE ADD FAILED\n case types.QUOTATIONS_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((quotationIdState) => quotationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_FETCH_STARTED: {\n return true;\n }\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_ADD_STARTED: {\n return true;\n }\n case types.QUOTATIONS_ADD_COMPLETED:\n case types.QUOTATIONS_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCopying = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATION_COPY_STARTED: {\n return true;\n }\n case types.QUOTATION_COPY_COMPLETED:\n case types.QUOTATION_COPY_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_EDIT_STARTED: {\n return true;\n }\n case types.QUOTATIONS_EDIT_COMPLETED:\n case types.QUOTATIONS_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isScheduling = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_SCHEDULE_STARTED: {\n return true;\n }\n case types.QUOTATIONS_SCHEDULE_COMPLETED:\n case types.QUOTATIONS_SCHEDULE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCheckingSchedule = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_CHECK_SCHEDULING_STARTED: {\n return true;\n }\n case types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED:\n case types.QUOTATIONS_CHECK_SCHEDULING_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isSettingTimesup = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_SET_TIMESUP_STARTED: {\n return true;\n }\n case types.QUOTATIONS_SET_TIMESUP_COMPLETED:\n case types.QUOTATIONS_SET_TIMESUP_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_REMOVE_STARTED: {\n return true;\n }\n case types.QUOTATIONS_REMOVE_COMPLETED:\n case types.QUOTATIONS_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isApprovingDenyingManagement = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED: {\n return true;\n }\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED:\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_FETCH_STARTED:\n case types.QUOTATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_PARTIAL_FETCH_STARTED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_ADD_STARTED:\n case types.QUOTATIONS_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCopying = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATION_COPY_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATION_COPY_STARTED:\n case types.QUOTATION_COPY_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_EDIT_STARTED:\n case types.QUOTATIONS_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_REMOVE_STARTED:\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst quotations = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isCopying,\n isEditing,\n isScheduling,\n isCheckingSchedule,\n isSettingTimesup,\n isApprovingDenyingManagement,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorCopying,\n errorEditing,\n errorRemoving\n});\n\nexport default quotations;\n\n//Own state\nexport const getOwnState = (state) => state.quotations;\n\n//Information\nexport const getQuotation = (state, quotationId) => {\n return getOwnState(state).byId[quotationId];\n};\n\nexport const getQuotationsSpecificList = (state, list) =>\n list.map((quotationId) => getQuotation(state, quotationId));\n\nexport const getQuotationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getQuotation(state, id))\n .filter((quotation) => quotation?.quotationStatus > 0);\n\nexport const getSelectedQuotations = (state) => {\n const selectedQuotations = getQuotationsList(state).filter((quotation) => quotation?.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedQuotations.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedQuotations.length > 0) return selectedQuotations;\n};\n\nexport const getSelectedQuotation = (state) => {\n const selectedQuotations = getQuotationsList(state).filter((quotation) => quotation?.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedQuotations.length === 1) return selectedQuotations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListQuotations = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListQuotations = (state) => getOwnState(state).isFetchingList;\nexport const isAddingQuotation = (state) => getOwnState(state).isAdding;\nexport const isCopyingQuotation = (state) => getOwnState(state).isCopying;\nexport const isEditingQuotation = (state) => getOwnState(state).isEditing;\nexport const isSchedulingQuotation = (state) => getOwnState(state).isScheduling;\nexport const isSettingTimesupQuotation = (state) => getOwnState(state).isSettingTimesup;\nexport const isCheckingScheduleQuotation = (state) => getOwnState(state).isCheckingSchedule;\nexport const isRemovingQuotation = (state) => getOwnState(state).isRemoving;\nexport const isApprovingDenyingQuotationManagement = (state) =>\n getOwnState(state).isApprovingDenyingManagement;\n\n//Errors\nexport const getPartialFetchingListQuotationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListQuotationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingQuotationErrors = (state) => getOwnState(state).errorAdding;\nexport const getCopyingQuotationErrors = (state) => getOwnState(state).errorCopying;\nexport const getEditingQuotationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingQuotationErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n isSelected: false,\n ...entities[serviceClassId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SERVICECLASS_FETCH_COMPLETED: {\n const serviceClass = action.payload;\n const newState = { ...state };\n newState[serviceClass.serviceClassId] = {\n isSelected: false,\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SERVICECLASS_ADD_COMPLETED: {\n const { oldId, serviceClass } = action.payload;\n const newState = omit(state, oldId);\n newState[serviceClass.serviceClassId] = {\n ...state[oldId],\n ...serviceClass,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SERVICECLASS_EDIT_COMPLETED: {\n const serviceClass = action.payload;\n return {\n ...state,\n [serviceClass.serviceClassId]: {\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SERVICECLASS_ADD_STARTED: {\n const serviceClass = action.payload;\n state[serviceClass.serviceClassId] = {\n isSelected: false,\n ...serviceClass,\n isConfirmed: false\n };\n return state;\n }\n case types.SERVICECLASS_EDIT_STARTED: {\n const serviceClass = action.payload;\n return {\n ...state,\n [serviceClass.serviceClassId]: {\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SERVICECLASS_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SERVICECLASS_EDIT_FAILED: {\n const { oldServiceClass } = action.payload;\n return {\n ...state,\n [oldServiceClass.serviceClassId]: {\n ...state[oldServiceClass.serviceClassId],\n ...oldServiceClass,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n const serviceClassId = action.payload;\n return omit(state, serviceClassId.serviceClassId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SERVICECLASS_SELECTED: {\n const serviceClassId = action.payload;\n return {\n ...state,\n [serviceClassId]: {\n ...state[serviceClassId],\n isSelected: true\n }\n };\n }\n\n case types.SERVICECLASS_DESELECTED: {\n const serviceClassId = action.payload;\n return {\n ...state,\n [serviceClassId]: {\n ...state[serviceClassId],\n isSelected: false\n }\n };\n }\n\n case types.SERVICECLASSES_ALL_SELECTED: {\n const serviceClassIds = action.payload;\n const newState = { ...state };\n if (serviceClassIds.length == 0) {\n forEach(state, (serviceClass: any, serviceClassId) => {\n newState[serviceClassId] = {\n ...serviceClass,\n isSelected: true\n };\n });\n } else {\n serviceClassIds.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n ...state[serviceClassId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SERVICECLASSES_ALL_DESELECTED: {\n const serviceClassIds = action.payload;\n const newState = { ...state };\n if (serviceClassIds.length == 0) {\n forEach(state, (serviceClass: any, serviceClassId) => {\n newState[serviceClassId] = {\n ...serviceClass,\n isSelected: false\n };\n });\n } else {\n serviceClassIds.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n ...state[serviceClassId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SERVICECLASS_FETCH_COMPLETED: {\n const serviceClass = action.payload;\n return uniq([...state, serviceClass.serviceClassId]);\n }\n\n case types.SERVICECLASS_ADD_COMPLETED: {\n const { oldId, serviceClass } = action.payload;\n return state.map((serviceClassId) =>\n serviceClassId === oldId ? serviceClass.serviceClassId : serviceClassId\n );\n }\n\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n const serviceClassId = action.payload;\n return state.filter(\n (serviceClassIdState) => serviceClassIdState !== serviceClassId.serviceClassId\n );\n }\n\n //CASE ADD STARTED\n case types.SERVICECLASS_ADD_STARTED: {\n const serviceClass = action.payload;\n return [...state, serviceClass.serviceClassId];\n }\n\n //CASE ADD FAILED\n case types.SERVICECLASS_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((serviceClassIdState) => serviceClassIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASSES_FETCH_STARTED: {\n return true;\n }\n case types.SERVICECLASSES_FETCH_COMPLETED:\n case types.SERVICECLASSES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_FETCH_STARTED: {\n return true;\n }\n case types.SERVICECLASS_FETCH_COMPLETED:\n case types.SERVICECLASS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_ADD_STARTED: {\n return true;\n }\n case types.SERVICECLASS_ADD_COMPLETED:\n case types.SERVICECLASS_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_EDIT_STARTED: {\n return true;\n }\n case types.SERVICECLASS_EDIT_COMPLETED:\n case types.SERVICECLASS_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_REMOVE_STARTED: {\n return true;\n }\n case types.SERVICECLASS_REMOVE_COMPLETED:\n case types.SERVICECLASS_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASSES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASSES_FETCH_STARTED:\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_FETCH_STARTED:\n case types.SERVICECLASS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_ADD_STARTED:\n case types.SERVICECLASS_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_EDIT_STARTED:\n case types.SERVICECLASS_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_REMOVE_STARTED:\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst serviceClasses = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default serviceClasses;\n\nexport const getOwnState = (state) => state.serviceClasses;\n\nexport const getServiceClass = (state, serviceClassId) => {\n return getOwnState(state).byId[serviceClassId];\n};\nexport const getServiceClasssList = (state) =>\n getOwnState(state).order.map((id) => getOwnState(state).byId[id]);\n\nexport const getSelectedServiceClass = (state) => {\n const selectedServiceClasses = getServiceClasssList(state).filter(\n (serviceClass) => serviceClass.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedServiceClasses.length === 1) return selectedServiceClasses[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//status of sagas\nexport const isFetchingListServiceClasses = (state) => getOwnState(state).isFetchingList;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((contractId) => {\n newState[contractId] = {\n isSelected: false,\n ...state[contractId],\n ...entities[contractId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n const { oldId, organizationContract } = action.payload;\n const newState = omit(state, oldId);\n newState[organizationContract.contractId] = {\n ...state[oldId],\n ...organizationContract,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED: {\n const organizationContract = action.payload;\n return {\n ...state,\n [organizationContract.contractId]: {\n ...omit(state[organizationContract.contractId], ['oldOrganizationContract']),\n ...omit(organizationContract, ['oldOrganizationContract']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n const organizationContract = action.payload;\n const newState = { ...state };\n newState[organizationContract.contractId] = {\n isSelected: false,\n ...organizationContract,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED: {\n const organizationContract = action.payload;\n return {\n ...state,\n [organizationContract.contractId]: {\n ...state[organizationContract.contractId],\n oldOrganizationContract: state[organizationContract.contractId],\n ...organizationContract,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n const { oldOrganizationContract } = action.payload;\n return {\n ...state,\n [oldOrganizationContract.contractId]: {\n ...omit(state[oldOrganizationContract.contractId], ['oldOrganizationContract']),\n ...oldOrganizationContract,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n const { contractId } = action.payload;\n return omit(state, contractId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ORGANIZATION_CONTRACT_SELECTED: {\n const contractId = action.payload;\n const newState = {\n ...state,\n [contractId]: {\n ...state[contractId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_DESELECTED: {\n const contractId = action.payload;\n return {\n ...state,\n [contractId]: {\n ...state[contractId],\n isSelected: false\n }\n };\n }\n\n case types.ORGANIZATION_CONTRACTS_ALL_SELECTED: {\n const contractIds = action.payload;\n const newState = { ...state };\n if (contractIds.length == 0) {\n forEach(state, (organizationContract: any, contractIds) => {\n newState[contractIds] = {\n ...organizationContract,\n isSelected: true\n };\n });\n } else {\n contractIds.forEach((contractId) => {\n newState[contractId] = {\n ...state[contractId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACTS_ALL_DESELECTED: {\n const contractIds = action.payload;\n const newState = { ...state };\n if (contractIds.length == 0) {\n forEach(state, (organizationContract: any, contractId) => {\n newState[contractId] = {\n ...organizationContract,\n isSelected: false\n };\n });\n } else {\n contractIds.forEach((contractId) => {\n newState[contractId] = {\n ...state[contractId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n const { oldId, organizationContract } = action.payload;\n return state.map((contractId) =>\n contractId === oldId ? organizationContract.contractId : contractId\n );\n }\n\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n const { contractId } = action.payload;\n return state.filter((contractIdState) => contractIdState !== contractId);\n }\n\n //CASE ADD STARTED\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n const organizationContract = action.payload;\n return [...state, organizationContract.contractId];\n }\n\n //CASE ADD FAILED\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((contractIdState) => contractIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED:\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED:\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED:\n case types.ORGANIZATION_CONTRACT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACTS_FETCH_STARTED:\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_ADD_STARTED:\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED:\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_REMOVE_STARTED:\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizationContracts = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default organizationContracts;\n\n//Own state\nexport const getOwnState = (state) => state.organizationContracts;\n\n//Information\nexport const getOrganizationContract = (state, contractId) => {\n return getOwnState(state).byId[contractId];\n};\n\nexport const getOrganizationContractsList = (state) =>\n getOwnState(state)\n .order.map((id) => getOrganizationContract(state, id))\n .filter((organizationContract) => organizationContract?.status > 0);\n\nexport const getSelectedOrganizationContracts = (state) => {\n const selectedOrganizationContracts = getOrganizationContractsList(state).filter(\n (organizationContract) => organizationContract?.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedOrganizationContracts.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedOrganizationContracts.length > 0) return selectedOrganizationContracts;\n};\n\nexport const getSelectedOrganizationContract = (state) => {\n const selectedOrganizationContracts = getOrganizationContractsList(state).filter(\n (organizationContract) => organizationContract?.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOrganizationContracts.length === 1) return selectedOrganizationContracts[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOrganizationContracts = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOrganizationContracts = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOrganizationContract = (state) => getOwnState(state).isAdding;\nexport const isEditingOrganizationContract = (state) => getOwnState(state).isEditing;\nexport const isRemovingOrganizationContract = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListOrganizationContractsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOrganizationContractsErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingOrganizationContractErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOrganizationContractErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingOrganizationContractErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((templateId) => {\n newState[templateId] = {\n isSelected: false,\n ...state[templateId],\n ...entities[templateId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n const { oldId, contractTemplate } = action.payload;\n const newState = omit(state, oldId);\n newState[contractTemplate.templateId] = {\n ...state[oldId],\n ...contractTemplate,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED: {\n const contractTemplate = action.payload;\n return {\n ...state,\n [contractTemplate.templateId]: {\n ...omit(state[contractTemplate.templateId], ['oldContractTemplate']),\n ...omit(contractTemplate, ['oldContractTemplate']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n const contractTemplate = action.payload;\n const newState = { ...state };\n newState[contractTemplate.templateId] = {\n isSelected: false,\n ...contractTemplate,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_STARTED: {\n const contractTemplate = action.payload;\n return {\n ...state,\n [contractTemplate.templateId]: {\n ...state[contractTemplate.templateId],\n oldDivision: state[contractTemplate.templateId],\n ...contractTemplate,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n const { oldContractTemplate } = action.payload;\n return {\n ...state,\n [oldContractTemplate.templateId]: {\n ...omit(state[oldContractTemplate.templateId], ['oldContractTemplate']),\n ...oldContractTemplate,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n const { templateId } = action.payload;\n return omit(state, templateId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.CONTRACT_TEMPLATE_SELECTED: {\n const templateId = action.payload;\n const newState = {\n ...state,\n [templateId]: {\n ...state[templateId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_DESELECTED: {\n const templateId = action.payload;\n return {\n ...state,\n [templateId]: {\n ...state[templateId],\n isSelected: false\n }\n };\n }\n\n case types.CONTRACT_TEMPLATES_ALL_SELECTED: {\n const templateIds = action.payload;\n const newState = { ...state };\n if (templateIds.length == 0) {\n forEach(state, (contractTemplate: any, templateId) => {\n newState[templateId] = {\n ...contractTemplate,\n isSelected: true\n };\n });\n } else {\n templateIds.forEach((templateId) => {\n newState[templateId] = {\n ...state[templateId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.CONTRACT_TEMPLATES_ALL_DESELECTED: {\n const templateIds = action.payload;\n const newState = { ...state };\n if (templateIds.length == 0) {\n forEach(state, (contractTemplate: any, templateId) => {\n newState[templateId] = {\n ...contractTemplate,\n isSelected: false\n };\n });\n } else {\n templateIds.forEach((templateId) => {\n newState[templateId] = {\n ...state[templateId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n const { oldId, contractTemplate } = action.payload;\n return state.map((templateId) =>\n templateId === oldId ? contractTemplate.templateId : templateId\n );\n }\n\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n const { templateId } = action.payload;\n return state.filter((templateIdState) => templateIdState !== templateId);\n }\n\n //CASE ADD STARTED\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n const contractTemplate = action.payload;\n return [...state, contractTemplate.templateId];\n }\n\n //CASE ADD FAILED\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((templateIdState) => templateIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_FETCH_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED:\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_EDIT_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED:\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_REMOVE_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED:\n case types.CONTRACT_TEMPLATE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATES_FETCH_STARTED:\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_ADD_STARTED:\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_EDIT_STARTED:\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_REMOVE_STARTED:\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst contractTemplates = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default contractTemplates;\n\n//Own state\nexport const getOwnState = (state) => state.contractTemplates;\n\n//Information\nexport const getContractTemplate = (state, templateId) => {\n return getOwnState(state).byId[templateId];\n};\n\nexport const getContractTemplatesList = (state) =>\n getOwnState(state)\n .order.map((id) => getContractTemplate(state, id))\n .filter((contractTemplate) => contractTemplate?.status > 0);\n\nexport const getSelectedContractTemplates = (state) => {\n const selectedContractTemplates = getContractTemplatesList(state).filter(\n (contractTemplate) => contractTemplate?.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedContractTemplates.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedContractTemplates.length > 0) return selectedContractTemplates;\n};\n\nexport const getSelectedContractTemplate = (state) => {\n const selectedContractTemplates = getContractTemplatesList(state).filter(\n (contractTemplate) => contractTemplate?.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedContractTemplates.length === 1) return selectedContractTemplates[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListContractTemplates = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListContractTemplates = (state) => getOwnState(state).isFetchingList;\nexport const isAddingContractTemplate = (state) => getOwnState(state).isAdding;\nexport const isEditingContractTemplate = (state) => getOwnState(state).isEditing;\nexport const isRemovingContractTemplate = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListContractTemplatesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListContractTemplatesErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingContractTemplateErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingContractTemplateErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingContractTemplateErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n schedule: 'SC001',\n addSchedule: 'SC002',\n editSchedule: 'SC003',\n deleteSchedule: 'SC004'\n};\n\nexport default permissions;\n","/* -------------------------------------------------------------------------- */\n/* Componente OfficesDropdown */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput que permite elegir un cliente y abrir un slide para crear nuevos clientes\n\nimport { useState } from 'react';\nimport { Edit2, Plus } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport SlidingPaneEditOffice from 'views/screens/Offices/views/SlidingPaneEditOffice';\nimport * as officeSelectors from '../../screens/Offices/reducers';\nimport DropdownInput from '../DropdownInput';\n\nconst OfficesDropdown = (props) => {\n const {\n appendAddOffice = true,\n enableSelectLocation = false,\n isClearable = false,\n officesFilters,\n notAssigned = false,\n locationId,\n customerId,\n isMainOffice,\n field,\n ...dropdownProps\n } = props;\n const intl = useIntl();\n const { offices } = useSelector((state) => ({\n offices: notAssigned\n ? officeSelectors.getNotAssignedOfficesListByCustomer(state, locationId, customerId)\n : officeSelectors.getOfficesList(state)\n }));\n const [isOpenShiftPane, setOpenShiftPane] = useState(false);\n const [selectedOffice, setSelectedOffice] = useState(undefined);\n const closeShiftPane = () => setOpenShiftPane(false);\n\n return (\n <>\n \n isMainOffice == undefined || office.isMainOffice === isMainOffice)\n .map((office) => ({\n value: office.officeId,\n label: office.officeName\n })) || []\n }\n label={intl.formatMessage({ id: 'offices.office' })}\n placeholder={intl.formatMessage({ id: 'offices.selectOffice' })}\n appendcomponent={\n appendAddOffice ? (\n <>\n {field.value && (\n {\n setSelectedOffice({ officeId: field.value });\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n )}\n {\n setSelectedOffice(undefined);\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n \n ) : (\n <>\n )\n }\n />\n {\n setSelectedOffice(undefined);\n closeShiftPane();\n }}\n />\n \n );\n};\n\nexport default OfficesDropdown;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneEditLocation */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneEditLocation genérico que se utiliza en muchas pantallas de la aplicación.\nimport { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Row } from 'reactstrap';\nimport MapsBasic from 'views/components/Map';\nimport CustomersDropdown from 'views/formComponents/CustomersDropdown';\nimport LocationClassesDropdownInput from 'views/formComponents/LocationClassesDropdownInput';\nimport Membership from 'views/formComponents/Membership';\nimport NumericalInput from 'views/formComponents/NumericalInput';\nimport OfficesDropdown from 'views/formComponents/OfficesDropdown';\nimport TextInput from 'views/formComponents/TextInput';\nimport * as customerSelectors from 'views/screens/Customers/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationClassesSelectors from '../../../../../redux/reducers/static-catalogs/location-classes';\n\ninterface Props {\n title: any;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n subtitle?: any;\n editingLocation: any;\n setEditingLocation?: Function;\n confirmText?: any;\n isInMap?: boolean;\n width?: string;\n hasButtonSubmit?: boolean;\n hasButtonCancel?: boolean;\n action?: any;\n onClose?: any;\n}\n\nconst SlidingPaneEditLocation = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n title,\n subtitle,\n editingLocation,\n setEditingLocation,\n confirmText,\n isOpenSlidingPane,\n closeSlidingPane,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n width,\n onClose,\n isInMap = false\n } = props;\n\n const { control, handleSubmit, watch } = useForm();\n const [rerenderMap, setRerenderMap] = useState(new Date());\n\n const formValues = watch();\n\n const { store, mapHomeCenter, parsers, customer } = useSelector((state) => ({\n store: state,\n mapHomeCenter: authSelectors.getAuthUserMapHomeCenter(state),\n parsers: authSelectors.getParsers(state),\n customer: customerSelectors.getCustomer(state, formValues?.customerId1)\n }));\n const initialLatitude = parseFloat(mapHomeCenter[0]);\n const initialLongitude = parseFloat(mapHomeCenter[1]);\n const initialRadius = 50;\n const initialLocationClassIconName = 'Marker1';\n const intl = useIntl();\n const [latitude, setLatitude] = useState(initialLatitude);\n const [longitude, setLongitude] = useState(initialLongitude);\n\n useEffect(() => {\n if (isOpenSlidingPane) {\n if (editingLocation) {\n setLatitude(editingLocation.latitude);\n setLongitude(editingLocation.longitude);\n } else {\n setLatitude(initialLatitude);\n setLongitude(initialLongitude);\n }\n }\n }, [isOpenSlidingPane, editingLocation]);\n\n useEffect(() => {\n if (\n formValues.latitude != null &&\n formValues.longitude != null &&\n formValues.radius != null &&\n formValues.locationClassId != null\n )\n updateEditingLocation();\n }, [\n formValues.locationName,\n formValues.latitude,\n formValues.longitude,\n formValues.radius,\n formValues.locationClassId\n ]);\n\n const updateEditingLocation = () => {\n if (setEditingLocation)\n setEditingLocation({\n ...editingLocation,\n ...formValues,\n ...formValues.membership,\n locationClassIconName:\n formValues && formValues.locationClassId\n ? locationClassesSelectors.getLocationClassIconName(store, formValues.locationClassId)\n : initialLocationClassIconName\n });\n };\n\n const closeSlidingPaneFunction = (saving) => {\n closeSlidingPane();\n if (onClose != null && !saving) onClose(formValues); //Close without saving\n };\n\n return (\n closeSlidingPaneFunction(false)}\n >\n \n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n required={true}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n allowUndefined={false}\n useNumberSpinner={true}\n allowDecimals={true}\n decimalsPrecision={100}\n step={1}\n min={-90}\n max={90}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n allowUndefined={false}\n useNumberSpinner={true}\n allowDecimals={true}\n decimalsPrecision={100}\n step={1}\n min={-180}\n max={180}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n step={1}\n metric={'distance2'}\n min={parsers.convertMetersToAuthUserDistance2System(10)}\n max={parsers.convertMetersToAuthUserDistance2System(100000)}\n />\n )}\n />\n \n {!isInMap && (\n \n {\n setLatitude(values.lat);\n setLongitude(values.lng);\n },\n showLocation: true,\n useRectangleBounds: true,\n isMapFullScreen: false,\n usePopovers: false\n }}\n rulerControlOptions={{ position: 'bottomleft', useControl: false }}\n >\n
\n \n )}\n \n (\n \n )}\n />\n \n \n {formValues?.locationClassId === 30 && (\n \n (\n \n )}\n />\n \n )}\n {formValues?.locationClassId === 34 && (\n <>\n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n )}\n \n \n {hasButtonSubmit && (\n {\n closeSlidingPaneFunction(true);\n action({\n ...values,\n customerId:\n values.locationClassId === 30\n ? values.customerId1\n : values.locationClassId === 34\n ? values.customerId2\n : undefined,\n officeId:\n values.locationClassId === 30\n ? customer?.officeId\n : values.locationClassId === 34\n ? values.officeId\n : undefined,\n radius: parsers.convertAuthUserDistance2SystemToMeters(values.radius)\n });\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPaneFunction(false)}\n >\n \n \n )}\n \n \n
\n \n );\n};\n\nSlidingPaneEditLocation.defaultProps = {\n inputs: [],\n useTable: false,\n heightTable: 200,\n hasButtonSubmit: true,\n hasButtonCancel: true,\n columnsTable: [],\n dataTable: []\n};\n\nexport default SlidingPaneEditLocation;\n","const paths = {\n addTicket: '/vehicleFuel/ticket/add',\n importTicket: '/vehicleFuel/ticket/import',\n recordMultiple:'/vehicleFuel/ticket/multiple',\n consolidatedReport: '/vehicleFuel/reports/consolidated',\n byUnitReport: '/vehicleFuel/reports/byUnit'\n};\n\nexport default paths;\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceActionsEntities, deviceActionsOrder } = action.payload;\n const newState = { ...state };\n deviceActionsOrder.forEach((deviceActionId) => {\n newState[deviceActionId] = {\n ...state[deviceActionId],\n ...deviceActionsEntities[deviceActionId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceActionsOrder } = action.payload;\n return uniq([...state, ...deviceActionsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst deviceActions = combineReducers({\n byId,\n order\n});\n\nexport default deviceActions;\n\n//Own state\nexport const getOwnState = (state) => state.units.deviceActions;\n\n//Information\nexport const getDeviceAction = (state, deviceActionId) => {\n const deviceAction = getOwnState(state).byId[deviceActionId];\n if (deviceAction) {\n return {\n ...deviceAction\n };\n } else return undefined;\n};\nexport const getDeviceActionsList = (state) =>\n getOwnState(state).order.map((id) => getDeviceAction(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceMetricsEntities, deviceMetricsOrder } = action.payload;\n const newState = { ...state };\n deviceMetricsOrder.forEach((deviceMetricId) => {\n newState[deviceMetricId] = {\n ...state[deviceMetricId],\n ...deviceMetricsEntities[deviceMetricId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceMetricsOrder } = action.payload;\n return uniq([...state, ...deviceMetricsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst deviceMetrics = combineReducers({\n byId,\n order\n});\n\nexport default deviceMetrics;\n\n//Own state\nexport const getOwnState = (state) => state.units.deviceMetrics;\n\n//Information\nexport const getDeviceMetric = (state, deviceMetricId) => {\n const deviceMetric = getOwnState(state).byId[deviceMetricId];\n if (deviceMetric) {\n return {\n ...deviceMetric\n };\n } else return undefined;\n};\nexport const getDeviceMetricsList = (state) =>\n getOwnState(state).order.map((id) => getDeviceMetric(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { groupsEntities, groupsOrder } = action.payload;\n const newState = { ...state };\n groupsOrder.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n ...groupsEntities[groupId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { groupsOrder } = action.payload;\n return uniq([...state, ...groupsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst groups = combineReducers({\n byId,\n order\n});\n\nexport default groups;\n\n//Own state\nexport const getOwnState = (state) => state.units.groups;\n\n//Information\nexport const getGroup = (state, groupId) => {\n const group = getOwnState(state).byId[groupId];\n if (group) {\n return {\n ...group\n };\n } else return undefined;\n};\nexport const getGroupsList = (state) => getOwnState(state).order.map((id) => getGroup(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { imagesEntities, imagesOrder } = action.payload;\n const newState = { ...state };\n imagesOrder.forEach((imageId) => {\n newState[imageId] = {\n ...state[imageId],\n ...imagesEntities[imageId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { imagesOrder } = action.payload;\n return uniq([...state, ...imagesOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst images = combineReducers({\n byId,\n order\n});\n\nexport default images;\n\n//Own state\nexport const getOwnState = (state) => state.units.images;\n\n//Information\nexport const getImage = (state, imageId) => {\n const image = getOwnState(state).byId[imageId];\n if (image) {\n return {\n ...image\n };\n } else return undefined;\n};\nexport const getImagesList = (state) => getOwnState(state).order.map((id) => getImage(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { reportsEntities, reportsOrder } = action.payload;\n const newState = { ...state };\n reportsOrder.forEach((reportId) => {\n newState[reportId] = {\n ...state[reportId],\n ...reportsEntities[reportId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { reportsOrder } = action.payload;\n return uniq([...state, ...reportsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst reports = combineReducers({\n byId,\n order\n});\n\nexport default reports;\n\n//Own state\nexport const getOwnState = (state) => state.units.reports;\n\n//Information\nexport const getReport = (state, reportId) => {\n const report = getOwnState(state).byId[reportId];\n if (report) {\n return {\n ...report\n };\n } else return undefined;\n};\nexport const getReportsList = (state) => getOwnState(state).order.map((id) => getReport(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { sensorsEntities, sensorsOrder } = action.payload;\n const newState = { ...state };\n sensorsOrder.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n ...sensorsEntities[sensorId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { sensorsOrder } = action.payload;\n return uniq([...state, ...sensorsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst sensors = combineReducers({\n byId,\n order\n});\n\nexport default sensors;\n\n//Own state\nexport const getOwnState = (state) => state.units.sensors;\n\n//Information\nexport const getSensor = (state, sensorId) => {\n const sensor = getOwnState(state).byId[sensorId];\n if (sensor) {\n return {\n ...sensor\n };\n } else return undefined;\n};\nexport const getSensorsList = (state) => getOwnState(state).order.map((id) => getSensor(state, id));\n","import * as types from '../../../types/static-catalogs/location-classes';\n\nexport const startFetchingLocationClasses = (filters = {}) => ({\n type: types.LOCATION_CLASSES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingLocationClasses = (entities, order) => ({\n type: types.LOCATION_CLASSES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingLocationClasses = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.LOCATION_CLASSES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import L from 'leaflet';\nimport { createPathComponent } from '@react-leaflet/core';\nimport { renderToString } from 'react-dom/server';\nimport 'leaflet.markercluster';\nimport { PathOptions } from 'leaflet';\nimport { Children, ReactNode, useEffect } from 'react';\nimport React from 'react';\n\ntype EventHandler = (...args: any[]) => void;\n\ninterface ClusterProps {\n spiderLegPolylineOptions?: PathOptions;\n removeOutsideVisibleBounds?: boolean;\n chunkedLoading?: boolean;\n iconCreateFunction?: (cluster: any) => any; // Replace 'any' with the actual types if known\n}\n\ninterface Props extends ClusterProps {\n children?: ReactNode;\n icon?: ReactNode; //any; // Replace 'any' with the actual type if known\n disableClusteringAtZoom?: number | string;\n spiderfyOnMaxZoom?: boolean;\n}\n\nconst MarkerClusterGroup = createPathComponent(\n (\n {\n children: _c,\n icon = null,\n disableClusteringAtZoom,\n spiderfyOnMaxZoom = false,\n ...props\n }: Props,\n ctx\n ) => {\n const clusterProps = {\n spiderLegPolylineOptions: { pmIgnore: true, weight: 1.5, color: '#0d6efd', opacity: 0.5 },\n removeOutsideVisibleBounds: true,\n chunkedLoading: true,\n iconCreateFunction: function (cluster) {\n var childCount = cluster.getChildCount();\n\n var c = ' marker-cluster-';\n if (childCount < 10) {\n c += 'small';\n } else if (childCount < 100) {\n c += 'medium';\n } else {\n c += 'large';\n }\n\n return new L.DivIcon({\n html: icon\n ? renderToString(\n \n {childCount}\n {icon}\n \n )\n : renderToString(\n
\n {childCount}\n
\n ),\n className: 'marker-cluster' + c,\n iconSize: new L.Point(40, 40)\n });\n }\n };\n const clusterEvents = {};\n\n if (disableClusteringAtZoom) {\n clusterProps['disableClusteringAtZoom'] = disableClusteringAtZoom;\n }\n\n clusterProps['spiderfyOnMaxZoom'] = spiderfyOnMaxZoom;\n\n // Splitting props and events to different objects\n Object.entries(props).forEach(([propName, prop]) =>\n propName.startsWith('on') ? (clusterEvents[propName] = prop) : (clusterProps[propName] = prop)\n );\n\n // Creating markerClusterGroup Leaflet element\n let markerClusterGroup = new L.markerClusterGroup(clusterProps);\n\n useEffect(() => {\n // Cleanup the old markerClusterGroup instance before creating a new one\n markerClusterGroup.clearLayers();\n\n markerClusterGroup = new L.markerClusterGroup({\n ...clusterProps,\n disableClusteringAtZoom,\n spiderfyOnMaxZoom // Ensure it's updated on prop change\n });\n\n // Re-add event listeners\n Object.entries(clusterEvents).forEach(([eventAsProp, callback]) => {\n const clusterEvent = `cluster${eventAsProp.substring(2).toLowerCase()}`;\n markerClusterGroup.on(clusterEvent, callback);\n });\n\n // Re-add the children markers to the cluster group\n Children.forEach(_c, (child) => {\n // Ensure that the child is a valid React element and has a leaflet layer\n if (React.isValidElement(child) && child.props.leaflet && child.props.leaflet.mapLayer) {\n markerClusterGroup.addLayer(child.props.leaflet.mapLayer);\n }\n });\n\n // Attach to the map context\n if (ctx.map) {\n ctx.map.addLayer(markerClusterGroup);\n }\n\n return () => {\n if (ctx.map) {\n ctx.map.removeLayer(markerClusterGroup); // Clean up when component unmounts\n }\n };\n }, [disableClusteringAtZoom, spiderfyOnMaxZoom]);\n\n // markerClusterGroup._getExpandedVisibleBounds = function () {\n // return markerClusterGroup._map.getBounds();\n // };\n\n // // Initializing event listeners\n // Object.entries(clusterEvents).forEach(([eventAsProp, callback]) => {\n // const clusterEvent = `cluster${eventAsProp.substring(2).toLowerCase()}`;\n // markerClusterGroup.on(clusterEvent, callback);\n // });\n\n return {\n instance: markerClusterGroup,\n context: { ...ctx, layerContainer: markerClusterGroup }\n };\n }\n);\n\nexport default MarkerClusterGroup;\n","const paths = {\n workplanList: '/workplan/list',\n workplanEdit: '/workplan/edit',\n workplanMonitor: '/workplan/monitor',\n workplanReport: '/workplan/report',\n workplanAssignUnit: '/workplan/assignUnit',\n scheduledWorkplan: '/workplan/scheduled'\n // workplanImport: '/workplan/import'\n};\n\nexport default paths;\n","const paths = {\n backlog: '/jobs/backlog',\n import: '/jobs/import',\n board: '/jobs/board',\n report: '/jobs/report',\n workingActivityReport: '/jobs/workingActivityReport'\n};\n\nexport default paths;\n","import * as types from '../types';\n\nexport * from './backlog';\nexport * from './board';\nexport * from './report';\n\nexport const startFetchingJob = (jobId) => ({\n type: types.JOB_FETCH_STARTED,\n payload: { jobId }\n});\nexport const completeFetchingJob = (job) => ({\n type: types.JOB_FETCH_COMPLETED,\n payload: { job }\n});\nexport const failFetchingJob = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOB_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Componente ColorPicker */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un colorPicker genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport React, { useState, useEffect } from 'react';\nimport { Label, Input, FormGroup, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\nimport _ from 'lodash';\nimport { SketchPicker } from 'react-color';\nimport reactCSS from 'reactcss';\n\ninterface Props {\n id: any;\n field: any;\n label: string;\n required: any;\n forceinitialvalue?: string;\n disabled: boolean;\n additionalonchangefunction?: Function;\n}\nconst style = getComputedStyle(document.body);\nconst primary = style.getPropertyValue('--primary').trim();\n// const borderColor =;\nconst ColorPicker = (props: Props) => {\n const {\n id,\n label,\n required,\n field,\n disabled,\n forceinitialvalue = primary,\n additionalonchangefunction\n } = props;\n\n useEffect(() => {\n if (field.value == null || field.value == undefined || field.value.length == 0) {\n field.onChange(forceinitialvalue);\n }\n }, [field.value]);\n\n const [displayColorPicker, setDisplayColorPicker] = useState(false);\n const handleClick = () => {\n setDisplayColorPicker(!displayColorPicker);\n };\n\n const handleClose = () => {\n setDisplayColorPicker(false);\n };\n\n useEffect(() => {\n if (forceinitialvalue) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n const styles = reactCSS({\n default: {\n color: {\n width: '100%',\n margin: '0 auto',\n height: '22px',\n borderRadius: '5px',\n background: `${field.value ?? forceinitialvalue}`\n },\n swatch: {\n // padding: '5px',\n // background: '#fff',\n // borderRadius: '1px',\n // boxShadow: '0 0 0 1px rgba(0,0,0,.1)',\n // display: 'inline-block',\n // cursor: 'pointer'\n padding: '0.438rem 1rem',\n cursor: 'pointer',\n backgroundColor: ' #ffffff',\n backgroundClip: 'padding-box',\n border: `1px solid #d8d6de`,\n borderRadius: '0.357rem'\n },\n popover: {\n position: 'absolute',\n zIndex: '50000'\n },\n cover: {\n position: 'fixed',\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px'\n }\n }\n });\n return (\n \n \n
\n
\n
\n
\n {displayColorPicker ? (\n
\n
\n {\n onChangeFinal(color.hex);\n }}\n disableAlpha={true}\n disabled={disabled}\n presetColors={[\n primary,\n '#D0021B',\n '#F5A623',\n '#F8E71C',\n '#8B572A',\n '#7ED321',\n '#417505',\n '#BD10E0',\n '#9013FE',\n '#4A90E2',\n '#50E3C2',\n '#B8E986',\n '#000000',\n '#4A4A4A',\n '#9B9B9B'\n ]}\n />\n
\n ) : null}\n
\n \n );\n};\n\nColorPicker.defaultProps = {\n required: true,\n disabled: false\n};\n\nexport default ColorPicker;\n","/* -------------------------------------------------------------------------- */\n/* GeofenceShapeDropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente utiliza DropdownInput para generar un GeofenceShapeDropdownInput\n\nimport { omit } from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Icon from '../../../utility/icomoon';\nimport DropdownInput from '../DropdownInput';\n\nconst GeofenceShapeDropdownInput = (props) => {\n const {\n forceinitialvalue = 'C',\n field,\n additionalonchangefunction = (value) => null,\n disabled\n } = props;\n const intl = useIntl();\n const geofenceShapes = [\n { id: 'C', value: 'C', label: 'geofences.shape.C', iconName: 'Circle' },\n { id: 'R', value: 'R', label: 'geofences.shape.R', iconName: 'Square' },\n { id: 'P', value: 'P', label: 'geofences.shape.P', iconName: 'Hexagon' },\n { id: 'U', value: 'U', label: 'geofences.shape.U', iconName: 'TrendingUp' }\n ];\n\n //Reset value with initial when values are loaded from db\n const [resetValue, setResetValue] = useState(Date.now());\n const resetDropdown = () => {\n setResetValue(Date.now());\n };\n\n useEffect(() => {\n if (field.value == null || field.value == undefined || field.value.length == 0) {\n field.onChange(forceinitialvalue);\n }\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue) {\n onChangeFinal(forceinitialvalue);\n }\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n return (\n }\n options={geofenceShapes.map((gs) => {\n return {\n ...gs,\n icon: ,\n label: ,\n label_intl: intl.formatMessage({ id: 'geofences.shape.' + gs.value })\n };\n })}\n />\n );\n};\n\nexport default GeofenceShapeDropdownInput;\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genérico que se utiliza en muchas pantallas de la aplicación.\n\nimport { Controller } from 'react-hook-form';\nimport DropdownInput from '../DropdownInput';\nimport TextInput from '../TextInput';\nimport NumericalInput from '../NumericalInput';\nimport TimeInput from '../TimeInput';\nimport SwitchInput from '../SwitchInput';\nimport Membership from '../Membership';\nimport ContactsDropdown from '../ContactsDropdown';\nimport CustomersDropdown from '../CustomersDropdown';\nimport DropdownCategoriesIcons from '../../screens/vehicleMaintenance/components/dropDownIcons';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport CheckboxInput from '../CheckBoxInput';\nimport LocationClassesDropdownInput from '../LocationClassesDropdownInput';\nimport ColorPicker from '../ColorPicker';\nimport GeofenceShapeDropdownInput from '../GeofenceShapeDropdownInput';\nimport UnitsDropdown from '../UnitsDropdown';\nimport NoticeTypeDropdownInput from 'views/screens/vehicleMaintenance/components/NoticeTypeDropdownInput';\nimport DurationInput from '../DurationInput';\nimport MultiSelectInput from '../MultiSelectInput';\nimport DateInput from '../DateInput';\nimport moment from 'moment';\nimport JobTypeDropdownInput from 'views/screens/Jobs/components/JobTypeDropdownInput';\nimport JobPriorityDropdownInput from '../../screens/Jobs/components/JobPriorityDropdownInput';\nimport JobStatusDropdownInput from 'views/screens/Jobs/components/JobStatusDropdownInput';\nimport UsersDropdown from '../UsersDropdown';\nimport LocationsDropdownInput from '../LocationDropDown';\nimport GeofencesDropdownInput from '../GeofenceDropDown';\nimport TextEditorInput from '../TextEditorInput';\nimport CategoriesDropdownInput from 'views/screens/vehicleMaintenance/components/CategoriesDropdownInput';\nimport FormsDropdown from '../FormsDropdown';\nimport DriversDropdownInput from '../DriverDropDown';\nimport ScheduleDropdown from '../ScheduleDropdown';\nimport RadioButtonsInput from '../RadioButtonInput';\nimport ThemeDropdown from '../ThemeDropdown';\nimport { FormattedMessage } from 'react-intl';\n\ninterface Props {\n input: any;\n control: any;\n change?: any;\n}\n\nconst validateText = (value) =>\n value && value.trim() ? undefined : appIntl().formatMessage({ id: 'common.requiredField' });\n\nconst validate = (value) =>\n value ? undefined : appIntl().formatMessage({ id: 'common.requiredField' });\n\nconst WebtrackCustomInput = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const { input, change, control } = props;\n\n return input.type === 'select' ? (\n (\n \n )}\n />\n ) : input.type === 'multiSelect' ? (\n (\n \n )}\n />\n ) : input.type == 'date' ? (\n (\n \n )}\n />\n ) : input.type === 'text' ? (\n (\n \n )}\n />\n ) : input.type === 'textEditor' ? (\n (\n \n )}\n />\n ) : input.type === 'duration' ? (\n (\n \n )}\n />\n ) : input.type === 'number' ? (\n (\n \n )}\n />\n ) : input.type === 'time' ? (\n (\n \n )}\n />\n ) : input.type === 'colorPicker' ? (\n (\n \n )}\n />\n ) : input.type === 'jobTypeDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'jobPriorityDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'jobStatusDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'locationClassesDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'geofenceShapesDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'locationDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'driverDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'geofenceDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'organizationFormsDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'usersDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'contactsDropdown' ? (\n \n ) : input.type === 'customersDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'unitsDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'scheduleDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'noticeTypeDropdown' ? (\n \n ) : input.type === 'categoriesDropdown' ? (\n \n ) : input.type === 'dropDownCategoriesIcons' ? (\n \n ) : input.type === 'switch' ? (\n (\n \n )}\n />\n ) : input.type === 'radioButtons' ? (\n (\n \n )}\n />\n ) : input.type === 'checkbox' ? (\n (\n \n )}\n />\n ) : input.type === 'checkbox' ? (\n (\n \n )}\n />\n ) : input.type === 'membership' ? (\n \n ) : input.type === 'unitThemeDropdown' ? (\n (\n }\n placeholder={\n input.placeholder ? (\n input.placeholder\n ) : (\n \n )\n }\n forceinitialvalue={input.initialValue}\n required\n />\n )}\n />\n ) : input.type === 'custom' ? (\n (\n {\n change('validationHack', Date.now());\n }}\n label={input.label ? appIntl().formatMessage({ id: input.label }) : null}\n {...input}\n />\n )}\n />\n ) : input.type === 'component' ? (\n
{input.component}
\n ) : null;\n};\n\nWebtrackCustomInput.defaultProps = {\n input: {}\n};\n\nexport default WebtrackCustomInput;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/customer';\n\nexport const getCustomersListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.customer',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveCustomerService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.customer',\n action: request.customerId ? 'Edit' : 'Create',\n name: request.customerName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteCustomerService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.customerName}`,\n object: 'customers.customer',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const importCustomersService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.importCustomer',\n action: 'Get',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importCustomers`, request);\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport { isNullOrUndefined } from 'utility/Utils';\n\nexport interface MaintenancePlansFormatted\n extends Omit<\n types.MaintenancePlans,\n 'maintenanceRangesByOdometer' | 'maintenanceRangesByHourMeter'\n > {\n maintenanceRangesByOdometer: {\n odometer: number;\n title: string;\n description: string;\n maintenanceRangeId: number;\n maintenanceLineId: number;\n }[];\n maintenanceRangesByHourMeter: {\n odometer: number;\n title: string;\n description: string;\n maintenanceRangeId: number;\n maintenanceLineId: number;\n }[];\n}\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n isSelected: false,\n ...state[maintenanceLineId],\n ...entities[maintenanceLineId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n const { oldId, maintenanceLine } = action.payload;\n const newState = omit(state, oldId);\n newState[maintenanceLine.maintenanceLineId] = {\n ...state[oldId],\n ...maintenanceLine,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MAINTENANCE_LINE_EDIT_COMPLETED: {\n const maintenanceLine = action.payload;\n return {\n ...state,\n [maintenanceLine.maintenanceLineId]: {\n ...omit(state[maintenanceLine.maintenanceLineId], ['oldMaintenanceLine']),\n ...omit(maintenanceLine, ['oldMaintenanceLine']),\n isConfirmed: true\n }\n };\n }\n\n case types.MAINTENANCE_LINE_COPY_COMPLETED: {\n const maintenanceLine = action.payload;\n const newState = { ...state };\n newState[maintenanceLine.maintenanceLineId] = {\n isSelected: false,\n ...maintenanceLine,\n isConfirmed: true\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n const maintenanceLine = action.payload;\n const newState = { ...state };\n newState[maintenanceLine.maintenanceLineId] = {\n isSelected: false,\n ...maintenanceLine,\n isConfirmed: false\n };\n return newState;\n }\n case types.MAINTENANCE_LINE_EDIT_STARTED: {\n const maintenanceLine = action.payload;\n return {\n ...state,\n [maintenanceLine.maintenanceLineId]: {\n ...state[maintenanceLine.maintenanceLineId],\n oldMaintenanceLine: state[maintenanceLine.maintenanceLineId],\n ...maintenanceLine,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n const { oldMaintenanceLine } = action.payload;\n return {\n ...state,\n [oldMaintenanceLine.maintenanceLineId]: {\n ...omit(state[oldMaintenanceLine.maintenanceLineId], ['oldMaintenanceLine']),\n ...oldMaintenanceLine,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n const { maintenanceLineId } = action.payload;\n return omit(state, maintenanceLineId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MAINTENANCE_LINE_SELECTED: {\n const maintenanceLineId = action.payload;\n const newState = {\n ...state,\n [maintenanceLineId]: {\n ...state[maintenanceLineId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MAINTENANCE_LINE_DESELECTED: {\n const maintenanceLineId = action.payload;\n return {\n ...state,\n [maintenanceLineId]: {\n ...state[maintenanceLineId],\n isSelected: false\n }\n };\n }\n\n case types.MAINTENANCE_LINES_ALL_SELECTED: {\n const maintenanceLineIds = action.payload;\n const newState = { ...state };\n if (maintenanceLineIds.length == 0) {\n forEach(state, (maintenanceLine: any, maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...maintenanceLine,\n isSelected: true\n };\n });\n } else {\n maintenanceLineIds.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...state[maintenanceLineId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MAINTENANCE_LINES_ALL_DESELECTED: {\n const maintenanceLineIds = action.payload;\n const newState = { ...state };\n if (maintenanceLineIds.length == 0) {\n forEach(state, (maintenanceLine: any, maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...maintenanceLine,\n isSelected: false\n };\n });\n } else {\n maintenanceLineIds.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...state[maintenanceLineId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n const { oldId, maintenanceLine } = action.payload;\n return state.map((maintenanceLineId) =>\n maintenanceLineId === oldId ? maintenanceLine.maintenanceLineId : maintenanceLineId\n );\n }\n\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n const { maintenanceLineId } = action.payload;\n return state.filter((maintenanceLineIdState) => maintenanceLineIdState !== maintenanceLineId);\n }\n\n //CASE ADD STARTED\n case types.MAINTENANCE_LINE_COPY_COMPLETED:\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n const maintenanceLine = action.payload;\n return [...state, maintenanceLine.maintenanceLineId];\n }\n\n //CASE ADD FAILED\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((maintenanceLineIdState) => maintenanceLineIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_FETCH_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_ADD_COMPLETED:\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_EDIT_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_EDIT_COMPLETED:\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_REMOVE_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED:\n case types.MAINTENANCE_LINE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINES_FETCH_STARTED:\n case types.MAINTENANCE_LINES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_ADD_STARTED:\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_EDIT_STARTED:\n case types.MAINTENANCE_LINE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_REMOVE_STARTED:\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst maintenanceLines = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default maintenanceLines;\n\n//Own state\nexport const getOwnState = (state) => state.maintenanceLines;\n\n//Information\nexport const getMaintenanceLine = (\n state,\n maintenanceLineId\n): MaintenancePlansFormatted | undefined => {\n const maintenanceLine = getOwnState(state).byId[maintenanceLineId];\n if (maintenanceLine) return maintenanceLine;\n else return undefined;\n};\nexport const getMaintenanceLinesList = (state): MaintenancePlansFormatted[] =>\n getOwnState(state)\n .order.map((id) => getMaintenanceLine(state, id))\n .filter((maintenanceLine) => maintenanceLine.maintenanceLineStatus > 0);\n\nexport const getMaintenanceLinesListByMembership = (\n state: any,\n membership: DefaultFilters | undefined,\n typeId: types.MaintenanceNoticeTypes = types.MaintenanceNoticeTypes.MaintenanceLinesByOdometer\n) => {\n //Se filtra por membership\n return getMaintenanceLinesList(state).filter(\n (maintenanceLine) =>\n membership &&\n (!membership.operatorId || membership.operatorId === maintenanceLine.operatorId) &&\n (!membership.organizationId ||\n membership.organizationId === maintenanceLine.organizationId) &&\n (!membership.divisionId || membership.divisionId === maintenanceLine.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === maintenanceLine.subdivisionId) &&\n (isNullOrUndefined(maintenanceLine?.maintenanceNoticeTypeId)\n ? true\n : maintenanceLine.maintenanceNoticeTypeId === typeId)\n );\n};\n\nexport const getMaintenanceLinesListBySelectedDivision = (state, membership) => {\n //Se filtra por divisionId\n if (membership.divisionId) {\n return getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.divisionId === membership.divisionId\n );\n }\n //Si no se ha seleccionado una división se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedMaintenanceLines = (state) => {\n const selectedMaintenanceLines = getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedMaintenanceLines.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedMaintenanceLines.length > 0) return selectedMaintenanceLines;\n};\n\nexport const getSelectedMaintenanceLine = (state) => {\n const selectedMaintenanceLines = getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedMaintenanceLines.length === 1) return selectedMaintenanceLines[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListMaintenanceLines = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListMaintenanceLines = (state) => getOwnState(state).isFetchingList;\nexport const isAddingMaintenanceLine = (state) => getOwnState(state).isAdding;\nexport const isEditingMaintenanceLine = (state) => getOwnState(state).isEditing;\nexport const isRemovingMaintenanceLine = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListMaintenanceLinesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListMaintenanceLinesErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingMaintenanceLineErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingMaintenanceLineErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingMaintenanceLineErrors = (state) => getOwnState(state).errorRemoving;\n","/* -------------------------------------------------------------------------- */\n/* Componente RadioButtons */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Radio Buttons Input genérico que se utiliza en muchas pantallas de la aplicación.\nimport { useEffect } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { FormGroup, Col, CustomInput, Label } from 'reactstrap';\n\ninterface Props {\n field: any;\n fieldstate: any;\n required?: any;\n errorMessage?: any;\n errorinvalidmessage?: any;\n errorvalidatemessage?: any;\n radioButtons: any[];\n label?: any;\n isInModal?: boolean;\n additionalonchangefunction?: Function;\n}\n\nconst RadioButtonsInput = (props: Props) => {\n const {\n field,\n fieldstate,\n required,\n errorMessage,\n errorinvalidmessage,\n errorvalidatemessage,\n radioButtons,\n label,\n isInModal,\n additionalonchangefunction\n } = props;\n\n useEffect(() => {\n if (field.value && additionalonchangefunction) additionalonchangefunction(field.value);\n }, [field.value]);\n\n return (\n \n {label && (\n \n )}\n {radioButtons?.map((radioButton, i) => (\n \n {\n field.onChange(event.target.id);\n }}\n />\n \n ))}\n {fieldstate.error && fieldstate.error.type === 'required' ? (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'pattern' ? (\n
\n {fieldstate.error?.message || errorinvalidmessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'validate' ? (\n
\n {fieldstate.error?.message || errorvalidatemessage || (\n \n )}\n
\n ) : (\n ''\n )}\n
\n );\n};\n\nRadioButtonsInput.defaultProps = {\n radioButtons: [],\n boolean: false\n};\n\nexport default RadioButtonsInput;\n","import forEach from 'lodash/forEach';\nimport { isNaNOrNullable, parseToNumber } from 'utility/Utils';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { timeInSeconds } from 'utility/timeUtils/timeInSeconds';\n// Adds description to one schedule\n// returns schedule object\nexport const addScheduleDescription = (schedule, intl) => {\n const isBitSet = (b, pos) => (b & (1 << pos)) !== 0;\n const relativeIntervalDay = {\n 1: () => intl.formatMessage({ id: 'schedules.sunday' }),\n 2: () => intl.formatMessage({ id: 'schedules.monday' }),\n 3: () => intl.formatMessage({ id: 'schedules.tuesday' }),\n 4: () => intl.formatMessage({ id: 'schedules.wednesday' }),\n 5: () => intl.formatMessage({ id: 'schedules.thursday' }),\n 6: () => intl.formatMessage({ id: 'schedules.friday' }),\n 7: () => intl.formatMessage({ id: 'schedules.saturday' })\n };\n const frequencyType = {\n 1: () => intl.formatMessage({ id: 'schedules.oneTime' }),\n 4: () =>\n schedule.frequencyInterval > 1\n ? intl.formatMessage({ id: 'schedules.every' }) +\n schedule.frequencyInterval +\n intl.formatMessage({ id: 'schedules.days' })\n : intl.formatMessage({ id: 'schedules.everyDay' }),\n 8: () => {\n var count = 0;\n var sDays = '';\n forEach([...Array(7).keys()], (value) => {\n if (isBitSet(schedule.frequencyInterval, value)) {\n if (sDays != '') sDays += ', ';\n sDays += relativeIntervalDay[value + 1]();\n count++;\n }\n });\n return (\n (count > 1\n ? intl.formatMessage({ id: 'schedules.theDays' })\n : intl.formatMessage({ id: 'schedules.the' })) +\n (count === 2 ? sDays.replace(',', ' y ') : sDays) +\n intl.formatMessage({ id: 'schedules.everySmall' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.weeks' })\n : intl.formatMessage({ id: 'schedules.week' }))\n );\n },\n 16: () =>\n intl.formatMessage({ id: 'schedules.theDay' }) +\n schedule.frequencyInterval +\n intl.formatMessage({ id: 'schedules.ofEach' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.months' })\n : intl.formatMessage({ id: 'schedules.month' })),\n 32: () =>\n ({\n 1: () => intl.formatMessage({ id: 'schedules.relativeMonth0' }),\n 2: () => intl.formatMessage({ id: 'schedules.relativeMonth1' }),\n 4: () => intl.formatMessage({ id: 'schedules.relativeMonth2' }),\n 8: () => intl.formatMessage({ id: 'schedules.relativeMonth3' }),\n 16: () => intl.formatMessage({ id: 'schedules.relativeMonth4' })\n }[schedule.frequencyRelativeInterval]() +\n ' ' +\n relativeIntervalDay[schedule.frequencyInterval]() +\n intl.formatMessage({ id: 'schedules.ofEach' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.months' })\n : intl.formatMessage({ id: 'schedules.month' })))\n };\n const frequencyDescription = frequencyType[schedule.frequencyType]();\n return {\n ...schedule,\n frequencyDescription\n };\n};\n\n// Adds appropiate descriptions to a list of schedules\n// returns array of schedule objects\nexport const addSchedulesDescription = (schedulesData, intl) =>\n schedulesData.map((schedules) => addScheduleDescription(schedules, intl));\n\n//Lista de día de la semana\n//Útil para .map en diferentes contextos\nexport const daysList = [\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n 'sunday'\n];\n\nexport const msToTime = (duration: unknown): string => {\n const parsed = parseToNumber(duration);\n\n if (!parsed) return '';\n\n const milliseconds = Math.floor((parsed % 1000) / 100),\n seconds = Math.floor((parsed / 1000) % 60),\n minutes = Math.floor((parsed / (1000 * 60)) % 60),\n hours = Math.floor((parsed / (1000 * 60 * 60)) % 24);\n\n const hoursT = hours < 10 ? '0' + hours : hours;\n const minutesT = minutes < 10 ? '0' + minutes : minutes;\n const secondsT = seconds < 10 ? '0' + seconds : seconds;\n\n return hoursT + ':' + minutesT + ':' + secondsT + '.' + milliseconds;\n};\n\nexport const minutesToMilliseconds = (min: unknown) => {\n const minutes = parseToNumber(min);\n\n if (!minutes) return null;\n\n const timeAsMilliseconds = minutes * timeInSeconds.minute * 1000;\n\n return timeAsMilliseconds;\n};\n\nexport const minutesToTime = (min: unknown): string => {\n const timeAsMilliseconds = minutesToMilliseconds(min);\n\n return msToTime(timeAsMilliseconds);\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MODULES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((moduleId) => {\n newState[moduleId] = {\n isSelected: false,\n ...entities[moduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((moduleId) => {\n newState[moduleId] = {\n isSelected: false,\n ...entities[moduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MODULE_FETCH_COMPLETED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...state[module.deviceId],\n ...module,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.MODULE_ADD_COMPLETED: {\n const { oldId, module } = action.payload;\n const newState = omit(state, oldId);\n newState[module.deviceId] = {\n ...state[oldId],\n ...module,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MODULE_EDIT_COMPLETED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...omit(state[module.deviceId], ['oldModule']),\n ...omit(module, ['oldModule']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MODULE_ADD_STARTED: {\n const module = action.payload;\n const newState = { ...state };\n newState[module.deviceId] = {\n isSelected: false,\n ...module,\n isConfirmed: false\n };\n return newState;\n }\n case types.MODULE_EDIT_STARTED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...state[module.deviceId],\n oldModule: state[module.deviceId],\n ...module,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MODULE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MODULE_EDIT_FAILED: {\n const oldModule = action.payload;\n return {\n ...state,\n [oldModule.deviceId]: {\n ...omit(state[oldModule.deviceId], ['oldModule']),\n ...oldModule,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MODULE_REMOVE_COMPLETED: {\n const { moduleId } = action.payload;\n return omit(state, moduleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MODULE_SELECTED: {\n const moduleId = action.payload;\n const newState = {\n ...state,\n [moduleId]: {\n ...state[moduleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MODULE_DESELECTED: {\n const moduleId = action.payload;\n return {\n ...state,\n [moduleId]: {\n ...state[moduleId],\n isSelected: false\n }\n };\n }\n\n case types.MODULES_ALL_SELECTED: {\n const moduleIds = action.payload;\n const newState = { ...state };\n if (moduleIds.length == 0) {\n forEach(state, (module: any, moduleId) => {\n newState[moduleId] = {\n ...module,\n isSelected: true\n };\n });\n } else {\n moduleIds.forEach((moduleId) => {\n newState[moduleId] = {\n ...state[moduleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MODULES_ALL_DESELECTED: {\n const moduleIds = action.payload;\n const newState = { ...state };\n if (moduleIds.length == 0) {\n forEach(state, (module: any, moduleId) => {\n newState[moduleId] = {\n ...module,\n isSelected: false\n };\n });\n } else {\n moduleIds.forEach((moduleId) => {\n newState[moduleId] = {\n ...state[moduleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MODULES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MODULE_FETCH_COMPLETED: {\n const module = action.payload;\n return uniq([...state, module.deviceId]);\n }\n\n case types.MODULE_ADD_COMPLETED: {\n const { oldId, module } = action.payload;\n return state.map((deviceId) => (deviceId === oldId ? module.deviceId : deviceId));\n }\n\n case types.MODULE_REMOVE_COMPLETED: {\n const { moduleId } = action.payload;\n return state.filter((moduleIdState) => moduleIdState !== moduleId);\n }\n\n //CASE ADD STARTED\n case types.MODULE_ADD_STARTED: {\n const module = action.payload;\n return [...state, module.deviceId];\n }\n\n //CASE ADD FAILED\n case types.MODULE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((moduleIdState) => moduleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MODULES_FETCH_STARTED: {\n return true;\n }\n case types.MODULES_FETCH_COMPLETED:\n case types.MODULES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MODULES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.MODULES_PARTIAL_FETCH_COMPLETED:\n case types.MODULES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_FETCH_STARTED: {\n return true;\n }\n case types.MODULE_FETCH_COMPLETED:\n case types.MODULE_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_ADD_STARTED: {\n return true;\n }\n case types.MODULE_ADD_COMPLETED:\n case types.MODULE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_EDIT_STARTED: {\n return true;\n }\n case types.MODULE_EDIT_COMPLETED:\n case types.MODULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_REMOVE_STARTED: {\n return true;\n }\n case types.MODULE_REMOVE_COMPLETED:\n case types.MODULE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MODULES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULES_FETCH_STARTED:\n case types.MODULES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_FETCH_STARTED:\n case types.MODULE_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_ADD_STARTED:\n case types.MODULE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_EDIT_STARTED:\n case types.MODULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_REMOVE_STARTED:\n case types.MODULE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst dirty = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_DIRTY: {\n return action.payload;\n }\n default: {\n return state;\n }\n }\n};\n\nconst modules = combineReducers({\n byId,\n order,\n isFetching,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n dirty\n});\n\nexport default modules;\n\n//Own state\nexport const getOwnState = (state) => state.modules;\n\n//Information\nexport const getModule = (state, moduleId) => getOwnState(state).byId[moduleId];\nexport const getModulesList = (state) =>\n getOwnState(state)\n .order.map((id) => getModule(state, id))\n .filter((device) => device.deviceStatus > 0);\nexport const getModulesListByMembership = (state, membership) =>\n getModulesList(state).filter(\n (module) =>\n membership &&\n (!membership.operatorId || membership.operatorId === module.operatorId) &&\n (!membership.organizationId || membership.organizationId === module.organizationId) &&\n (!membership.divisionId || membership.divisionId === module.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === module.subdivisionId)\n );\nexport const getSelectedModules = (state) => {\n const selectedModules = getModulesList(state).filter((module) => module.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedModules.length === 0) return null;\n //Si se selecciona más de cero se devuelve el arreglo de los seleccionados\n if (selectedModules.length > 0) return selectedModules;\n};\n\nexport const getSelectedModule = (state) => {\n const selectedModules = getModulesList(state).filter((module) => {\n return module.isSelected;\n });\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedModules.length === 1) return selectedModules[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isDirty = (state) => getOwnState(state).dirty;\n\n//Status of sagas\nexport const isFetchingModule = (state) => getOwnState(state).isFetching;\nexport const isPartialFetchingListModules = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListModules = (state) => getOwnState(state).isFetchingList;\nexport const isAddingModule = (state) => getOwnState(state).isAdding;\nexport const isEditingModule = (state) => getOwnState(state).isEditing;\nexport const isRemovingModule = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingModuleErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListModulesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingModuleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingModuleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingModuleErrors = (state) => getOwnState(state).errorRemoving;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/sim';\n\ninterface SimFilters {\n operatorId?: number;\n organizationId?: number;\n unitId?: number;\n userFetchDate?: Date;\n}\n\ninterface ImportSIMsFilters {\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n sims?: String;\n}\n\ninterface SimCardFilters {\n comparationOperator: string;\n limit?: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivision?: number;\n unitId?: number;\n countryId?: number;\n mobileOperatorId?: number;\n iccid?: string;\n locationStatus?: number;\n cellularNumber?: string;\n simCardId?: number;\n simCardStatus?: number;\n}\n\nexport const getSimsListService = (\n request: SimFilters | DefaultFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getSimsListDropdownService = (request: SimFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/dropdown`, request);\n};\n\nexport const importSIMsService = async (\n request: ImportSIMsFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importSIMs`, request);\n};\n\nexport const getInactiveSimsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getInactive`, request);\n};\n\nexport const getSimsListByFiltersService = (\n request: SimCardFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getByFilters`, request);\n};\n\nexport const updateSimStatusService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateStatus`, request);\n};\n\nexport const getSimByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","import { FC, Fragment } from 'react';\nimport { ArrowLeft, ArrowRight } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, IntlShape, useIntl } from 'react-intl';\nimport { Button, Col, Form, Row } from 'reactstrap';\nimport ContactsDropdown from 'views/formComponents/ContactsDropdown';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport MultiSelectInput from 'views/formComponents/MultiSelectInput';\nimport SwitchInput from 'views/formComponents/SwitchInput';\nimport RadioButtonInput from '../../../../formComponents/RadioButtonInput';\nimport { globalNotificationFrecs, routesEvents } from '../../utils';\nimport { useAssignmentContext } from './RoutesAssignUnitContext';\n\nexport enum AssignmentTypes {\n ByDate = 1,\n BySchedule = 2\n}\n\nexport enum AlreadyLeftTheOrigin {\n Yes = 3,\n No = 4\n}\n\nexport type AssignmentTypeFormValues = {\n assignmentType: AssignmentTypes;\n alreadyLeftTheOrigin: AlreadyLeftTheOrigin | undefined;\n globalNotificationFrec: string;\n useSharedLink: boolean;\n notificationEvents: string;\n globalNotificationEmails: string;\n notificationEmails: string;\n};\n\nconst SelectAssignmentTypeTab: FC = () => {\n const { stepper, updateAssignmentType } = useAssignmentContext();\n const { control, handleSubmit, watch } = useForm();\n const intl: IntlShape = useIntl();\n\n const assignmentType = Number(watch('assignmentType') ?? '1');\n const globalNotificationEmails = watch('globalNotificationEmails');\n const notificationEmails = watch('notificationEmails');\n\n return (\n \n
\n \n \n (\n ,\n value: 1\n },\n { label: , value: 2 }\n ]}\n />\n )}\n />\n \n \n
\n {assignmentType == 1 && (\n <>\n \n \n (\n }\n radioButtons={[\n {\n label: `${intl.formatMessage({ id: 'common.yes' })} (${intl.formatMessage(\n {\n id: 'routes.monitoredInfo'\n }\n )})`,\n value: 3\n },\n {\n label: ,\n value: 4\n }\n ]}\n />\n )}\n />\n \n \n
\n \n )}\n \n \n

\n \n

\n \n \n \n \n \n {globalNotificationEmails?.length > 0 && (\n (\n ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n }))}\n label={}\n />\n )}\n />\n )}\n \n \n (\n }\n />\n )}\n />\n \n
\n
\n \n \n

\n \n

\n \n \n \n \n \n {notificationEmails?.length > 0 && (\n (\n ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n }))}\n label={}\n />\n )}\n />\n )}\n \n
\n
\n \n \n \n \n \n \n {\n updateAssignmentType({\n assignmentType: Number(values.assignmentType),\n // @ts-ignore parse string to number\n alreadyLeftTheOrigin: Number(values.alreadyLeftTheOrigin),\n globalNotificationFrec: values.globalNotificationFrec,\n useSharedLink: values.useSharedLink,\n notificationEvents: values.notificationEvents,\n globalNotificationEmails: values.globalNotificationEmails,\n notificationEmails: values.notificationEmails\n });\n stepper?.next();\n })}\n >\n \n \n \n \n \n
\n
\n
\n );\n};\n\nexport default SelectAssignmentTypeTab;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesAssignments';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED: {\n const { orderByDate, entitiesByDate, orderBySchedule, entitiesBySchedule } = action.payload;\n const newState = { ...state };\n orderByDate.forEach((id) => {\n newState[id] = {\n isSelected: false,\n ...state[id],\n ...entitiesByDate[id],\n isConfirmed: true\n };\n });\n orderBySchedule.forEach((id) => {\n newState[id] = {\n isSelected: false,\n ...state[id],\n ...entitiesBySchedule[id],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ROUTES_ASSIGNMENT_EDIT_COMPLETED: {\n const { routeAssignmentId, assignment } = action.payload;\n return {\n ...state,\n [routeAssignmentId]: {\n ...omit(state[routeAssignmentId], ['oldAssignment']),\n ...omit(assignment, ['oldAssignment']),\n isConfirmed: true\n }\n };\n }\n\n case types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED: {\n const { orderByDate, entitiesByDate } = action.payload;\n const newState = {};\n orderByDate.forEach((id) => {\n newState[id] = {\n isSelected: false,\n ...state[id],\n ...entitiesByDate[id],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //TYPES STARTED EDIT\n case types.ROUTES_ASSIGNMENT_EDIT_STARTED: {\n const assignment = action.payload;\n return {\n ...state,\n [assignment.routeAssignmentId]: {\n ...state[assignment.routeAssignmentId],\n oldAssignment: state[assignment.routeAssignmentId],\n ...omit(assignment, ['routeAssignmentId']),\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED EDIT\n case types.ROUTES_ASSIGNMENT_EDIT_FAILED: {\n const { routeAssignmentId, oldAssignment } = action.payload;\n return {\n ...state,\n [routeAssignmentId]: {\n ...omit(state[routeAssignmentId], ['oldAssignment']),\n ...oldAssignment,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED: {\n const { routeAssignmentId } = action.payload;\n return omit(state, routeAssignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH AND REMOVE\n case types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED: {\n const { orderByDate, orderBySchedule } = action.payload;\n return union(orderByDate, orderBySchedule);\n }\n\n case types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED: {\n const { orderByDate, orderBySchedule } = action.payload;\n return union(orderByDate);\n }\n\n case types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED: {\n const { routeAssignmentId } = action.payload;\n return state.filter((routeAssignmentIdState) => routeAssignmentIdState !== routeAssignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingAssignments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_ASSIGNMENTS_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED:\n case types.ROUTES_ASSIGNMENTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_ASSIGNMENT_EDIT_STARTED: {\n return true;\n }\n case types.ROUTES_ASSIGNMENT_EDIT_COMPLETED:\n case types.ROUTES_ASSIGNMENT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_ASSIGNMENT_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED:\n case types.ROUTES_ASSIGNMENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isImportingAssignments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_ASSIGNMENTS_IMPORT_STARTED: {\n return true;\n }\n case types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED:\n case types.ROUTES_ASSIGNMENTS_IMPORT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAssignments = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_ASSIGNMENTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_ASSIGNMENTS_FETCH_STARTED:\n case types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_ASSIGNMENT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_ASSIGNMENT_EDIT_STARTED:\n case types.ROUTES_ASSIGNMENT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_ASSIGNMENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_ASSIGNMENT_REMOVE_STARTED:\n case types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesAssignments = combineReducers({\n byId,\n order,\n isFetchingAssignments,\n isEditing,\n isRemoving,\n isImportingAssignments,\n errorFetchingAssignments,\n errorEditing,\n errorRemoving\n});\n\nexport default routesAssignments;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesAssignments;\n\n//Information\nexport const getRoutesAssignment = (state, visitId) => {\n return getOwnState(state).byId[visitId];\n};\nexport const getRoutesAssignmentsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesAssignment(state, id));\nexport const getRoutesAssignmentsListByType = (state, typeId) =>\n getRoutesAssignmentsList(state).filter((assignment) => assignment.typeId === typeId);\n\n//Status of sagas\nexport const isFetchingRoutesAssignments = (state) => getOwnState(state).isFetchingAssignments;\nexport const isEditingRoutesAssignments = (state) => getOwnState(state).isEditing;\nexport const isRemovingRoutesAssignments = (state) => getOwnState(state).isRemoving;\nexport const isImportingRouteAssignments = (state) => getOwnState(state).isImportingAssignments;\n\n//Errors\nexport const getFetchingRoutesAssignmentsErrors = (state) =>\n getOwnState(state).errorFetchingAssignments;\nexport const getEditingRoutesAssignmentsErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingRoutesAssignmentsErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport { type } from 'os';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.PROTOCOLS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((protocolId) => {\n newState[protocolId] = {\n isSelected: false,\n ...state[protocolId],\n ...entities[protocolId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((protocolId) => {\n newState[protocolId] = {\n isSelected: false,\n ...state[protocolId],\n ...entities[protocolId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.PROTOCOLS_ADD_COMPLETED: {\n const { oldId, protocol } = action.payload;\n const newState = omit(state, oldId);\n newState[protocol.protocolId] = {\n ...state[oldId],\n ...protocol,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.PROTOCOLS_EDIT_COMPLETED: {\n const protocol = action.payload;\n return {\n ...state,\n [protocol.protocolId]: {\n ...omit(state[protocol.protocolId], ['oldPROTOCOLS']),\n ...omit(protocol, ['oldPROTOCOLS']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.PROTOCOLS_ADD_STARTED: {\n const protocol = action.payload;\n const newState = { ...state };\n newState[protocol.protocolId] = {\n isSelected: false,\n isConfirmed: false\n };\n return newState;\n }\n case types.PROTOCOLS_EDIT_STARTED: {\n const protocol = action.payload;\n return {\n ...state,\n [protocol.protocolId]: {\n ...state[protocol.protocolId],\n oldProtocol: state[protocol.protocolId],\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.PROTOCOLS_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.PROTOCOLS_EDIT_FAILED: {\n const { oldProtocol } = action.payload;\n return {\n ...state,\n [oldProtocol.protocolId]: {\n ...omit(state[oldProtocol.protocolId], ['oldPROTOCOLS']),\n ...oldProtocol,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.PROTOCOLS_REMOVE_COMPLETED: {\n const { protocolId } = action.payload;\n return omit(state, protocolId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.PROTOCOLS_SELECTED: {\n const protocolId = action.payload;\n const newState = {\n ...state,\n [protocolId]: {\n ...state[protocolId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.PROTOCOLS_DESELECTED: {\n const protocolId = action.payload;\n return {\n ...state,\n [protocolId]: {\n ...state[protocolId],\n isSelected: false\n }\n };\n }\n\n case types.PROTOCOLS_ALL_SELECTED: {\n const protocolIds = action.payload;\n const newState = { ...state };\n if (protocolIds.length == 0) {\n forEach(state, (protocol: any, protocolId) => {\n newState[protocolId] = {\n ...protocol,\n isSelected: true\n };\n });\n } else {\n protocolIds.forEach((protocolId) => {\n newState[protocolId] = {\n ...state[protocolId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.PROTOCOLS_ALL_DESELECTED: {\n const protocolIds = action.payload;\n const newState = { ...state };\n if (protocolIds.length == 0) {\n forEach(state, (protocol: any, protocolId) => {\n newState[protocolId] = {\n ...protocol,\n isSelected: false\n };\n });\n } else {\n protocolIds.forEach((protocolId) => {\n newState[protocolId] = {\n ...state[protocolId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.PROTOCOLS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.PROTOCOLS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.PROTOCOLS_ADD_COMPLETED: {\n const { oldId, protocol } = action.payload;\n return state.map((protocolId) => (protocolId === oldId ? protocol.protocolId : protocolId));\n }\n\n case types.PROTOCOLS_REMOVE_COMPLETED: {\n const { protocolId } = action.payload;\n return state.filter((protocolIdState) => protocolIdState !== protocolId);\n }\n\n //CASE ADD STARTED\n case types.PROTOCOLS_ADD_STARTED: {\n const protocol = action.payload;\n return [...state, protocol.protocolId];\n }\n\n //CASE ADD FAILED\n case types.PROTOCOLS_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((protocolIdState) => protocolIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_FETCH_STARTED: {\n return true;\n }\n case types.PROTOCOLS_FETCH_COMPLETED:\n case types.PROTOCOLS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_COMPLETED:\n case types.PROTOCOLS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_ADD_STARTED: {\n return true;\n }\n case types.PROTOCOLS_ADD_COMPLETED:\n case types.PROTOCOLS_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_EDIT_STARTED: {\n return true;\n }\n case types.PROTOCOLS_EDIT_COMPLETED:\n case types.PROTOCOLS_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_REMOVE_STARTED: {\n return true;\n }\n case types.PROTOCOLS_REMOVE_COMPLETED:\n case types.PROTOCOLS_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_FETCH_STARTED:\n case types.PROTOCOLS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_PARTIAL_FETCH_STARTED:\n case types.PROTOCOLS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_ADD_STARTED:\n case types.PROTOCOLS_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_EDIT_STARTED:\n case types.PROTOCOLS_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROTOCOLS_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.PROTOCOLS_REMOVE_STARTED:\n case types.PROTOCOLS_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.PROTOCOLS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst protocols: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched\n});\n\nconst protocolsPersistedConfig = {\n key: 'protocols',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order']\n // blackList: [],\n};\n\nexport default persistReducer(protocolsPersistedConfig, protocols);\n// export default drivers;\n\nexport const getOwnState = (state) => state.protocols;\n\nexport const getProtocol = (state, protocolId): types.Protocol | null =>\n getOwnState(state).byId[protocolId] ?? null;\n\nexport const getProtocolsList = (state): types.Protocol[] =>\n getOwnState(state).order.map((id) => getProtocol(state, id));\n\nexport const getProtocolsListByMembership = (state, membership) => {\n return getProtocolsList(state).filter(\n (protocol) =>\n membership &&\n (!membership.operatorId || membership.operatorId === protocol.operatorId) &&\n (!membership.organizationId ||\n membership.organizationId === protocol.organizationId ||\n !protocol.organizationId) &&\n (!membership.divisionId ||\n membership.divisionId === protocol.divisionId ||\n !protocol.divisionId) &&\n (!membership.subdivisionId ||\n membership.subdivisionId === protocol.subdivisionId ||\n !protocol.subdivisionId)\n );\n};\n\n//Status of sagas\nexport const isPartialFetchingListProtocols = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListProtocols = (state) => getOwnState(state).isFetchingList;\nexport const haveProtocolsBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingProtocol = (state) => getOwnState(state).isAdding;\nexport const isEditingProtocol = (state) => getOwnState(state).isEditing;\nexport const isRemovingProtocol = (state) => getOwnState(state).isRemoving;\nexport const isCopyingProtocol = (state) => getOwnState(state).isCopying;\n\n//Errors\nexport const getPartialFetchingListProtocolsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListProtocolsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingProtocolErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingProtocolErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingProtocolErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n listServiceClass: 'UP017',\n addServiceClass: 'UP018',\n editServiceClass: 'UP019',\n deleteServiceClass: 'UP020'\n};\n\nexport default permissions;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRouteAssignmentsListService = async (\n request: any,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAssignments`, request);\n};\n\nexport const getAssignedUnitsListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAssignedUnits`, request);\n};\n\nexport const saveAssignmentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.unitName}`,\n object: 'routes.assignmentOfUnit',\n action: request.routeAssignmentId ? 'Edit' : 'Create',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveAssignment`, request);\n};\n\nexport const deleteAssignmentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.unitName}`,\n object: 'routes.assignmentOfUnit',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteAssignment`, request);\n};\n\nexport type RouteAssignmentsRequest = {\n routeAssignments: string | null;\n completionType: number | null;\n alreadyLeftTheOrigin: boolean | null;\n automaticMonitoringWhenArrivingAtOrigin?: boolean | null;\n assignmentDate?: string | null;\n useUnitPrivateCode?: boolean;\n useRoutePrivateCode?: boolean;\n useCustomerPrivateCode?: boolean;\n};\n\nexport const importRouteAssignmentsService = async (\n request: RouteAssignmentsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importAssignments`, request);\n};\n","const paths = {\n listEmailNotifications: '/notifications/email',\n listConsoleNotifications: '/notifications/console',\n listWebServiceNotifications: '/notifications/webService',\n listSystemNotifications: '/notifications/system',\n listNotifications: '/notifications/:screenType'\n};\n\nexport default paths;\n","import * as types from '../../types/report';\n\nexport const startFetchingJobsReport = (filters = {}) => ({\n type: types.JOBS_REPORT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingJobsReport = (\n indicators,\n entities,\n order,\n entitiesByUser,\n orderByUser\n) => ({\n type: types.JOBS_REPORT_FETCH_COMPLETED,\n payload: {\n indicators,\n entities,\n order,\n entitiesByUser,\n orderByUser\n }\n});\nexport const failFetchingJobsReport = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOBS_REPORT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRouteCommentsListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getComments`, request);\n};\n\nexport const saveCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.comment',\n action: request.routeCommentId ? 'Edit' : 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveComment`, request);\n};\n\nexport const deleteCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.comment',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteComment`, request);\n};\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesComments';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED: {\n const { oldId, comment } = action.payload;\n const newState = omit(state, oldId);\n newState[comment.routeCommentId] = {\n ...state[oldId],\n ...comment,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED: {\n const comment = action.payload;\n return {\n ...state,\n [comment.routeCommentId]: {\n ...omit(state[comment.routeCommentId], ['oldComment']),\n ...omit(comment, ['oldComment']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ROUTES_EXECUTION_COMMENT_ADD_STARTED: {\n const comment = action.payload;\n const newState = { ...state };\n newState[comment.routeCommentId] = {\n isSelected: false,\n ...comment,\n isConfirmed: false\n };\n return newState;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED: {\n const comment = action.payload;\n return {\n ...state,\n [comment.routeCommentId]: {\n ...state[comment.routeCommentId],\n oldComment: state[comment.routeCommentId],\n ...comment,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ROUTES_EXECUTION_COMMENT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED: {\n const { oldComment } = action.payload;\n return {\n ...state,\n [oldComment.routeCommentId]: {\n ...omit(state[oldComment.routeCommentId], ['oldComment']),\n ...oldComment,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED: {\n const { routeCommentId } = action.payload;\n return omit(state, routeCommentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED: {\n const { oldId, comment } = action.payload;\n return state.map((routeCommentId) =>\n routeCommentId === oldId ? comment.routeCommentId : routeCommentId\n );\n }\n\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED: {\n const { routeCommentId } = action.payload;\n return state.filter((routeCommentIdState) => routeCommentIdState !== routeCommentId);\n }\n\n //CASE ADD STARTED\n case types.ROUTES_EXECUTION_COMMENT_ADD_STARTED: {\n const comment = action.payload;\n return [...state, comment.routeCommentId];\n }\n\n //CASE ADD FAILED\n case types.ROUTES_EXECUTION_COMMENT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((routeCommentIdState) => routeCommentIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingComments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED:\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMMENT_ADD_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED:\n case types.ROUTES_EXECUTION_COMMENT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED:\n case types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED:\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingComments = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED:\n case types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMMENT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMMENT_ADD_STARTED:\n case types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED:\n case types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED:\n case types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesComments = combineReducers({\n byId,\n order,\n isFetchingComments,\n isAdding,\n isEditing,\n isRemoving,\n errorFetchingComments,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default routesComments;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesExecutions.routesComments;\n\n//Information\nexport const getRoutesComment = (state, visitId) => {\n return getOwnState(state).byId[visitId];\n};\nexport const getRoutesCommentsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesComment(state, id));\nexport const getRoutesCommentsListByRouteAssignmentId = (state, routeAssignmentId) =>\n getRoutesCommentsList(state).filter((comment) => comment.routeAssignmentId === routeAssignmentId);\n\n//Status of sagas\nexport const isFetchingRoutesComments = (state) => getOwnState(state).isFetchingComments;\nexport const isAddingRoutesComments = (state) => getOwnState(state).isAdding;\nexport const isEditingRoutesComments = (state) => getOwnState(state).isEditing;\nexport const isRemovingRoutesComments = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingRoutesCommentsErrors = (state) => getOwnState(state).errorFetchingComments;\nexport const getAddingRoutesCommentsErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingRoutesCommentsErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingRoutesCommentsErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routeCheckpoints';\nimport * as typesRoutes from '../../types/routes';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED:\n case types.ROUTE_CHECKPOINTS_CLEAR: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTE_CHECKPOINTS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((routeCheckpointId) => {\n newState[routeCheckpointId] = {\n isSelected: false,\n ...state[routeCheckpointId],\n ...entities[routeCheckpointId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //ROUTE ADD AND EDIT COMPLETED\n case typesRoutes.ROUTE_ADD_COMPLETED: {\n const {\n routeInformation: {\n checkpoints: { entities, order }\n }\n } = action.payload;\n const newState = { ...state };\n order.forEach((routeId) => {\n newState[routeId] = {\n isSelected: false,\n ...state[routeId],\n ...entities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case typesRoutes.ROUTE_EDIT_COMPLETED: {\n const {\n checkpoints: { entities, order }\n } = action.payload;\n const newState = { ...state };\n order.forEach((routeId) => {\n newState[routeId] = {\n isSelected: false,\n ...state[routeId],\n ...entities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED:\n case types.ROUTE_CHECKPOINTS_CLEAR: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTE_CHECKPOINTS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(state, order);\n }\n\n //ROUTE ADD AND EDIT COMPLETED\n case typesRoutes.ROUTE_ADD_COMPLETED: {\n const {\n routeInformation: {\n checkpoints: { order }\n }\n } = action.payload;\n return union(state, order);\n }\n\n case typesRoutes.ROUTE_EDIT_COMPLETED: {\n const {\n checkpoints: { order }\n } = action.payload;\n return union(state, order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_CHECKPOINTS_FETCH_STARTED: {\n return true;\n }\n case types.ROUTE_CHECKPOINTS_FETCH_COMPLETED:\n case types.ROUTE_CHECKPOINTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_CHECKPOINTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_CHECKPOINTS_FETCH_STARTED:\n case types.ROUTE_CHECKPOINTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routeCheckpoints = combineReducers({\n byId,\n order,\n isFetchingList,\n errorFetchingList\n});\n\nexport default routeCheckpoints;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routeCheckpoints;\n\n//Information\nexport const getRouteCheckpoint = (state, routeCheckpointId) => {\n const routeCheckpoint = getOwnState(state).byId[routeCheckpointId];\n if (routeCheckpoint) {\n return {\n ...routeCheckpoint,\n segmentStopTime: routeCheckpoint.segmentStopTime / 60,\n radiusFormat: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistance2System(routeCheckpoint.radius)\n };\n } else undefined;\n};\n\nexport const getRouteCheckpointsList = (state) =>\n getOwnState(state).order.map((id) => getRouteCheckpoint(state, id));\nexport const getRouteCheckpointsListByRoute = (state, routeId) =>\n getRouteCheckpointsList(state).filter((routeCheckpoint) => routeCheckpoint.routeId === routeId);\n\n//Status of sagas\nexport const isFetchingListRouteCheckpoints = (state) => getOwnState(state).isFetchingList;\n\n//Errors\nexport const getFetchingListRouteCheckpointsErrors = (state) =>\n getOwnState(state).errorFetchingList;\n","const permissions = {\n listForms: 'OF001',\n addForm: 'OF002',\n editForm: 'OF003',\n removeForm: 'OF004',\n fillForm: 'OF006',\n answersFormReport: 'OF005',\n listAllUserAnswersForm: 'OF007'\n};\n\nexport default permissions;\n","const permissions = {\n listProtocol: 'PT001',\n createProtocol: 'PT002',\n editProtocol: 'PT003',\n deleteProtocol: 'PT004'\n};\n\nexport default permissions;\n","import {\n ButtonDropdown,\n Button,\n DropdownMenu,\n DropdownItem,\n DropdownToggle,\n Tooltip\n} from 'reactstrap';\nimport { useIntl } from 'react-intl';\nimport Icon from 'utility/icomoon';\nimport { useState, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface ButtonIcon {\n key: number;\n id: string;\n icon: string;\n action: any;\n tooltipMessage?: string;\n isDisabled?: boolean;\n permissions?: any;\n}\n\ninterface Props {\n id: string;\n iconSelected?: number;\n permissions?: any[];\n isDisabled?: boolean;\n className?: string;\n visible?: boolean;\n color?: string;\n buttonIcons: ButtonIcon[];\n iconFixed?: string;\n onlyIconDropDown?: boolean;\n tooltipMessage?: string;\n tooltipPlacement?: string;\n}\n\nconst ButtonIconDropdown = (props: Props) => {\n const {\n isDisabled,\n iconSelected,\n id,\n permissions,\n color,\n visible = true,\n buttonIcons,\n iconFixed,\n onlyIconDropDown = false,\n tooltipMessage,\n tooltipPlacement = 'top'\n } = props;\n\n const intl = useIntl();\n\n const [isOpen, setIsOpen] = useState(false);\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const [tooltipOptionsOpen, setTooltipOptionsOpen] = useState<{ [key: string]: boolean }>({});\n const toggle = () => setTooltipOpen(!tooltipOpen);\n const store = useSelector((state) => state);\n\n const toggleTooltip = (index: string) => {\n setTooltipOptionsOpen((prevState) => ({\n ...prevState,\n [index]: !prevState[index]\n }));\n };\n\n const handleToggleClick = () => {\n setIsOpen(!isOpen);\n setTooltipOptionsOpen({});\n };\n\n const [activeIcon, setActiveIcon] = useState(iconSelected ?? 0);\n const renderIconItem = buttonIcons.map((buttonIcon, index) => {\n return !buttonIcon.permissions ||\n authSelectors.getAuthUserHasPermissionsAny(store, buttonIcon.permissions) ? (\n <>\n (onlyIconDropDown ? buttonIcon.action() : setActiveIcon(index))}\n className={`${buttonIcon.isDisabled ? 'disabled' : ''}`}\n tooltipmessage={buttonIcon.tooltipMessage}\n >\n {}\n \n {onlyIconDropDown && (\n toggleTooltip(buttonIcon.id)}\n trigger=\"hover\"\n >\n {buttonIcon.tooltipMessage}\n \n )}\n \n ) : null;\n });\n\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n <>\n \n {!onlyIconDropDown ? (\n buttonIcons[activeIcon].action()}\n className={`${isDisabled ? 'disabled' : ''}`}\n disabled={isDisabled}\n >\n {}\n \n ) : null}\n \n {\n \n }\n \n {onlyIconDropDown && tooltipMessage ? (\n \n {tooltipMessage}\n \n ) : (\n \n {intl.formatMessage({\n id: isOpen ? 'common.hideAllButtons' : 'common.showAllButtons'\n })}\n \n )}\n \n {renderIconItem}\n \n \n {!onlyIconDropDown && buttonIcons && buttonIcons.length > 0 && (\n \n {buttonIcons[activeIcon].tooltipMessage}\n \n )}\n \n ) : null;\n};\n\nButtonIconDropdown.defaultProps = {\n id: 'ButtonIconDropdown',\n iconSelected: 0,\n isDisabled: false,\n className: ''\n};\n\nexport default ButtonIconDropdown;\n","import * as authSelectors from 'redux/reducers/auth';\nimport { useBoolean } from 'hooks/useBoolean';\nimport { FC, Fragment } from 'react';\nimport Icon from 'utility/icomoon';\nimport SlidingPaneManualHourmeterAdjustment from '../SlidingPaneManualHourmeterAdjustment';\nimport DefaultButton from 'views/components/DefaultButton';\nimport { useSelector } from 'react-redux';\n\nexport enum ButtonTypes {\n Icon = 1,\n Button = 2\n}\n\ninterface Props {\n unitId: number;\n size?: number;\n buttonType?: ButtonTypes;\n defaultValue?: number;\n isDisabled?: boolean;\n additionalOnSuccess?: () => void;\n}\n\nconst ManualHourmeterAdjustment: FC = ({\n size = 16,\n buttonType = ButtonTypes.Button,\n defaultValue = 0,\n isDisabled = false,\n unitId,\n additionalOnSuccess\n}) => {\n // validate permission\n const hasPermission = useSelector((store) =>\n authSelectors.getAuthUserHasPermissionsAny(store, ['OP005'])\n );\n if (!hasPermission) return <>;\n // validate permission\n\n const { value: isOpen, setTrue: open, setFalse: close } = useBoolean();\n const onClickIcon = (event) => {\n open();\n };\n\n return (\n \n {buttonType === ButtonTypes.Icon ? (\n \n ) : (\n {\n open();\n }}\n icon={'SetMaximumStopTime'}\n tooltipMessage=\"units.editOdometer\"\n isDisabled={isDisabled}\n />\n )}\n \n \n );\n};\n\nexport default ManualHourmeterAdjustment;\n","/* -------------------------------------------------------------------------- */\n/* SlidingPaneStartUnitDowntime */\n/* -------------------------------------------------------------------------- */\n// Componente que permite iniciar el estado downtime a una unidad seleccionada\n\nimport { FC, Fragment } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Row } from 'reactstrap';\nimport NumericalInput from '../NumericalInput';\nimport { useWebtrackServiceOnAction } from 'hooks/useWebtrackServiceOnAction';\nimport * as alerts from 'redux/utils/alerts';\nimport { updateHourmeter } from 'views/screens/Units/services';\nimport { useDispatch } from 'react-redux';\nimport * as unitActions from 'views/screens/Units/actions';\nimport { parseHoursToSeconds, parseSecondsToHours } from 'utility/Utils';\n\ninterface Props {\n close: () => void;\n isOpen: boolean;\n unitId: number;\n defaultValue?: number;\n additionalOnSuccess?: () => void;\n}\n\nconst SlidingPaneManualHourmeterAdjustment: FC = ({\n isOpen,\n close,\n defaultValue = 0,\n unitId,\n additionalOnSuccess\n}) => {\n //HOOKS\n const { control, handleSubmit, reset } = useForm<{ hourMeter: number }>();\n const intl = useIntl();\n const { handleAction } = useWebtrackServiceOnAction(updateHourmeter, {\n additionalOnSuccess: () => {\n dispatch(unitActions.startFetchingUnitsLiveStatus());\n if (typeof additionalOnSuccess === 'function') {\n additionalOnSuccess();\n }\n }\n });\n const dispatch = useDispatch();\n const onSubmit = (values: { hourMeter: number }) => {\n alerts.showConfirmationMessage({\n message: intl.formatMessage({ id: 'common.editConfirmationMessage' }),\n action: () => {\n const newHourMeter = parseHoursToSeconds(values.hourMeter);\n handleAction({ unitId, newHourmeter: newHourMeter });\n close();\n },\n actionNot: () => {\n close();\n }\n });\n };\n\n return (\n {\n close();\n }}\n >\n \n \n \n (\n \n )}\n />\n \n \n \n \n \n \n \n {\n reset();\n close();\n }}\n >\n \n \n \n \n \n \n );\n};\n\nexport default SlidingPaneManualHourmeterAdjustment;\n","import { useState, useEffect, Key } from 'react';\nimport camelcaseKeys from 'camelcase-keys';\nimport { getUnitAssetsService } from '../services';\n\nconst useGetUnitAssets = (\n unitId: number | undefined\n): { assets: Array; isFetching: boolean } => {\n const [assets, setAssets] = useState([]);\n const [isFetching, setIsFetching] = useState(false);\n\n useEffect(() => {\n if (unitId) {\n setIsFetching(true);\n getUnitAssetsService(\n { unitId },\n {\n successAction: (response) => {\n if (response?.success && response?.data) {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n setAssets(resultData);\n } else {\n setAssets([]);\n }\n setIsFetching(false);\n },\n errorAction: (error) => {\n setAssets([]);\n setIsFetching(false);\n }\n }\n );\n }\n }, [unitId]);\n return { assets, isFetching };\n};\n\nexport default useGetUnitAssets;\n","import SlidingPane from 'react-sliding-pane';\nimport { useEffect, useState, Fragment } from 'react';\nimport { useForm, Controller } from 'react-hook-form';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n Row,\n Col,\n Spinner,\n Button,\n Collapse,\n InputGroupText,\n UncontrolledTooltip\n} from 'reactstrap';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport ContactsDropdown from 'views/formComponents/ContactsDropdown';\nimport TextInput from 'views/formComponents/TextInput';\nimport Icon from '../../../../../utility/icomoon';\nimport * as unitSelectors from '../../../Units/reducers';\nimport * as unitActions from '../../../Units/actions';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneShareUnitLocation */\n/* -------------------------------------------------------------------------- */\n\ninterface Props {\n closeSlidingPane: Function;\n isSlidingPaneOpen: boolean;\n unit: any;\n}\n\nconst SlidingPaneShareUnitLocation = (props: Props) => {\n const { closeSlidingPane, isSlidingPaneOpen, unit } = props;\n\n //HOOKS\n const { control, watch, handleSubmit, reset } = useForm();\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const formValues = watch();\n const [isLinkCreated, setIsLinkCreated] = useState(false);\n\n const { isCreatingSharedLink, sharedLinkUnit } = useSelector((state) => ({\n sharedLinkUnit: unitSelectors.sharedLinkUnit(state),\n isCreatingSharedLink: unitSelectors.isCreatingSharedLinkUnit(state)\n }));\n\n //TOPS\n const durations = [\n {\n id: 1,\n value: 1,\n label: `1 ${intl.formatMessage({ id: 'common.hour' })}`,\n label_intl: `1 ${intl.formatMessage({ id: 'common.hour' })}`\n },\n {\n id: 8,\n value: 8,\n label: `8 ${intl.formatMessage({ id: 'common.hours2' })}`,\n label_intl: `8 ${intl.formatMessage({ id: 'common.hours2' })}`\n },\n {\n id: 12,\n value: 12,\n label: `12 ${intl.formatMessage({ id: 'common.hours2' })}`,\n label_intl: `12 ${intl.formatMessage({ id: 'common.hours2' })}`\n },\n {\n id: 24,\n value: 24,\n label: `24 ${intl.formatMessage({ id: 'common.hours2' })}`,\n label_intl: `24 ${intl.formatMessage({ id: 'common.hours2' })}`\n }\n ];\n\n const onSubmit = () => {\n dispatch(\n unitActions.startCreatingShareLink(\n unit?.unitId,\n unit?.unitName,\n formValues?.receivers,\n formValues?.durationId * 3600\n )\n );\n };\n\n useEffect(() => {\n setIsLinkCreated(false);\n if (sharedLinkUnit !== '' && sharedLinkUnit !== undefined && sharedLinkUnit !== null) {\n setIsLinkCreated(true);\n reset({\n ...formValues,\n sharedLink: sharedLinkUnit\n });\n }\n }, [sharedLinkUnit]);\n\n return (\n unit && (\n \n \n
\n {unit?.unitName}\n
\n {unit?.locationName}\n
\n \n }\n width={'45rem'}\n onRequestClose={() => {\n if (closeSlidingPane) closeSlidingPane();\n dispatch(unitActions.clearSharedLink());\n }}\n >\n \n \n \n (\n \n )}\n />\n \n \n \n \n \n {isCreatingSharedLink ? (\n \n \n \n \n \n ) : (\n \n \n \n (\n \n \n {intl.formatMessage({ id: 'common.copyClipboard' })}\n \n \n navigator.clipboard.writeText(formValues?.sharedLink)\n }\n />\n \n }\n />\n )}\n />\n \n \n \n )}\n \n \n onSubmit())}\n >\n \n \n {\n reset({ durationId: 1 });\n dispatch(unitActions.clearSharedLink());\n }}\n >\n \n \n \n \n \n \n
\n )\n );\n};\n\nSlidingPaneShareUnitLocation.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n unit: {}\n};\n\nexport default SlidingPaneShareUnitLocation;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneUnitHistoricalPositionsReport */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Sidebar para subir una imagen.\n\nimport moment from 'moment';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { useForm, Controller } from 'react-hook-form';\nimport { renderToString } from 'react-dom/server';\nimport { MapPin } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Marker, Polyline, Tooltip, useMapEvents } from 'react-leaflet';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Col, Label, Row, Spinner, Media, Button } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport DateInput from 'views/formComponents/DateInput';\nimport RotatedMarker from 'views/components/Map/components/RotatedMarker';\nimport SwitchInput from 'views/formComponents/SwitchInput';\nimport Table from 'views/components/Table';\nimport Toolbar from 'views/components/Toolbar';\nimport DefaultButton from '../../../../components/DefaultButton';\nimport * as unitActions from '../../actions';\nimport * as unitSelectors from '../../reducers';\nimport { UNIT_IDLE_SPEED } from '../../types';\nimport { getDatesDifferenceString, getIconByDatesDifference } from '../../utils';\nimport ReportViewerButton from 'views/components/ReportViewerButton';\nimport { orderBy } from 'lodash';\nimport * as authSelectors from 'redux/reducers/auth';\nimport UnitsDropdown from 'views/formComponents/UnitsDropdown';\nimport { numberWithCommas } from 'utility/Utils';\nimport { getUnitHeadingIcon } from 'views/screens/Units/utils';\n// import { HeatmapLayer } from 'react-leaflet-heatmap-layer/src';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneUnitHistoricalPositionsReport */\n/* -------------------------------------------------------------------------- */\n\nexport interface ShowHistoricalPositions {\n show: boolean;\n showUnitHistoryMarkers: boolean;\n showUnitHistoryParkedMarkers: boolean;\n showUnitHistoryConsoleEventMarkers?: boolean;\n showUnitHistoryOnlyNormalPositionsMarkers?: boolean;\n useInterval?: number;\n reportType: number;\n startDate: string;\n endDate: string;\n idleSpeed?: number;\n selectedPositionId?: any;\n lineWidth?: any;\n}\n\ninterface Props {\n closeSlidingPane: Function;\n isSlidingPaneOpen: boolean;\n showHistoricalPositions?: ShowHistoricalPositions;\n title: string;\n subtitle: string;\n unit: any;\n setMapPositionToPositionsBounds: boolean;\n changeSetMapPositionToUnitsBounds: Function;\n selectedUnit?: any;\n setSelectedUnit?: Function;\n selectedUnitRef?: any;\n}\nconst SlidingPaneUnitHistoricalPositionsReport = (props: Props) => {\n const intl = useIntl();\n const columnInfo = [\n {\n fieldName: 'eventName',\n template: (position) =>\n position.eventId != null ? (\n \n \n \n
\n \n \n ) : (\n \n \n {position.eventId ? (\n \n ) : (\n position.eventName\n )}\n \n ),\n maxWidth: '150',\n headerText: 'units.event'\n },\n {\n fieldName: 'locationName',\n template: (position) => (\n \n \n \n
\n {position.locationName}\n \n ),\n maxWidth: '150',\n headerText: 'units.locationName'\n },\n {\n fieldName: 'gpsDate',\n maxWidth: '150',\n headerText: 'units.date',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n }\n ];\n function formatIgnitionStatus(ignitionValue) {\n return ignitionValue === 1 ? 'Encendido' : 'Apagado';\n }\n\n const {\n closeSlidingPane,\n isSlidingPaneOpen,\n showHistoricalPositions,\n title,\n subtitle,\n setMapPositionToPositionsBounds,\n unit,\n changeSetMapPositionToUnitsBounds,\n selectedUnit,\n setSelectedUnit,\n selectedUnitRef\n } = props;\n function formatToTwoDecimals(value) {\n if (value === null || value === undefined) return '';\n return parseFloat(value).toFixed(2);\n }\n\n const extraColumns = [\n {\n fieldName: 'gpsDate',\n headerText: 'units.date',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n },\n {\n fieldName: 'systemDate',\n headerText: 'units.receptionDate',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n },\n {\n fieldName: 'eventName',\n template: (position) => {\n return position.eventId != null ? (\n \n \n \n \n \n \n ) : (\n \n \n {position.eventName}\n \n );\n },\n headerText: 'units.event'\n },\n {\n fieldName: 'locationName',\n template: (position) => (\n \n \n \n \n {position.locationName}\n \n ),\n maxWidth: '150',\n headerText: 'units.locationName'\n },\n {\n fieldName: 'speed',\n headerText: 'units.speed'\n },\n {\n fieldName: 'metric',\n headerText: unit.defaultMetricName + '(' + unit.defaultMetricUnit + ')',\n format: (value) => formatToTwoDecimals(value)\n },\n {\n fieldName: 'isIgnitionOn',\n headerText: 'sensors.ignition',\n format: formatIgnitionStatus,\n visible: unit.hasIgnitionInput\n },\n {\n fieldName: 'odometer',\n headerText: 'units.odometer',\n format: (value: any) => numberWithCommas(value)\n }\n ];\n\n const { control, watch, reset, handleSubmit } = useForm();\n const formValues = watch();\n\n const dispatch = useDispatch();\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const [selected, changeSelected] = useState([]);\n const fetchInterval = useRef();\n const [size, changeSize] = useState('45rem');\n const [viewTable, changeViewTable] = useState(true);\n const [search, setSearch] = useState(new Date());\n const [rerender, changeRerender] = useState(new Date());\n const [historicalPositionsOnMapBounds, setHistoricalPositionsOnMapBounds] = useState(null);\n\n const { isFetching, user, dropDownUnit } = useSelector((state) => ({\n isFetching: unitSelectors.isFetchingUnitPositions(state),\n dropDownUnit: formValues?.selectedUnit\n ? unitSelectors.getUnit(state, formValues?.selectedUnit)\n : undefined,\n user: authSelectors.getUser(state)\n }));\n\n useEffect(() => {\n if (\n formValues?.selectedUnit &&\n dropDownUnit &&\n selectedUnit?.unitId !== formValues?.selectedUnit\n ) {\n //unitSelectors.getUnit(store, unit.unitId);\n setSelectedUnit ? setSelectedUnit(dropDownUnit) : '';\n changeSetMapPositionToUnitsBounds(true);\n }\n }, [formValues?.selectedUnit]);\n\n const map = useMapEvents({\n moveend: () => {\n displayObjects();\n }\n });\n const cleanup = () => {\n if (fetchInterval.current) clearInterval(fetchInterval.current);\n };\n\n useEffect(() => {\n return () => cleanup();\n }, []);\n\n const zoomMapToPositions = () => {\n if (\n setMapPositionToPositionsBounds &&\n unit?.historicalPositions?.positions?.filter(\n (position, index) => position?.latitude != null && position?.longitude != null\n ).length > 0\n ) {\n map.flyToBounds(\n L.latLngBounds(\n unit?.historicalPositions?.positions\n .filter((position, index) => position?.latitude != null && position?.longitude != null)\n .map((position) => L.latLng(position.latitude, position.longitude))\n ),\n {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n };\n\n const displayObjects = () => {\n setHistoricalPositionsOnMapBounds({\n positions: unit?.historicalPositions?.positions?.filter(\n (position, index) =>\n showHistoricalPositions?.selectedPositionId === position.id ||\n (position?.latitude != null &&\n position?.longitude != null &&\n (map\n ? map.getBounds().contains(L.latLng(position.latitude, position.longitude))\n : true) &&\n (map?.getZoom() > 14 || (map?.getZoom() > 10 && index % 10 === 0) || index % 20 === 0))\n ),\n parkedPositions: unit?.historicalPositions?.parkedPositions?.filter(\n (position, index) =>\n showHistoricalPositions?.selectedPositionId === position.id ||\n (position?.latitude != null &&\n position?.longitude != null &&\n (map\n ? map.getBounds().contains(L.latLng(position.latitude, position.longitude))\n : true) &&\n (map?.getZoom() > 14 || (map?.getZoom() > 10 && index % 10 === 0) || index % 20 === 0))\n ),\n polyline:\n unit?.historicalPositions?.polyline?.length > 0\n ? map\n .getBounds()\n .intersects(\n unit?.historicalPositions?.polyline?.map((position) => [\n position.latitude,\n position.longitude\n ])\n )\n ? unit?.historicalPositions.polyline\n : []\n : undefined,\n consoleEvents: unit?.consoleEvents\n });\n };\n useEffect(() => {\n changeRerender(new Date());\n changeViewTable(false);\n setTimeout(() => changeViewTable(true), 200);\n }, [size]);\n\n useEffect(() => {\n if (selected.length > 0)\n map.flyToBounds(\n [[selected[selected.length - 1].latitude, selected[selected.length - 1].longitude]],\n {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n else zoomMapToPositions();\n }, [selected]);\n\n useEffect(() => {\n if (!isFetching) {\n zoomMapToPositions();\n displayObjects();\n }\n }, [isFetching]);\n\n useEffect(() => {\n if (unit?.unitId) {\n reset({\n dateRange: [\n formValues?.dateRange\n ? formValues?.dateRange[0]\n : moment().startOf('day').format('YYYY-MM-DD HH:mm'),\n formValues?.dateRange\n ? formValues?.dateRange[1]\n : moment().endOf('day').format('YYYY-MM-DD HH:mm')\n ],\n showUnitHistoryMarkers: true,\n groupPositionsIntoPraked: true,\n showUnitHistoryParkedMarkers: true,\n showUnitHeatMap: false\n });\n }\n }, [unit?.unitId, isSlidingPaneOpen]);\n\n useEffect(() => {\n if (\n unit?.unitId &&\n isSlidingPaneOpen &&\n formValues &&\n formValues.dateRange?.length === 2 &&\n formValues?.groupPositionsIntoPraked != undefined\n ) {\n dispatch(\n unitActions.startFetchingUnitPositions(\n unit?.unitId,\n formValues.groupPositionsIntoPraked ? 2 : 1,\n formValues.dateRange[0],\n formValues.dateRange[1],\n UNIT_IDLE_SPEED\n )\n );\n }\n }, [unit?.unitId, isSlidingPaneOpen, search, formValues?.groupPositionsIntoPraked]);\n\n useEffect(() => {\n cleanup();\n\n if (\n unit?.unitId &&\n showHistoricalPositions &&\n showHistoricalPositions.show &&\n showHistoricalPositions.startDate &&\n showHistoricalPositions.startDate !== '' &&\n showHistoricalPositions.endDate &&\n showHistoricalPositions.endDate !== '' &&\n showHistoricalPositions.reportType\n ) {\n if (showHistoricalPositions?.useInterval) {\n fetchInterval.current = setInterval(() => {\n dispatch(\n unitActions.startFetchingUnitPositions(\n unit.unitId,\n showHistoricalPositions.reportType,\n showHistoricalPositions.startDate,\n showHistoricalPositions.endDate,\n showHistoricalPositions.idleSpeed || UNIT_IDLE_SPEED\n )\n );\n }, showHistoricalPositions.useInterval);\n }\n\n dispatch(\n unitActions.startFetchingUnitPositions(\n unit.unitId,\n showHistoricalPositions.reportType,\n showHistoricalPositions.startDate,\n showHistoricalPositions.endDate,\n showHistoricalPositions.idleSpeed || UNIT_IDLE_SPEED\n )\n );\n }\n }, [\n unit?.unitId,\n showHistoricalPositions?.show,\n showHistoricalPositions?.useInterval,\n showHistoricalPositions?.reportType,\n showHistoricalPositions?.startDate,\n showHistoricalPositions?.endDate,\n showHistoricalPositions?.idleSpeed\n ]);\n\n useEffect(() => {\n if (showHistoricalPositions?.selectedPositionId) displayObjects();\n }, [showHistoricalPositions?.selectedPositionId]);\n\n function getArrowImage(heading) {\n if (heading >= 337.5 || heading < 22.5) {\n return 'ArrowUp'; //Norte\n } else if (heading >= 22.5 && heading < 67.5) {\n return 'ArrowUpRight'; //Noreste\n } else if (heading >= 67.5 && heading < 112.5) {\n return 'ArrowRight'; //Este\n } else if (heading >= 112.5 && heading < 157.5) {\n return 'ArrowDownRight'; //Sureste\n } else if (heading >= 157.5 && heading < 202.5) {\n return 'ArrowDown'; //Sur\n } else if (heading >= 202.5 && heading < 247.5) {\n return 'ArrowDownLeft'; //Suroeste\n } else if (heading >= 247.5 && heading < 292.5) {\n return 'ArrowLeft'; //Oeste\n } else {\n return 'ArrowUpLeft'; //Noroeste\n }\n }\n\n //Reporte exportable ----------------------------------------------------------\n const reportDataSource = {\n title: intl.formatMessage({ id: 'units.historicalPositions.report.tittle' }),\n subtitle: `Id: ${unit.unitId} - ${unit.unitName}`, // Id: Numero_ID - Nombre_Unidad\n filters:\n (formValues.dateRange ? formValues.dateRange[0] : '') +\n ' - ' +\n (formValues.dateRange ? formValues.dateRange[1] : ''),\n dataSets: [\n {\n value: orderBy(\n unit?.historicalPositions?.allPositions.map((position) => ({\n ...position,\n eventName: position.eventName || intl.formatMessage({ id: 'units.parked' }),\n headingArrows:\n process.env.NODE_ENV === 'production'\n ? process.env.PUBLIC_URL\n : window.location.origin + '/assets/' + getArrowImage(position.heading) + '.png',\n speed: position.speed === null ? '' : position.speed,\n metric: position.metric === null ? '' : parseFloat(position.metric).toFixed(2),\n ignition: position.isIgnitionOn === 1 ? 'Encendido' : 'Apagado'\n })),\n 'gpsDate',\n 'asc'\n ),\n name: 'HistoricalPositionUnits'\n },\n {\n value: [\n {\n defaultMetricUnit: unit.defaultMetricUnit,\n defaultMetricName: unit.defaultMetricName\n }\n ],\n name: 'Metrics'\n },\n {\n value: [\n {\n distanceSystem: user.distanceSystem\n }\n ],\n name: 'User'\n },\n {\n value: [\n {\n distanceAllPositions: unit?.historicalPositions?.distance\n }\n ],\n name: 'DistancePositionsUnit'\n }\n ]\n };\n\n return (\n <>\n {historicalPositionsOnMapBounds?.positions?.length > 0 &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) &&\n (showHistoricalPositions?.show\n ? showHistoricalPositions?.showUnitHistoryMarkers\n : formValues?.showUnitHistoryMarkers) &&\n historicalPositionsOnMapBounds.positions.map((position, index) =>\n position.eventId === 0 ? (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={750}\n riseOnHover={true}\n rotationAngle={position.heading}\n rotationOrigin=\"center\"\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: `\n `,\n iconSize: [22, 22],\n iconAnchor: [11, 11]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n
\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n {position.eventName}\n
\n\n {position?.locationName?.split(',').map((e) => {\n return (\n

{e}

\n );\n })}\n
\n \n \n ) : (\n (showHistoricalPositions?.showUnitHistoryOnlyNormalPositionsMarkers ?? false) ==\n false && (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={700}\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: renderToString(\n \n \n \n ),\n iconSize: [30, 30],\n iconAnchor: [15, 15]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n {position.eventName}\n
\n \n {position?.locationName?.split(',').map((e) => {\n return (\n

{e}

\n );\n })}\n
\n \n \n )\n )\n )}\n {historicalPositionsOnMapBounds?.parkedPositions?.length > 0 &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) &&\n (showHistoricalPositions?.show\n ? showHistoricalPositions?.showUnitHistoryParkedMarkers\n : formValues?.groupPositionsIntoPraked && formValues?.showUnitHistoryParkedMarkers) &&\n historicalPositionsOnMapBounds.parkedPositions.map((position, index) => (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={700}\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: renderToString(\n \n ),\n iconSize: [30, 30],\n iconAnchor: [15, 15]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n \n {`${intl.formatMessage({ id: 'units.duration' })}: ${getDatesDifferenceString(\n position.endDate,\n position.gpsDate,\n intl\n )}`}\n \n
\n {position.locationName}\n \n \n ))}\n {/* {unit?.historicalPositions?.polyline?.length > 0 && isSlidingPaneOpen && (\n ({\n ...point,\n intensity: 1\n }))}\n latitudeExtractor={(m: any) => m.latitude}\n longitudeExtractor={(m: any) => m.longitude}\n intensityExtractor={(m: any) => parseFloat(m.intensity)}\n max={1}\n minOpacity={0.2}\n />\n )} */}\n {historicalPositionsOnMapBounds?.polyline?.length > 0 &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) && (\n [\n point.latitude,\n point.longitude\n ])}\n eventHandlers={{\n click: () => {}\n }}\n >\n )}\n {historicalPositionsOnMapBounds?.consoleEvents?.length > 0 &&\n showHistoricalPositions?.showUnitHistoryConsoleEventMarkers === true &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) &&\n historicalPositionsOnMapBounds.consoleEvents.map((position, index) => (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={700}\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: renderToString(\n \n \n \n ),\n iconSize: [30, 30],\n iconAnchor: [15, 15]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n \n {intl.formatMessage({\n id: `organizations.event${position.eventId}`\n })}\n \n
\n {position.locationName}\n \n \n ))}\n {\n if (closeSlidingPane) closeSlidingPane();\n }}\n >\n <>\n \n \n {unit && unit?.unitId && unit.organizationId && unit?.operatorId ? (\n (\n \n )}\n />\n ) : (\n ''\n )}\n \n \n \n \n (\n \n )}\n />\n \n \n {\n setSearch(new Date());\n })}\n >\n \n \n \n \n (\n }\n />\n )}\n />\n \n \n (\n }\n />\n )}\n />\n \n {formValues?.groupPositionsIntoPraked && (\n \n (\n }\n />\n )}\n />\n \n )}\n {/* \n (\n \n \n \n \n }\n />\n )}\n />\n */}\n {isFetching && (\n \n
\n \n
\n \n )}\n {!isFetching && (\n \n
\n \n \n
\n \n )}\n {!isFetching && unit?.historicalPositions?.positions?.length > 0 && (\n \n {\n changeSize(size === '40rem' ? '80rem' : '40rem');\n }}\n tooltipMessage={intl.formatMessage({\n id: size === '80rem' ? 'workplans.minimize' : 'workplans.maximize'\n })}\n >,\n {}}\n reportDataSource={reportDataSource}\n useEmbbededChannel={true}\n reportPath={'HistoricalPositionUnits.rdl'}\n />\n ]}\n />\n {viewTable && (\n \n column.visible !== false && column.headerText != 'null(null)'\n )\n .map((column) => column)\n : columnInfo\n }\n onDeselect={() => changeSelected([])}\n data={unit?.historicalPositions?.allPositions.map((position) => ({\n ...position,\n eventName: position.eventName || intl.formatMessage({ id: 'units.parked' }),\n speed: position.speed === null ? '' : position.speed,\n metric:\n isNaN(position.metric) && position.metric === null ? '' : position.metric\n }))}\n selected={selected}\n changeSelected={changeSelected}\n />\n )}\n \n )}\n
\n \n \n \n );\n};\nSlidingPaneUnitHistoricalPositionsReport.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n showHistoricalPositions: { show: false },\n title: '',\n unit: {}\n};\n\nexport default SlidingPaneUnitHistoricalPositionsReport;\n","import { HttpWebtrack } from 'utility/http';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/unit';\n\ninterface UnitImage {\n unitId: number;\n imageId: number;\n imageTypeId: number;\n imageName: string;\n imageUrl: string;\n isDefault: boolean;\n}\n\ninterface UnitDeleteRequest {\n unitId: number;\n imageId: number;\n imageName: string;\n}\n\nexport const saveUnitImage = (request: UnitImage) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.imageName}`,\n object: 'units.unitImage',\n action: request.imageId ? 'Edit' : 'Create',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/saveUnitImage`, request);\n};\n\nexport const deleteUnitImage = (request: UnitDeleteRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.imageName}`,\n object: 'units.unitImage',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/deleteUnitImage`, request);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneUnitImages */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Sidebar para subir una imagen.\n\nimport { useEffect, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Form, FormGroup, Row, Spinner } from 'reactstrap';\nimport DeleteButton from 'views/components/DeleteButton';\nimport ImageUploader from 'views/formComponents/ImageUploader';\nimport TextInput from 'views/formComponents/TextInput';\nimport Toolbar from 'views/components/Toolbar';\nimport { deleteUnitImage, saveUnitImage } from 'views/screens/Units/services/unitImages';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport CheckboxInput from '../../../../formComponents/CheckBoxInput';\nimport DefaultButton from '../../../../components/DefaultButton';\nimport MediaGallery from '../../../../components/MediaGallery';\nimport TitleH4 from '../../../../components/TitleH4';\nimport * as unitActions from '../../actions';\nimport * as unitSelectors from '../../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneUnitImages */\n/* -------------------------------------------------------------------------- */\n\ninterface Props {\n closeSlidingPane: Function;\n isSlidingPaneOpen: boolean;\n title: string;\n unit: any;\n addImageInitial: boolean;\n}\nconst SlidingPaneUnitImages = (props: Props) => {\n const { closeSlidingPane, isSlidingPaneOpen, title, unit, addImageInitial } = props;\n const { control, handleSubmit } = useForm();\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const [isLoadingUnitImages, setIsLoadingUnitImages] = useState(false);\n const [activeSlideImage, setActiveSlideImage] = useState(0);\n\n const { isFetching } = useSelector((state) => ({\n isFetching: unitSelectors.isFetchingUnitInformation(state)\n }));\n useEffect(() => {\n if (!isFetching) setIsLoadingUnitImages(false);\n }, [isFetching]);\n\n //addImage to use slide to add image instead of editing\n const [addImage, setAddImage] = useState(addImageInitial);\n useEffect(() => {\n setAddImage(addImageInitial);\n }, [addImageInitial]);\n const [uploadImage, setUploadImage] = useState({\n imageName: '',\n imageUrl: ''\n });\n\n //function to save an image on unitimages table\n const saveUnitImageAsync = async (values) => {\n setIsLoadingUnitImages(true);\n const defaultImageValues = !addImage ? unit.images[activeSlideImage] : {};\n const unitImageSave = {\n unitId: unit.unitId,\n ...defaultImageValues,\n ...values,\n imageUrl: !addImage\n ? defaultImageValues.imageUrl\n : values.imageTypeId == 1\n ? values.fileName\n : values.imageUrl,\n imageName: values.imageName,\n isDefault: values.isDefault\n };\n const response = await saveUnitImage(unitImageSave);\n if (response?.success) dispatch(unitActions.startFetchingUnitInformation(unitImageSave.unitId));\n };\n\n //function to delete unit image in unitimages table\n const deleteUnitImageAsync = async () => {\n const unitImageDelete = {\n unitId: unit.unitId,\n ...unit.images[activeSlideImage]\n };\n alerts.showDeleteConfirmationMessage({\n action: async () => {\n setIsLoadingUnitImages(true);\n const response = await deleteUnitImage(unitImageDelete);\n if (response?.success)\n dispatch(unitActions.startFetchingUnitInformation(unitImageDelete.unitId));\n },\n objectType: intl.formatMessage({ id: 'units.unitImage' }),\n objectName: unitImageDelete.imageName\n });\n };\n\n return (\n {\n if (closeSlidingPane) closeSlidingPane();\n }}\n >\n {unit.images ? (\n <>\n \n {/* Loading locaition images show spinner */}\n {isLoadingUnitImages && (\n
\n \n
\n )}\n\n {/* Toolbar for editing images */}\n {!isLoadingUnitImages && (\n <>\n {!addImage && (\n {\n setAddImage(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'units.addImage' })}\n />,\n unit.images.length > 0 && (\n {\n deleteUnitImageAsync();\n }}\n />\n )\n ]}\n />\n )}\n {/* unitimagesgallery to edit and its respective form */}\n {unit.images.length > 0 && !addImage && (\n ({\n ...image,\n fullImageUrl: image?.imageUrl\n }))}\n autoplay={false}\n onSlideChange={(slideId) => {\n setActiveSlideImage(slideId);\n }}\n navigation={true}\n pagination={true}\n useThumbs={true}\n className={'default-width-image'}\n classNameThumbs={'default-width-image'}\n heightThumbs={'10%'}\n />\n )}\n\n {unit.images.length > 0 && !addImage && (\n
\n
\n \n \n (\n }\n />\n )}\n />\n \n \n (\n \n )}\n />\n \n \n \n \n \n {\n saveUnitImageAsync(values);\n })}\n >\n \n \n {\n if (closeSlidingPane) closeSlidingPane();\n }}\n >\n \n \n \n \n \n
\n )}\n\n {/* Message to show if there are no images to edit */}\n {unit.images.length == 0 && !isLoadingUnitImages && !addImage && (\n
\n
\n

\n \n

\n

\n \n

\n {\n setAddImage(true);\n }}\n >\n \n \n
\n
\n )}\n\n {/* Image Uploader if addImage is in true */}\n {addImage && (\n {}} //Function to do after a succesfull upload\n onFailureChangeFunction={() => {}} //Function to do after a failure upload\n otherValues={{ unitId: unit.unitId }}\n inputs={[\n {\n type: 'text',\n name: 'imageName',\n label: intl.formatMessage({ id: 'common.imageName' }),\n required: true,\n initialValue: ''\n },\n {\n name: 'isDefault',\n forceinitialvalue: false,\n label: intl.formatMessage({ id: 'common.imageDefault' }),\n type: 'checkbox'\n }\n ]}\n onChangeImage={(value) => setUploadImage(value)}\n functionAfterUpload={(values) => {\n saveUnitImageAsync(values);\n }}\n closeSlidepanel={() => {\n if (addImageInitial) {\n closeSlidingPane();\n } else {\n setAddImage(false);\n }\n }}\n filesPath={'/gps/'}\n />\n )}\n \n )}\n
\n {addImage && !addImageInitial && (\n \n \n \n {\n setAddImage(false);\n }}\n >\n \n \n \n \n \n )}\n \n ) : (\n <>\n )}\n \n );\n};\nSlidingPaneUnitImages.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n title: '',\n unit: {},\n submitting: false,\n addImageInitial: false\n};\n\nexport default SlidingPaneUnitImages;\n","import { Key, useEffect, useState } from 'react';\nimport camelcaseKeys from 'camelcase-keys';\nimport { ScriptsHistory } from 'views/screens/Reports/views/byUnit/reportScriptHistory/types';\nimport { getUnitScriptsSerivice } from '../services/index';\n\nconst useGetUnitScripts = (\n unitId: number | undefined,\n rerender: Key | undefined\n): {\n scriptsChats: any[];\n isFetchingScripts: boolean;\n} => {\n const [scriptsChats, setData] = useState([]);\n const [isFetchingScripts, setIsFetching] = useState(false);\n useEffect(() => {\n if (unitId) {\n setIsFetching(true);\n getUnitScriptsSerivice(\n {\n unitId\n },\n {\n errorAction: () => {\n setData([]);\n setIsFetching(false);\n },\n successAction: (response) => {\n if (response && response?.data && response?.data?.length > 0) {\n setData(\n response.data.map((script) => {\n return camelcaseKeys({\n ...script\n });\n })\n );\n } else setData([]);\n setIsFetching(false);\n }\n }\n );\n }\n }, [rerender]);\n return { scriptsChats, isFetchingScripts };\n};\n\nexport default useGetUnitScripts;\n","import { useEffect, useState } from 'react';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { insertUnitScriptService } from '../services';\n\nconst useInsertUnitScript = (\n execute: boolean = false,\n values: {\n unitId: number;\n script: string;\n }\n): {\n submittingSave: boolean;\n} => {\n const [submittingSave, setIsFetching] = useState(false);\n useEffect(() => {\n if (values.unitId && values.script) {\n setIsFetching(true);\n insertUnitScriptService(values, {\n errorAction: () => {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'units.insertScriptFailure' }),\n errorNumber: 0\n };\n alerts.showErrorAlertFailChanges({ error });\n setIsFetching(false);\n },\n successAction: (response) => {\n if (response.success === true) {\n setIsFetching(false);\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'units.insertScriptFailure' }),\n errorNumber: 0\n };\n alerts.showErrorAlertFailChanges({ error });\n setIsFetching(false);\n }\n }\n });\n }\n }, [execute]);\n return { submittingSave };\n};\n\nexport default useInsertUnitScript;\n","import SlidingPane from 'react-sliding-pane';\nimport { useState, useEffect, useRef } from 'react';\nimport { useForm, Controller } from 'react-hook-form';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { Spinner, Card, Media, CardText, Button, Row, Col, Badge } from 'reactstrap';\nimport { Send } from 'react-feather';\nimport TextInput from 'views/formComponents/TextInput';\nimport useGetUnitScripts from '../../hooks/useGetUnitScripts';\nimport { useRerender } from 'hooks/useRerender';\nimport Avatar from '../../../../../@core/components/avatar';\nimport { useSelector } from 'react-redux';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport Icon from 'utility/icomoon';\nimport moment from 'moment';\nimport { getStatusStyles } from 'views/screens/Reports/views/byUnit/reportScriptHistory/utils';\nimport Divider from '@material-ui/core/Divider';\nimport useInsertUnitScript from '../../hooks/useInsertUnitScript';\n\ninterface Props {\n unitId: number;\n unitName: string | undefined;\n isOpenSlidingPane: boolean;\n closeSlidingPaneSendScripts: any;\n}\n\nconst SlidingPaneUnitSendScripts = (props: Props) => {\n const { unitId, unitName, isOpenSlidingPane, closeSlidingPaneSendScripts } = props;\n const { control, handleSubmit, watch, reset } = useForm();\n const intl = useIntl();\n const { rerender, startRerender } = useRerender();\n const authUserId = useSelector((state) => Number(authSelectors.getAuthUser(state).authUserId));\n const newScript = watch('script');\n const fetchScriptsInterval = useRef();\n const containerRef = useRef(null);\n\n const [firstLoad, setFirstLoad] = useState(true);\n const [executeSave, setExecuteSave] = useState(false);\n const [scriptToSave, setScriptToSave] = useState({});\n\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const secondary = process.env.REACT_APP_SECONDARY_COLOR;\n\n const { scriptsChats, isFetchingScripts } = useGetUnitScripts(unitId, rerender);\n\n const { submittingSave } = useInsertUnitScript(executeSave, scriptToSave);\n\n const getScriptStatus = (status) => {\n const styles = getStatusStyles(status);\n if (status === null) {\n return null;\n }\n\n const { text, color, icon } = styles;\n\n return (\n \n \n {text}\n \n );\n };\n\n const cleanup = () => {\n if (fetchScriptsInterval.current) clearInterval(fetchScriptsInterval.current);\n };\n\n useEffect(() => {\n return () => cleanup();\n }, []);\n\n useEffect(() => {\n if (!isFetchingScripts && !submittingSave && unitId !== undefined && unitId !== null) {\n startRerender();\n setScriptToSave({});\n }\n }, [unitId, submittingSave]);\n\n useEffect(() => {\n cleanup();\n if (unitId && isOpenSlidingPane) {\n fetchScriptsInterval.current = setInterval(() => {\n startRerender();\n }, 10000);\n }\n }, [isOpenSlidingPane, unitId]);\n\n useEffect(() => {\n if (isOpenSlidingPane && containerRef.current)\n containerRef.current.scrollTop = containerRef.current.scrollHeight;\n }, [isOpenSlidingPane, scriptsChats]);\n\n useEffect(() => {\n if (!isFetchingScripts && firstLoad) setFirstLoad(false);\n }, [isFetchingScripts]);\n\n return (\n {\n closeSlidingPaneSendScripts();\n reset();\n }}\n >\n <>\n {firstLoad && (\n
\n \n
\n )}\n {scriptsChats && scriptsChats?.length === 0 && !isFetchingScripts && (\n
\n
\n

\n \n

\n
\n
\n )}\n {scriptsChats?.length > 0 && (\n <>\n
\n {scriptsChats.map((script, i) => (\n \n \n \n
\n \n
\n {script.userName}\n \n {moment(script.scriptDate).format('lll')}\n \n
\n
\n {script.isProcessed !== null && getScriptStatus(script.isProcessed)}\n
\n
\n
\n {`${intl.formatMessage({ id: 'forms.type' })}: ${\n script.scriptTypeDescription\n }`}\n \n {`${intl.formatMessage({ id: 'units.action' })}: ${\n script.deviceActionDescription\n }`}\n
\n \n
\n {script.scriptText}\n
\n
\n \n ))}\n
\n
\n
\n
\n
\n
\n \n \n )}\n \n \n (\n \n )}\n />\n \n \n {\n setScriptToSave({\n unitId: unitId,\n script: values?.script\n });\n setExecuteSave(!executeSave);\n reset();\n })}\n disabled={\n newScript == null || newScript == '' || (newScript && newScript?.length == 0)\n }\n >\n \n \n \n \n \n \n );\n};\n\nexport default SlidingPaneUnitSendScripts;\n","import { Fragment } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router';\nimport { Col, Label, Row, UncontrolledTooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport { useSelector } from 'react-redux';\nimport * as authSelectors from 'redux/reducers/auth';\n/* -------------------------------------------------------------------------- */\n/* UnitFuel */\n/* -------------------------------------------------------------------------- */\nexport default function UnitFuel({ unit, sensors, authSystems }) {\n const intl = useIntl();\n const history = useHistory();\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const sensorId = sensors[0]?.sensorId;\n const measureId = sensors[0]?.measureId;\n\n const { parsers } = useSelector((state) => {\n return {\n parsers: authSelectors.getParsers(state)\n };\n });\n\n return (\n \n {unit.deviceMetrics\n .filter((metric) => metric?.measureTypeId && metric.measureTypeId === 8)\n .map((metric, i) => {\n return (\n \n {i % 2 === 0 && i !== 0 &&
}\n \n \n\n \n \n
\n );\n })}\n
\n );\n}\n","import moment from 'moment';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Thermometer } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router';\nimport { Badge, Col, Dropdown, DropdownMenu, DropdownToggle, Label, Media, Row } from 'reactstrap';\nimport * as authSelectors from 'redux/reducers/auth';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport ControlChart from 'views/components/ControlChart';\nimport DefaultButton from 'views/components/DefaultButton';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport Table from 'views/components/Table';\nimport DateInput from 'views/formComponents/DateInput';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport useGetUnitTemperatureHistory from '../../hooks/useGetUnitTemperatureHistory';\n\nconst columns = [\n {\n fieldName: 'systemDate',\n headerText: 'common.date',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n },\n {\n fieldName: 'metricValue',\n type: 'number',\n formatColumn: 'N0'\n },\n {\n fieldName: 'locationName',\n headerText: 'sensors.locationName'\n },\n {\n fieldName: 'isIgnitionOn',\n headerText: 'sensors.ignition',\n type: 'boolean'\n },\n {\n fieldName: 'speedFormat',\n headerText: 'units.speed',\n metric: 'speed',\n type: 'number',\n formatColumn: 'N2'\n }\n];\n\n/* -------------------------------------------------------------------------- */\n/* UnitTemperature */\n/* -------------------------------------------------------------------------- */\nexport default function UnitTemperature({ unit, sensors }) {\n const intl = useIntl();\n const history = useHistory();\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const [showHistTemperature, setShowHistTemperature] = useState(false);\n const [showTable, setShowTable] = useState(false);\n const [isOpenDateRangeForm, setIsOpenDateRangeForm] = useState(false);\n const [isOpenSensorForm, setIsOpenSensorForm] = useState(false);\n const defaultValue = [\n moment().startOf('day').format('YYYY-MM-DD HH:mm'),\n moment().endOf('day').format('YYYY-MM-DD HH:mm')\n ];\n const [dateRange, setDateRange] = useState(defaultValue);\n const [sensorId, setSensorId] = useState(sensors[0]?.sensorId);\n const [measureId, setMeasureId] = useState(sensors[0]?.measureId);\n const { control: controlSensor, watch: watchSensor } = useForm();\n const { control, watch } = useForm({ defaultValues: { dateRange: defaultValue } });\n const { data, isFetching } = useGetUnitTemperatureHistory(\n showHistTemperature,\n unit?.unitId,\n sensorId,\n measureId,\n dateRange[0],\n dateRange[1]\n );\n\n const formValuesSensor = watchSensor('sensorId');\n const formValuesDateRange = watch('dateRange');\n const parsers = useSelector(authSelectors.getParsers);\n const deviceMetrics = unit.deviceMetrics.filter(\n (metric) => metric?.measureTypeId && metric.measureTypeId === 3\n );\n\n useDeepCompareEffect(() => {\n setMeasureId(sensors[0]?.measureId);\n setSensorId(sensors[0]?.sensorId);\n }, [sensors]);\n\n useEffect(() => {\n if (formValuesSensor != null) {\n setIsOpenSensorForm(false);\n setSensorId(formValuesSensor);\n setMeasureId(sensors.filter((s) => s.sensorId === formValuesSensor)[0]?.measureId);\n }\n }, [formValuesSensor]);\n\n useEffect(() => {\n if (formValuesDateRange) {\n setIsOpenDateRangeForm(false);\n setDateRange(formValuesDateRange);\n }\n }, [formValuesDateRange]);\n\n return (\n \n {!showHistTemperature ? (\n unit.deviceMetrics\n .filter((metric) => metric?.measureTypeId && metric.measureTypeId === 3)\n .map((metric, i) => (\n \n {i % 2 === 0 && i !== 0 &&
}\n \n \n\n \n \n
\n ))\n ) : (\n \n \n \n {\n if (\n !isOpenSensorForm ||\n (typeof event?.isDefaultPrevented === 'function' && !event.isDefaultPrevented())\n )\n setIsOpenSensorForm(!isOpenSensorForm);\n }}\n >\n \n \n {sensors.filter((s) => s.sensorId === sensorId)[0]?.uniqueIdentifier}\n \n \n \n
\n (\n ({\n id: s.sensorId,\n value: s.sensorId,\n label: s.uniqueIdentifier\n }))}\n />\n )}\n />\n
\n
\n \n {\n if (\n !isOpenDateRangeForm ||\n (typeof event?.isDefaultPrevented === 'function' && !event.isDefaultPrevented())\n )\n setIsOpenDateRangeForm(!isOpenDateRangeForm);\n }}\n >\n \n \n {`${dateRange[0]} - ${dateRange[1]}`}\n \n \n \n
\n (\n \n )}\n />\n
\n
\n \n {showHistTemperature && (\n {\n setShowTable(!showTable);\n }}\n />\n )}\n {\n setShowHistTemperature(!showHistTemperature);\n setShowTable(false);\n }}\n />\n
\n \n \n \n {\n history.push(\n { pathname: '/telemetry/temperature/monitor' },\n {\n unitId: unit?.unitId,\n sensorId,\n measureId,\n dateRange\n }\n );\n }}\n tooltipMessage={intl.formatMessage({ id: 'telemetry.showOnTelemetry' })}\n />\n \n \n {showTable ? (\n
\n \n c.fieldName === 'metricValue'\n ? {\n ...c,\n staticText: `${intl.formatMessage({\n id: 'units.temperature'\n })} (${deviceMetrics[0].measurementUnitName?.replace('°', '\\xB0')})`\n }\n : c\n )}\n data={data.map((d) => ({\n ...d,\n speedFormat: parsers.convertKilometersPerHourToAuthUserSpeedSystem(d.speed)\n }))}\n isFetching={isFetching}\n />\n
\n ) : (\n ({\n date: new Date(d.systemDate),\n value: d.metricValue,\n color:\n d.metricValue > sensors.filter((s) => s.sensorId === sensorId)[0]?.upperLimit ||\n d.metricValue < sensors.filter((s) => s.sensorId === sensorId)[0]?.lowerLimit\n ? '#FF4757'\n : '#1E90FF'\n }))}\n titleTooltip={intl.formatMessage({ id: 'units.temperature' })}\n metric={deviceMetrics[0].measurementUnitName?.replace('°', '\\xB0')}\n isFetching={isFetching}\n bulletRadius={0}\n upperLimit={sensors.filter((s) => s.sensorId === sensorId)[0]?.upperLimit}\n lowerLimit={sensors.filter((s) => s.sensorId === sensorId)[0]?.lowerLimit}\n max={\n sensors.filter((s) => s.sensorId === sensorId)[0]?.maxValue ??\n deviceMetrics[0].maxValue\n }\n min={\n sensors.filter((s) => s.sensorId === sensorId)[0]?.minValue ??\n deviceMetrics[0].minValue\n }\n />\n )}\n \n
\n )}\n
\n );\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { isEmpty } from 'lodash';\nimport moment from 'moment';\nimport { Fragment, useEffect, useRef, useState } from 'react';\nimport { Clock, MapPin, Menu, Settings, Terminal, User } from 'react-feather';\nimport Lightbox from 'react-image-lightbox';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport {\n Badge,\n Button,\n Col,\n Label,\n Media,\n Modal,\n ModalHeader,\n Row,\n Spinner,\n UncontrolledTooltip\n} from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport AppCollapse from 'views/components/Collapse';\nimport DefaultButton from 'views/components/DefaultButton';\nimport Toolbar from 'views/components/Toolbar';\nimport SlidingPaneForm from 'views/formComponents/SlidingPaneForm';\nimport { getUnitDeviceActionParametersService } from 'views/screens/Units/services';\nimport Avatar from '../../../../../@core/components/avatar';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport MediaGallery from '../../../../components/MediaGallery';\n\nimport { ModalFooter } from 'react-bootstrap';\nimport ButtonIconDropdown from 'views/components/ButtonIconDropdown';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport ManualHourmeterAdjustment from 'views/formComponents/ManualHourmeterAdjustment';\nimport ManualOdometerAdjustment, {\n ButtonTypes\n} from 'views/formComponents/ManualOdometerAdjustment';\nimport SlidingPaneDowntimeBinnacle from 'views/formComponents/SlidingPaneDowntimeBinnacle';\nimport SlidingPaneEntityBinnacle from 'views/formComponents/SlidingPaneEntityBinnacle';\nimport SlidingPanePreviewDriverImages from 'views/formComponents/SlidingPanePreviewDriverImages';\nimport SlidingPaneStartUnitDowntime from 'views/formComponents/SlidingPaneStartUnitDowntime';\nimport SlidingPaneUnitSpecialFunctions from 'views/formComponents/SlidingPaneUnitSpecialFunctions';\nimport { Metrics, searchUseMetric } from 'views/screens/Telemetry/utils';\nimport { GetMainStateById, GetMainStateStyle } from 'views/screens/Units/utils';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entityTypes from '../../../Entities/constants';\nimport * as unitActions from '../../actions';\nimport useGetUnitAssets from '../../hooks/useGetUnitAssets';\nimport unitPermissions from '../../permissions';\nimport * as unitSelectors from '../../reducers';\nimport { UNIT_FETCH_INTERVAL } from '../../types';\nimport { getUnitActionIcon } from '../../utils';\nimport SlidingPaneShareUnitLocation from '../SlidingPaneShareUnitLocation';\nimport SlidingPaneUnitHistoricalPositionsReport from '../SlidingPaneUnitHistoricalPositionsReport';\nimport SlidingPaneUnitImages from '../SlidingPaneUnitImages';\nimport SlidingPaneUnitSendScripts from '../SlidingPaneUnitSendScripts';\nimport UnitFuel from '../UnitFuel';\nimport UnitTemperature from '../UnitTemperature';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneUnitInformation */\n/* -------------------------------------------------------------------------- */\nexport default function SlidingPaneUnitInformation({\n closeSlidingPane,\n isSlidingPaneOpen,\n showHistoricalPositions,\n setMapPositionToPositionsBounds = false,\n changeSetMapPositionToUnitsBounds,\n title = '',\n selectedUnit,\n setSelectedUnit,\n selectedUnitRef,\n unitId,\n setIsTrajectoryDisable,\n isFollowUnitPositionEnabled = false,\n setIsFollowUnitPositionEnabled,\n handleRecenterMapPosition\n}) {\n const intl = useIntl();\n const dispatch = useDispatch();\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const fetchInformationInterval = useRef();\n const latitudeRef = useRef();\n const [showAddImageSlidingPane, setShowAddImageSlidingPane] = useState(false);\n const [showHistPositionsReportSlidingPane, setShowHistPositionsReportSlidingPane] =\n useState(false);\n const [downtimeBinnacleSlideOpen, openDowntimeBinnacleSlide] = useState(false);\n const [showShareUnitLocationSlidingPane, setShowShareUnitLocationSlidingPane] = useState(false);\n const [showSendScriptsSlidingPane, setShowSendScriptsSlidingPane] = useState(false);\n const [showChangeStatusSlidingPane, setShowChangeStatusPane] = useState(false);\n const [showUnitImagesSlidingPane, setShowUnitImagesSlidingPane] = useState(false);\n const [previewDriverImagesSlideOpen, openPreviewDriverImagesSlide] = useState(false);\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const [openSpecialFunctionsSlidingPane, setOpenSpecialFunctionsSlidingPane] =\n useState(false);\n const [isLightboxOpen, setIsLightboxOpen] = useState(false);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n const [entityBinnacleSlideOpen, openEntityBinnacleSlide] = useState(false);\n const [isFetchingUnitData, setIsFetchingUnitData] = useState(false);\n const [isOpenModal, setIsOpenModal] = useState(false);\n const [appMapEmbedLink, setAppMapEmbedLink] = useState({\n link: '',\n title: '',\n shareWhatsAppLink: ''\n });\n\n const closeModal = () => {\n setIsOpenModal(false);\n setAppMapEmbedLink({ link: '', title: '', shareWhatsAppLink: '' });\n };\n\n const copyLocationLinkToClipboard = async (link) => {\n try {\n await navigator.clipboard.writeText(link);\n alerts.showSuccessMessage({\n success: intl.formatMessage({ id: 'common.copyLink.successMessage' })\n });\n } catch (err) {\n alerts.showErrorAlertFailChanges({\n error: { errorMessage: intl.formatMessage({ id: 'common.copyLink.failMessage' }) }\n });\n }\n };\n\n const {\n unit,\n isFetchingUnit,\n isFetching,\n isEditing,\n isAcknowledgeUnitEvent,\n isEditingDowntime,\n store,\n authSystems,\n userPermissions,\n user,\n parsers\n } = useSelector((state) => {\n const unit = unitSelectors.getUnit(state, unitId);\n return {\n unit: unitId\n ? {\n ...unit,\n intlLastEvent: intl.formatMessage({ id: `organizations.event${unit?.eventId ?? 0}` })\n }\n : undefined,\n isFetchingUnit: unitSelectors.isFetchingUnitById(state),\n isEditing: unitSelectors.isEditingUnit(state),\n isFetching: unitSelectors.isFetchingUnitInformation(state),\n isAcknowledgeUnitEvent: unitSelectors.isAcknowledgeUnitEvent(state),\n isEditingDowntime: unitSelectors.isEditingUnitDowntime(state),\n store: state,\n authSystems: authSelectors.getAuthSystems(state),\n userPermissions: authSelectors.getAuthUserPermissions(state),\n user: authSelectors.getAuthUser(state),\n parsers: authSelectors.getParsers(state)\n };\n });\n\n const { assets, isFetching: isFetchingAssets } = useGetUnitAssets(unitId);\n\n const permissionState = {\n ViewMetricsMonitor: 'TU001',\n showACCState: userPermissions.includes('TU002'),\n showAppVersion: userPermissions.includes('TU008'),\n showBackupBattery: userPermissions.includes('TU009'),\n showBattery: userPermissions.includes('TU010'),\n showCellNumber: userPermissions.includes('TU011'),\n showCoverTamperState: userPermissions.includes('TU012'),\n showDoorState: userPermissions.includes('TU013'),\n showGSMSignalLevel: userPermissions.includes('TU015'),\n showICCID: userPermissions.includes('TU017'),\n showIsCharging: userPermissions.includes('TU018'),\n showMainVoltage: userPermissions.includes('TU019'),\n showMCC: userPermissions.includes('TU020'),\n showMNC: userPermissions.includes('TU021'),\n showPadlockAuthorizationType: userPermissions.includes('TU023'),\n showPadlockState: userPermissions.includes('TU024'),\n showPLMN: userPermissions.includes('TU025'),\n showSatellites: userPermissions.includes('TU026'),\n showTrailerID: userPermissions.includes('TU028'),\n showDriverID: userPermissions.includes('TU029'),\n showSolarVolage: userPermissions.includes('TU030'),\n showSimInformation: userPermissions.includes('UP039'),\n showDeviceInformation: userPermissions.includes('UP040'),\n showVehicleInformation: userPermissions.includes('UP041'),\n showAssetInformation: userPermissions.includes('UP042')\n };\n\n const indicators = [\n {\n title: 'organizations.event2',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.Battery.BitNumber)\n ? unit?.battery ?? ''\n : '--',\n metric: unit?.battery ? '%' : '',\n icon: 'Battery',\n field: 'Battery',\n useInActive: true,\n useInPeople: true,\n hidden:\n !permissionState.showBattery ||\n !searchUseMetric(unit?.metricsMask, Metrics.Battery.BitNumber)\n },\n {\n title: 'metric.mainVoltage',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.MainVoltage.BitNumber)\n ? unit?.mainVoltage ?? ''\n : '--',\n metric: 'volt',\n icon: 'Lightning',\n sizeIcon: 30,\n field: 'MainVoltage',\n useInVehicles: true,\n hidden:\n !permissionState.showMainVoltage ||\n !searchUseMetric(unit?.metricsMask, Metrics.MainVoltage.BitNumber)\n },\n {\n title: 'metric.isCharging',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.IsCharging.BitNumber)\n ? intl.formatMessage({\n id:\n unit?.isCharging === 2\n ? 'trackingUnits.charging.solar'\n : unit?.isCharging\n ? 'trackingUnits.charging.yes'\n : 'trackingUnits.charging.no'\n })\n : '--',\n metric: '',\n icon: 'Alert-350',\n field: 'IsCharging',\n customChartTooltip: 'bool',\n useInActive: true,\n isSelectable: false,\n hidden:\n !permissionState.showIsCharging ||\n !searchUseMetric(unit?.metricsMask, Metrics.IsCharging.BitNumber)\n },\n {\n title: 'metric.solarVoltage',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.SolarVoltage.BitNumber)\n ? unit?.solarVoltage ?? ''\n : '--',\n metric: 'volt',\n icon: 'sun',\n sizeIcon: 30,\n field: 'SolarVoltage',\n useInActive: true,\n useInVehicles: false,\n hidden:\n !permissionState.showSolarVolage ||\n !searchUseMetric(unit?.metricsMask, Metrics.SolarVoltage.BitNumber)\n },\n {\n title: 'metric.BB',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.BackupBattery.BitNumber)\n ? unit?.backupBattery ?? ''\n : '--',\n metric: unit?.backupBattery ? 'volt' : '',\n icon: 'backupEnergy',\n field: 'BackupBattery',\n useInActive: true,\n useInVehicles: true,\n hidden:\n !permissionState.showBackupBattery ||\n !searchUseMetric(unit?.metricsMask, Metrics.BackupBattery.BitNumber)\n },\n {\n title: 'metric.DS',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.DoorState.BitNumber)\n ? intl.formatMessage({ id: unit?.doorState ? 'common.yes' : 'common.no' })\n : '--',\n metric: '',\n icon: 'OpenDoor',\n field: 'DoorState',\n useInActive: true,\n useInVehicles: true,\n isSelectable: false,\n hidden:\n !permissionState.showDoorState ||\n !searchUseMetric(unit?.metricsMask, Metrics.DoorState.BitNumber)\n },\n {\n title: 'metric.CTS',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.CoverTamperState.BitNumber)\n ? intl.formatMessage({\n id: unit?.coverTamperState ? 'common.yes' : 'common.no'\n })\n : '--',\n metric: '',\n field: 'CoverTamperState',\n useInActive: true,\n isSelectable: false,\n hidden:\n !permissionState.showCoverTamperState ||\n !searchUseMetric(unit?.metricsMask, Metrics.CoverTamperState.BitNumber)\n },\n {\n title: 'metric.PLS',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.PadlockState.BitNumber)\n ? intl.formatMessage({\n id: unit?.padlockState ? 'trackingUnits.sat.open' : 'trackingUnits.sat.closed'\n })\n : '--',\n metric: '',\n field: 'PadlockState',\n useInActive: true,\n isSelectable: false,\n hidden:\n !permissionState.showPadlockState ||\n !searchUseMetric(unit?.metricsMask, Metrics.PadlockState.BitNumber)\n },\n {\n title: 'metric.PLA',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.PadlockAuthorizationType.BitNumber)\n ? intl.formatMessage({\n id: unit?.padlockAuthorizationType ? 'common.yes' : 'common.no'\n })\n : '--',\n metric: '',\n field: 'PadlockAuthorizationType',\n useInActive: true,\n isSelectable: false,\n hidden:\n !permissionState.showPadlockAuthorizationType ||\n !searchUseMetric(unit?.metricsMask, Metrics.PadlockAuthorizationType.BitNumber)\n },\n {\n title: 'metric.SAT',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.Satellites.BitNumber)\n ? unit?.satellites ?? ''\n : '--',\n metric: '',\n icon: 'satellite',\n field: 'Satellites',\n useInActive: true,\n useInVehicles: true,\n linealChart: true,\n hidden:\n !permissionState.showSatellites ||\n !searchUseMetric(unit?.metricsMask, Metrics.Satellites.BitNumber)\n },\n {\n title: 'metric.gsmSignalLevel',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.GSMSignalLevel.BitNumber)\n ? unit?.gsmSignalLevel ?? ''\n : '--',\n metric: '',\n field: 'gsmSignalLevel',\n useInActive: true,\n useInVehicles: true,\n hidden:\n !unit?.gsmSignalLevel ||\n !permissionState.showGSMSignalLevel ||\n !searchUseMetric(unit.metricsMask, Metrics.GSMSignalLevel.BitNumber)\n },\n {\n title: 'metric.abrev.plmn',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.PLMN.BitNumber)\n ? unit?.plmn ?? ''\n : '--',\n metric: '',\n field: 'PLMN',\n useInActive: true,\n useInVehicles: true,\n hidden:\n !unit?.plmn ||\n !permissionState.showPLMN ||\n !searchUseMetric(unit.metricsMask, Metrics.PLMN.BitNumber)\n },\n {\n title: 'metric.abrev.mcc',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.MCC.BitNumber)\n ? unit?.mcc ?? ''\n : '--',\n metric: '',\n field: 'MCC',\n useInActive: true,\n useInVehicles: true,\n isSelectable: false,\n hidden: !permissionState.showMCC || !searchUseMetric(unit?.metricsMask, Metrics.MCC.BitNumber)\n },\n {\n title: 'metric.abrev.mnc',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.MNC.BitNumber)\n ? unit?.mnc ?? ''\n : '--',\n metric: '',\n field: 'MNC',\n useInActive: true,\n useInVehicles: true,\n isSelectable: false,\n hidden:\n !unit?.mnc ||\n !permissionState.showMNC ||\n !searchUseMetric(unit.metricsMask, Metrics.MNC.BitNumber)\n },\n {\n title: 'metric.CN',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.CellNumber.BitNumber)\n ? unit?.cellNumber ?? ''\n : '--',\n metric: '',\n icon: 'cellular-signal',\n field: 'CellNumber',\n useInActive: true,\n useInVehicles: true,\n hidden:\n !permissionState.showCellNumber ||\n !searchUseMetric(unit?.metricsMask, Metrics.CellNumber.BitNumber)\n },\n {\n title: 'metric.abrev.ICC',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.ICCID.BitNumber)\n ? unit?.iccid ?? ''\n : '--',\n metric: '',\n field: 'ICCID',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n hidden:\n !unit?.iccid ||\n !permissionState.showICCID ||\n !searchUseMetric(unit?.metricsMask, Metrics.ICCID.BitNumber)\n },\n /* indicadores de vehiculos */\n {\n title: 'metric.DI',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.DriverId.BitNumber)\n ? unit?.driverId ?? ''\n : '--',\n metric: '',\n field: 'DriverId',\n isSelectable: false,\n useInActive: false,\n useInVehicles: true,\n hidden:\n !unit?.driverId ||\n !permissionState.showDriverID ||\n !searchUseMetric(unit?.metricsMask, Metrics.DriverId.BitNumber)\n },\n {\n title: 'metric.TID',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.TrailerID.BitNumber)\n ? unit?.trailerId ?? ''\n : '--',\n metric: '',\n field: 'TrailerId',\n isSelectable: false,\n useInActive: false,\n useInVehicles: true,\n hidden:\n !unit?.trailerId ||\n !permissionState.showTrailerID ||\n !searchUseMetric(unit?.metricsMask, Metrics.TrailerID.BitNumber)\n },\n {\n title: 'AppVersion',\n currentStatus: searchUseMetric(unit?.metricsMask, Metrics.AppVersion.BitNumber)\n ? unit?.appVersion ?? ''\n : '--',\n metric: '',\n field: 'AppVersion',\n isSelectable: false,\n useInPeople: true,\n hidden:\n !permissionState.showAppVersion ||\n !searchUseMetric(unit?.metricsMask, Metrics.AppVersion.BitNumber)\n },\n {\n title: 'common.id',\n currentStatus: !unit?.simCardId ? 'N/A' : unit?.simCardId,\n metric: '',\n field: 'simId',\n icon: 'Phone',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n useInPeople: true,\n hidden: !permissionState.showSimInformation,\n useInAppCollapse: true,\n informationType: 'SIM'\n },\n {\n title: 'sims.cellularNumber',\n currentStatus: !unit?.simCellularNumber ? 'N/A' : unit?.simCellularNumber,\n metric: '',\n field: 'simCellularNumber',\n icon: 'Phone',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n useInPeople: true,\n hidden: !permissionState.showSimInformation,\n useInAppCollapse: true,\n informationType: 'SIM'\n },\n {\n title: 'sims.cellularProvider',\n currentStatus: !unit?.cellularProviderName ? 'N/A' : unit?.cellularProviderName,\n metric: '',\n field: 'simcellularProvider',\n icon: 'Phone',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n useInPeople: true,\n hidden: !permissionState.showSimInformation,\n useInAppCollapse: true,\n informationType: 'SIM'\n },\n {\n title: 'sims.iccid',\n currentStatus: !unit?.iccid ? 'N/A' : unit?.iccid,\n metric: '',\n field: 'simIccid',\n icon: 'Phone',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n useInPeople: true,\n hidden: !permissionState.showSimInformation,\n useInAppCollapse: true,\n informationType: 'SIM'\n },\n {\n title: 'sims.imsi',\n currentStatus: !unit?.imsi ? 'N/A' : unit?.imsi,\n metric: '',\n field: 'simImsi',\n icon: 'Phone',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n useInPeople: true,\n hidden: !permissionState.showSimInformation,\n useInAppCollapse: true,\n informationType: 'SIM'\n },\n {\n title: 'common.id',\n currentStatus: !unit?.deviceId ? 'N/A' : unit?.deviceId,\n metric: '',\n field: 'deviceId',\n icon: 'noun_GPS_3452904',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n useInPeople: true,\n hidden: !permissionState.showDeviceInformation,\n useInAppCollapse: true,\n informationType: 'DEVICE'\n },\n {\n title: 'trackingUnits.deviceUniqueIdentifier',\n currentStatus: !unit?.deviceIdentifier ? 'N/A' : unit?.deviceIdentifier,\n metric: '',\n field: 'deviceIdentifier',\n icon: 'noun_GPS_3452904',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n useInPeople: true,\n hidden: !permissionState.showDeviceInformation,\n useInAppCollapse: true,\n informationType: 'DEVICE'\n },\n {\n title: 'trackingUnits.gpsBrand',\n currentStatus: !unit?.brandName ? 'N/A' : unit?.brandName,\n metric: '',\n field: 'gpsBrand',\n icon: 'noun_GPS_3452904',\n isSelectable: false,\n useInPeople: true,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showDeviceInformation,\n useInAppCollapse: true,\n informationType: 'DEVICE'\n },\n {\n title: 'trackingUnits.gpsModel',\n currentStatus: !unit?.deviceModelName ? 'N/A' : unit?.deviceModelName,\n metric: '',\n field: 'deviceModelName',\n icon: 'noun_GPS_3452904',\n isSelectable: false,\n useInPeople: true,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showDeviceInformation,\n useInAppCollapse: true,\n informationType: 'DEVICE'\n },\n {\n title: 'modules.serialNumber',\n currentStatus: !unit?.serialNumber ? 'N/A' : unit?.serialNumber,\n metric: '',\n field: 'deviceSerialNumber',\n icon: 'noun_GPS_3452904',\n isSelectable: false,\n useInPeople: true,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showDeviceInformation,\n useInAppCollapse: true,\n informationType: 'DEVICE'\n },\n {\n title: 'modules.imei',\n currentStatus: !unit?.deviceImei ? 'N/A' : unit?.deviceImei,\n metric: '',\n field: 'deviceImei',\n icon: 'noun_GPS_3452904',\n isSelectable: false,\n useInPeople: true,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showDeviceInformation,\n useInAppCollapse: true,\n informationType: 'DEVICE'\n },\n {\n title: 'modules.propertyTypeId',\n currentStatus: !unit?.devicePropertyTypeId\n ? 'N/A'\n : intl.formatMessage({ id: `modules.propertyOption${unit?.devicePropertyTypeId}` }),\n metric: '',\n field: 'devicePropertyTypeId',\n icon: 'noun_GPS_3452904',\n isSelectable: false,\n useInPeople: true,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showDeviceInformation,\n useInAppCollapse: true,\n informationType: 'DEVICE'\n },\n {\n title: 'common.id',\n currentStatus: !unit?.vehicleId ? 'N/A' : unit?.vehicleId,\n metric: '',\n field: 'vehicleId',\n icon: 'noun_Wheel_4039720',\n isSelectable: false,\n useInPeople: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showVehicleInformation,\n useInAppCollapse: true,\n informationType: 'VEHICLE'\n },\n {\n title: 'trackingUnits.vehicleName',\n currentStatus: !unit?.vehicleName ? 'N/A' : unit?.vehicleName,\n metric: '',\n field: 'vehicleName',\n icon: 'noun_Wheel_4039720',\n isSelectable: false,\n useInPeople: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showVehicleInformation,\n useInAppCollapse: true,\n informationType: 'VEHICLE'\n },\n {\n title: 'vehicles.maker',\n currentStatus: !unit?.vehicleMakerName ? 'N/A' : unit?.vehicleMakerName,\n metric: '',\n field: 'vehicleMakerName',\n icon: 'noun_Wheel_4039720',\n isSelectable: false,\n useInPeople: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showVehicleInformation,\n useInAppCollapse: true,\n informationType: 'VEHICLE'\n },\n {\n title: 'vehicles.model',\n currentStatus: !unit?.vehicleModelName ? 'N/A' : unit?.vehicleModelName,\n metric: '',\n field: 'vehicleModelName',\n icon: 'noun_Wheel_4039720',\n isSelectable: false,\n useInPeople: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showVehicleInformation,\n useInAppCollapse: true,\n informationType: 'VEHICLE'\n },\n {\n title: 'vehicles.licensePlate',\n currentStatus: !unit?.licensePlate ? 'N/A' : unit?.licensePlate,\n metric: '',\n field: 'licensePlate',\n isSelectable: false,\n useInPeople: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showVehicleInformation,\n useInAppCollapse: true,\n informationType: 'VEHICLE'\n },\n {\n title: 'vehicles.chasis',\n currentStatus: !unit?.chasis ? 'N/A' : unit?.chasis,\n metric: '',\n field: 'chasis',\n isSelectable: false,\n useInPeople: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showVehicleInformation,\n useInAppCollapse: true,\n informationType: 'VEHICLE'\n },\n {\n title: 'vehicles.motor',\n currentStatus: !unit?.motor ? 'N/A' : unit?.motor,\n metric: '',\n field: 'motor',\n isSelectable: false,\n useInPeople: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showVehicleInformation || !unit?.motor,\n useInAppCollapse: true,\n informationType: 'VEHICLE'\n },\n {\n title: 'trackingUnits.assetName',\n currentStatus: !unit?.assetIdentifier ? 'N/A' : unit?.assetIdentifier,\n metric: '',\n field: 'assetIdentifier',\n isSelectable: false,\n useInPeople: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showAssetInformation,\n useInAppCollapse: true,\n informationType: 'ASSET'\n }\n ];\n\n const availableIndicators =\n unit?.unitTypeId === 2\n ? indicators.filter((indicator) => !indicator?.hidden && indicator.useInActive === true)\n : unit?.unitTypeId === 1\n ? indicators.filter((indicator) => !indicator?.hidden && indicator.useInVehicles === true)\n : unit?.unitTypeId === 0\n ? indicators.filter((indicator) => !indicator?.hidden && indicator.useInPeople === true)\n : [];\n\n const unitIndicators = availableIndicators.filter(\n (indicator) => indicator?.useInAppCollapse === true\n );\n\n const unitAssetInformation =\n permissionState.showAssetInformation && unit?.unitTypeId !== 0\n ? assets\n .filter((asset) => asset.assetTypeId !== 1) // Filtra los activos de tipo vehiculo\n .map((asset) => {\n return {\n assetIdentifier: !asset?.assetIdentifier ? 'N/A' : asset?.assetIdentifier,\n assetData: [\n {\n title: 'common.id',\n currentStatus: !asset?.assetId ? 'N/A' : asset?.assetId,\n metric: '',\n field: 'assetId'\n },\n {\n title: 'assets.assetType',\n currentStatus: !asset?.assetTypeId\n ? 'N/A'\n : intl.formatMessage({ id: `assets.assetTypes${asset.assetTypeId}` }),\n metric: '',\n field: 'assetType'\n }\n ]\n };\n })\n : [];\n /* \n useEffect(() => {\n if (unit) unitContext.changeUnitState({ ...unit, isSelected: true });\n }, [isSlidingPaneOpen]); */\n\n const cleanup = () => {\n if (fetchInformationInterval.current) clearInterval(fetchInformationInterval.current);\n };\n const [showAllButtonsRightToolbar, setShowAllButtonsRightToolbar] = useState(false);\n\n useEffect(() => {\n return () => cleanup();\n }, []);\n\n useEffect(() => {\n if (isFetching === false && isFetchingUnit === false && isFetchingUnitData) {\n setIsFetchingUnitData(false);\n }\n }, [isFetching, isFetchingUnit, isFetchingUnitData]);\n\n useEffect(() => {\n setIsFetchingUnitData(true);\n }, []);\n\n useEffect(() => {\n if (!isEditing && !isFetching && !isFetchingUnit)\n dispatch(unitActions.startFetchingUnitInformation(unitId));\n }, [isEditing]);\n\n useEffect(() => {\n cleanup();\n if (isSlidingPaneOpen && unit?.unitId && isEditingDowntime === false) {\n setIsFetchingUnitData(true);\n dispatch(unitActions.startFetchingUnitInformation(unit?.unitId));\n fetchInformationInterval.current = setInterval(() => {\n dispatch(unitActions.startFetchingUnitInformation(unit?.unitId));\n }, UNIT_FETCH_INTERVAL);\n }\n }, [isSlidingPaneOpen, unit?.unitId, isEditingDowntime]);\n\n const [followPositionButtonState, setFollowPositionButtonState] = useState(false);\n\n useEffect(() => {\n if (setIsFollowUnitPositionEnabled) {\n if (showHistPositionsReportSlidingPane && isFollowUnitPositionEnabled) {\n setFollowPositionButtonState(true);\n setIsFollowUnitPositionEnabled(false);\n } else if (!showHistPositionsReportSlidingPane && followPositionButtonState) {\n setIsFollowUnitPositionEnabled(true);\n }\n }\n }, [showHistPositionsReportSlidingPane]);\n\n const copyLatLong = (latitude, longitude) => {\n navigator.clipboard.writeText(`${latitude.toFixed(6)},${longitude.toFixed(6)}`);\n\n alerts.showSuccessMessage({\n success: intl.formatMessage({ id: 'common.copyClipboardSuccessfully' })\n });\n };\n\n const doAction = (unit, action) => {\n if (action.requireUserConfirmation) {\n alerts.showConfirmationMessage({\n message: intl.formatMessage(\n { id: 'units.userConfirmationMessage' },\n {\n unit: unit.unitName,\n action: intl.formatMessage({\n id: 'units.deviceActionId.' + action.deviceActionId\n })\n }\n ),\n action() {\n dispatch(unitActions.executeDeviceAction(unit.unitId, action.deviceActionId));\n }\n });\n } else {\n if (action.requireParameters) {\n getUnitDeviceActionParametersService({\n unitId: unit.unitId,\n deviceActionId: action.deviceActionId\n }).then((response) => {\n if (response.success) {\n setSlidingPaneProps({\n title: intl.formatMessage({\n id: 'units.deviceActionId.' + action.deviceActionId\n }),\n width: '40rem',\n inputs: response.data.map((result) => {\n const param = camelcaseKeys(result);\n return {\n type: param.inputType,\n name: 'input-' + param.deviceActionParameterId,\n initialValue: param.inputValue,\n required: param.isRequired,\n label: param.parameterName,\n placeholder: param.parameterComments,\n appendcomponent: param.measurementUnitName,\n min: param.minValue != null ? param.minValue : undefined,\n max: param.maxValue != null ? param.maxValue : undefined\n };\n }),\n action: (values) =>\n dispatch(\n unitActions.executeDeviceAction(\n unit.unitId,\n action.deviceActionId,\n response.data\n .map((result) => {\n const param = camelcaseKeys(result);\n return (\n param.deviceActionParameterId +\n '~' +\n values['input-' + param.deviceActionParameterId]\n );\n })\n .join('^')\n )\n )\n });\n setOpenSlidingPaneForm(true);\n }\n });\n } else dispatch(unitActions.executeDeviceAction(unit.unitId, action.deviceActionId));\n }\n };\n\n return (\n <>\n \n {unit?.unitName ? unit.unitName : title}\n {userPermissions.includes('UP043') && (\n {\n setSlidingPaneProps({\n title: intl.formatMessage({ id: 'common.edit' }),\n subtitle: `${intl.formatMessage({ id: 'units.unit' })}: ${title}`,\n width: '45rem',\n inputs: [\n {\n type: 'text',\n name: 'unitName',\n required: true,\n initialValue: unit?.unitName,\n label: intl.formatMessage({ id: 'units.unit.name' })\n },\n {\n type: 'unitThemeDropdown',\n name: 'themeId',\n required: true,\n initialValue: unit?.themeId,\n id: 'unitThemeDropdown'\n }\n ],\n action: (values) => {\n dispatch(\n unitActions.startEditingUnit({\n ...unit,\n unitName: values.unitName,\n themeId: values.themeId\n })\n );\n }\n });\n setOpenSlidingPaneForm(true);\n }}\n />\n )}\n \n }\n width=\"45rem\"\n onRequestClose={closeSlidingPane}\n >\n {isFetchingUnitData || isEditing ? (\n \n \n \n \n \n ) : (\n <>\n {!isFetching && (unit?.images?.length ?? 0) > 0 && (\n ({\n ...image,\n fullImageUrl: image?.imageUrl\n })) ?? []\n }\n autoplay={{\n delay: 5000,\n disableOnInteraction: false,\n pauseOnMouseEnter: true\n }}\n navigation={true}\n pagination={true}\n className={'default-width-image'}\n classNameImg={'img-contain-nowidth'}\n />\n )}\n {/* Toolbar for unit information */}\n {unit?.latitude != null && unit?.longitude != null && (\n <>\n \n \n
\n \n \n
\n \n \n {\n window.open(\n `/track/${unitId}/${unit?.latitude}/${unit?.longitude}`,\n '_blank',\n 'width=800,height=600,top=100,left=100,resizable=yes,scrollbars=yes'\n );\n },\n tooltipMessage: intl.formatMessage({\n id: 'trackingUnits.map.trackUnitNewWindow'\n })\n },\n {\n key: 2,\n id: 'unitImagesButton',\n icon: 'Image',\n action: () => {\n setShowAddImageSlidingPane(false);\n setShowUnitImagesSlidingPane(true);\n },\n tooltipMessage: intl.formatMessage({ id: 'units.editImages' })\n },\n {\n key: 3,\n id: 'unitImagesAddButton',\n icon: 'Upload',\n action: () => {\n setShowAddImageSlidingPane(true);\n setShowUnitImagesSlidingPane(true);\n },\n tooltipMessage: intl.formatMessage({ id: 'units.addImage' })\n },\n {\n key: 4,\n id: 'sendScriptsButton',\n icon: 'ScriptCode',\n action: () => {\n setShowSendScriptsSlidingPane(true);\n },\n tooltipMessage: intl.formatMessage({\n id: 'units.sendScripts'\n }),\n permissions: [unitPermissions.sendScripts]\n },\n {\n key: 5,\n id: 'unitSpecialFuntion',\n icon: 'GearsTurning',\n action: () => {\n setOpenSpecialFunctionsSlidingPane(true);\n },\n tooltipMessage: intl.formatMessage({\n id: 'buttons.specialFunctions'\n }),\n permissions: ['UF001']\n },\n {\n key: 6,\n id: 'binnacleButton',\n icon: 'Planning',\n action: () => {\n openEntityBinnacleSlide(true);\n },\n tooltipMessage: intl?.formatMessage({ id: 'trackingUnits.binnacle' })\n },\n {\n key: 7,\n id: 'binnacleDowntimeButton',\n icon: 'Planning',\n action: () => {\n openDowntimeBinnacleSlide(true);\n },\n tooltipMessage: intl.formatMessage({\n id: 'trackingUnits.downtimeBinnacle'\n }),\n permissions: [unitPermissions.downtime]\n }\n ]}\n />,\n {\n if (setIsFollowUnitPositionEnabled)\n setIsFollowUnitPositionEnabled(!isFollowUnitPositionEnabled);\n }}\n tooltipMessage={\n isFollowUnitPositionEnabled\n ? intl.formatMessage({ id: 'units.disableFollowUnitPosition' })\n : intl.formatMessage({ id: 'units.enableFollowUnitPosition' })\n }\n tooltipPosition=\"top\"\n />,\n {\n handleRecenterMapPosition([unit?.latitude, unit?.longitude]);\n }}\n tooltipMessage={intl.formatMessage({\n id: 'units.centerMapToUnit'\n })}\n tooltipPosition=\"top\"\n />,\n {\n const wazeLink = `https://embed.waze.com/iframe?zoom=14&lat=${unit?.latitude}&lon=${unit?.longitude}&pin=1&ct=livemap`;\n const whatsappLink = `https://wa.me/?text=${encodeURIComponent(\n `¡Sigue la ubicación en Waze! ${wazeLink}`\n )}`;\n setAppMapEmbedLink({\n link: wazeLink,\n title: intl.formatMessage({ id: 'common.wazeLocation' }),\n shareWhatsAppLink: whatsappLink\n });\n setIsOpenModal(true);\n copyLocationLinkToClipboard(wazeLink);\n },\n tooltipMessage: intl.formatMessage({ id: 'units.shareLocation.waze' })\n },\n {\n key: 2,\n id: 'googleMapsLocation',\n icon: 'Google1',\n action: () => {\n const googleMapsLink = `https://www.google.com/maps?q=${unit?.latitude},${unit?.longitude}`;\n const whatsappLink = `https://wa.me/?text=${encodeURIComponent(\n `¡Sigue la ubicación en Google Maps! ${googleMapsLink}`\n )}`;\n if (user.useGoogleMaps === 1) {\n setAppMapEmbedLink({\n link: `https://www.google.com/maps/embed/v1/place?key=${user.googleMapsApiKey}&q=${unit?.latitude},${unit?.longitude}&zoom=16`,\n title: intl.formatMessage({ id: 'common.googleMapLocation' }),\n shareWhatsAppLink: whatsappLink\n });\n setIsOpenModal(true);\n copyLocationLinkToClipboard(googleMapsLink);\n } else copyLocationLinkToClipboard(googleMapsLink);\n },\n tooltipMessage: intl.formatMessage({\n id: 'units.shareLocation.googleMaps'\n })\n },\n {\n key: 3,\n id: 'shareUnitLocationWhatsApp',\n icon: 'whatsapp',\n action: () => {\n const wazeLink = `https://www.waze.com/ul?ll=${unit?.latitude},${unit?.longitude}&navigate=yes`;\n const whatsappLink = `https://wa.me/?text=${encodeURIComponent(\n `¡Sigue la ubicación en Waze! ${wazeLink}`\n )}`;\n\n // Redirige a WhatsApp para compartir el enlace\n window.open(whatsappLink, '_blank');\n },\n tooltipMessage: intl.formatMessage({\n id: 'units.shareLocation.whatsapp'\n })\n },\n {\n key: 4,\n id: 'webtrackLink',\n icon: 'Link',\n action: () => {\n setShowShareUnitLocationSlidingPane(true);\n },\n tooltipMessage: intl.formatMessage({\n id: 'units.shareLocation.webtrack'\n })\n }\n ]}\n />,\n {\n setShowHistPositionsReportSlidingPane(true);\n if (setIsTrajectoryDisable) setIsTrajectoryDisable(true);\n }}\n tooltipMessage={intl.formatMessage({\n id: 'units.showHistoricalPositionsReport'\n })}\n tooltipPosition=\"top\"\n />\n ]}\n />\n \n
\n\n {/* unit information */}\n
\n {unit?.driverId && (\n <>\n \n \n setIsLightboxOpen(true)}\n />\n
\n \n {unit?.driverPhoneNumber &&\n `${intl.formatMessage({ id: 'units.phone' })}: ${\n unit?.driverPhoneNumber\n }`}\n
\n
\n {(unit?.driverTotalFiles ?? 0) > 0 && (\n <>\n \n {intl.formatMessage({ id: 'drivers.seeAttachedImages' })}\n \n openPreviewDriverImagesSlide(true)}\n />\n \n )}\n
\n
\n
\n \n )}\n \n\n \n
\n\n \n {unit?.latitude != null && unit?.longitude != null && (\n \n \n {intl.formatMessage({ id: 'common.clickCopyClipboard' })}\n \n {\n copyLatLong(unit?.latitude, unit?.longitude);\n }}\n >\n \n \n \n \n )}\n {unit?.latitude != null && unit?.longitude != null && (\n \n \n {intl.formatMessage({ id: 'common.clickCopyClipboard' })}\n \n {\n copyLatLong(unit?.latitude, unit?.longitude);\n }}\n >\n \n \n \n \n )}\n
\n
\n\n \n \n \n {isEditingDowntime === true || isFetching === true ? (\n \n \n \n \n \n ) : (\n <>\n \n {unit.mainStateName}\n \n {authSelectors.getAuthUserHasPermissionsAny(store, [\n unitPermissions.downtime\n ]) &&\n (unit.downtimeReasonId === null ||\n unit.downtimeReasonId === undefined) && (\n <>\n \n {intl.formatMessage({ id: 'units.startDowntime' })}\n \n setShowChangeStatusPane(true)}\n />\n \n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, [\n unitPermissions.downtime\n ]) &&\n unit.downtimeReasonId !== undefined &&\n unit.downtimeReasonId !== null && (\n <>\n \n {intl.formatMessage({ id: 'units.endDowntime' })}\n \n \n dispatch(unitActions.startEndDowntimeUnit(unit?.unitId))\n }\n />\n \n )}\n \n )}\n \n \n \n {unit.eventId != undefined ? (\n isAcknowledgeUnitEvent ? (\n \n \n \n \n \n ) : (\n \n {unit?.intlLastEvent?.length >= 15 && (\n \n \n \n )}\n \n {unit.eventName || unit.eventId\n ? `${\n unit?.intlLastEvent.length >= 15\n ? unit?.intlLastEvent?.substring(0, 15) + '...'\n : unit.eventId != null\n ? unit?.intlLastEvent\n : ''\n }`\n : ''}\n \n {unit.eventId !== 0 && (\n {\n dispatch(unitActions.startAcknowledgeUnitEvent(unit.unitId));\n }}\n />\n )}\n \n )\n ) : null}\n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n