{"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","views/screens/Units/types/index.tsx","redux/utils/alerts/index.tsx","redux/sagas/settings/apibaseurl.js","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","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/services/routeCheckpoints.ts","views/screens/Routes/sagas/routeCheckpoints/index.tsx","views/screens/Routes/sagas/routesAssignments/index.tsx","views/screens/Routes/schemas/routesComments/index.tsx","views/screens/Routes/services/routesComments.ts","views/screens/Routes/sagas/routesComments/index.tsx","views/screens/Routes/schemas/routesExecutions/index.tsx","views/screens/Routes/sagas/routesExecutions/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/services/locations.ts","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","redux/sagas/index.tsx","redux/storeConfig/store.js","utility/icomoon/index.js","views/screens/Forms/types.tsx","views/screens/Groups/types/index.tsx","views/screens/Jobs/types/backlog/index.tsx","views/screens/Workplans/types/workplans/index.tsx","views/screens/Entities/constants/index.tsx","views/screens/Quotations/types.tsx","views/screens/Organizations/types.tsx","views/screens/Routes/types/routesExecutions/index.tsx","views/screens/Routes/types/routes/index.tsx","@core/layouts/components/menu/screens/index.tsx","views/screens/Geofences/types/index.tsx","views/screens/Users/types/index.tsx","views/screens/Locations/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/MaintenanceLines/types.tsx","views/screens/Agents/types.tsx","views/screens/Vehicles/types.tsx","views/screens/Customers/types.tsx","views/screens/ServiceClasses/types.tsx","views/screens/Divisions/types.tsx","views/screens/Subdivisions/types.tsx","views/screens/Offices/types.tsx","views/screens/SIMs/types.tsx","views/screens/Contracts/types.tsx","views/screens/ContractTemplates/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","views/screens/Units/actions/index.tsx","redux/types/static-catalogs/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter/index.tsx","views/screens/Telemetry/utils/index.js","utility/types.ts","utility/Utils.ts","views/screens/vehicleMaintenance/types/catalogs/categories/index.ts","views/screens/vehicleMaintenance/types/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/types/catalogs/providers/index.ts","views/screens/vehicleMaintenance/types/catalogs/spareParts/index.ts","views/screens/Entities/reducers/index.tsx","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/screens/Routes/types/routesAssignments/index.tsx","views/formComponents/TextInput/index.tsx","views/screens/Geofences/actions/index.tsx","views/screens/Workplans/types/workplansExecutionLocations/index.tsx","views/screens/Workplans/types/workplansComments/index.tsx","views/screens/Geofences/reducers/index.tsx","redux/actions/auth/index.js","views/screens/Quotations/actions/index.tsx","views/screens/Schedules/actions/index.tsx","views/screens/Units/reducers/deviceMetrics/index.tsx","views/screens/Units/reducers/deviceActions/index.tsx","views/screens/Units/reducers/groups/index.tsx","views/screens/Units/reducers/reports/index.tsx","views/screens/Units/reducers/images/index.tsx","views/screens/Units/reducers/sensors/index.tsx","views/screens/Units/reducers/unitLiveStatus/index.tsx","views/screens/Units/reducers/index.tsx","views/screens/vehicleMaintenance/permissions.ts","redux/types/static-catalogs/countries/index.tsx","views/screens/Routes/actions/routesExecutions/index.tsx","views/screens/Organizations/reducers/index.tsx","views/screens/Locations/reducers/importedLocations/index.tsx","views/screens/Locations/reducers/index.tsx","views/screens/Jobs/actions/backlog/index.tsx","views/components/DefaultButton/index.tsx","views/screens/Contacts/actions/index.ts","views/screens/Organizations/actions/index.tsx","views/formComponents/NumericalInput/index.tsx","views/screens/Locations/actions/index.tsx","views/screens/Groups/actions/index.tsx","views/screens/Workplans/actions/workplans/index.tsx","views/screens/Forms/actions/index.tsx","views/screens/Routes/reducers/routesExecutions/index.tsx","views/screens/Jobs/types/board/index.tsx","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/Routes/utils/index.tsx","views/screens/Entities/types/index.tsx","env.js","views/formComponents/CheckBoxInput/index.tsx","views/screens/Subdivisions/reducers/index.tsx","views/screens/Workplans/permissions.ts","views/components/Toolbar/index.tsx","views/screens/Entities/views/FetchEntities/index.tsx","views/screens/Jobs/services/jobs.ts","views/screens/Units/utils.tsx","views/screens/Units/services/index.ts","views/screens/Agents/actions/index.tsx","views/screens/Operators/actions/index.tsx","views/screens/Groups/schemas/index.tsx","views/screens/Reports/permissions.ts","views/screens/Users/actions/index.tsx","views/screens/Routes/reducers/routesReport/index.tsx","views/screens/Routes/reducers/routes/index.tsx","utility/http/interceptors/interceptor-utils.ts","views/screens/Entities/actions/index.tsx","views/screens/Drivers/actions/index.tsx","views/screens/Modules/actions/index.tsx","views/screens/Jobs/types/report/index.tsx","views/screens/Workplans/types/workplansReport/index.tsx","views/screens/Routes/types/routesReport/index.tsx","views/screens/Routes/permissions.ts","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/Sensors/actions/index.tsx","views/screens/Contracts/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","views/screens/SIMs/actions/index.tsx","redux/types/navbar/index.js","views/components/Map/utils/index.tsx","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/static-catalogs/cellular-providers/index.tsx","redux/types/models/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/formComponents/TimeInput/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/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/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/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer/index.ts","views/formComponents/MultiSelectInput/index.tsx","@core/components/avatar/index.js","views/components/TitleH4/index.js","views/screens/Drivers/reducers/index.tsx","views/screens/Agents/reducers/index.tsx","views/screens/VehicleFuel/permissions.ts","views/screens/Workplans/services/workplans.ts","views/screens/Telemetry/permissions.ts","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByDate/index.ts","views/components/Map/components/MapBaseLayers/index.tsx","views/components/Map/components/MapGeofenceEdit/index.tsx","views/components/Map/components/MarkerClusterGroup/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/RotatedMarker/index.tsx","views/screens/Units/views/SlidingPaneUnitHistoricalPositionsReport/index.tsx","views/screens/Units/views/SlidingPaneUnitHistoricalScriptsReport/index.tsx","views/screens/Units/views/SlidingPaneShareUnitLocation/index.tsx","views/screens/Units/services/unitImages.ts","views/screens/Units/views/SlidingPaneUnitImages/index.tsx","views/screens/Units/views/UnitFuel/index.tsx","views/screens/Units/views/UnitTemperature/index.tsx","views/formComponents/ManualHourmeterAdjustment/index.tsx","views/formComponents/SlidingPaneManualHourmeterAdjustment/index.tsx","views/screens/Units/views/SlidingPaneUnitInformation/index.tsx","views/components/Map/components/MapUnits/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/vehicleMaintenance/actions/catalogs/spareParts/index.ts","views/screens/Units/permissions.ts","views/screens/Routes/actions/routesAssignments/index.tsx","redux/types/static-catalogs/sensor-measures/index.tsx","views/screens/vehicleMaintenance/actions/catalogs/workmanship/index.ts","views/screens/Routes/services/routes.ts","views/screens/Routes/actions/routesComments/index.tsx","views/screens/vehicleMaintenance/actions/catalogs/providers/index.ts","views/components/DeleteButton/index.tsx","views/formComponents/SlidingPaneForm/index.tsx","views/formComponents/LocationDropDown/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/categories/index.ts","views/screens/Organizations/services/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/components/MediaGallery/index.tsx","views/screens/Groups/services/groups.ts","views/screens/Workplans/reducers/workplansAssignments/index.tsx","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/formComponents/CustomersDropdown/index.tsx","views/screens/Sensors/reducers/index.tsx","views/screens/Notifications/permissions.ts","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/components/EditButton/index.tsx","views/components/ReportViewerButton/index.tsx","hooks/useRerender/index.ts","views/components/DropdownInput/index.tsx","configs/themeConfig.js","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/ServiceClasses/reducers/index.tsx","views/screens/Quotations/reducers/index.tsx","views/screens/Modules/reducers/index.tsx","views/screens/Routes/paths.ts","views/screens/Geofences/services/geofences.ts","views/screens/Schedules/permissions.ts","views/screens/Contracts/reducers/index.tsx","views/screens/ContractTemplates/reducers/index.tsx","views/formComponents/OfficesDropdown/index.tsx","views/screens/Locations/views/SlidingPaneEditLocation/index.tsx","views/screens/VehicleFuel/paths.ts","views/screens/Workplans/paths.ts","views/screens/Jobs/paths.ts","redux/actions/static-catalogs/location-classes/index.js","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/formComponents/RadioButtonInput/index.tsx","views/screens/MaintenanceLines/reducers/index.tsx","views/screens/Users/services/index.ts","views/screens/Schedules/utils.tsx","views/screens/ServiceClasses/permissions.ts","views/screens/Routes/views/RoutesAssignUnitScreen/SelectAssignmentTypeTab.tsx","views/screens/Routes/reducers/routesAssignments/index.tsx","views/screens/Protocols/reducers/index.tsx","views/screens/Routes/services/routesAssignments.ts","views/screens/Routes/reducers/routesComments/index.tsx","views/screens/Jobs/actions/report/index.tsx","views/screens/Forms/permissions.ts","views/screens/Protocols/permissions.ts","views/screens/Routes/reducers/routeCheckpoints/index.tsx","views/components/TabsWrapper/TabsCardContent.js","views/components/TabsWrapper/TabsContent.js","views/components/TabsWrapper/index.tsx","hooks/useBoolean/index.ts","views/components/FilesGallery/SlidingPaneEditFileName/index.tsx","views/components/FilesGallery/index.tsx","views/formComponents/UnitsDropdown/index.tsx","redux/actions/static-catalogs/currencies/index.js","hooks/useWebtrackServiceOnAction/index.ts","assets/data/locales/es.ts","assets/data/locales/en.ts","utility/context/Internationalization.js","redux/actions/static-catalogs/time-zones/index.tsx","redux/reducers/static-catalogs/brands/index.js","views/screens/Routes/schemas/routesAssignments/index.tsx","redux/actions/static-catalogs/brands/index.js","views/screens/ServiceClasses/paths.ts","views/screens/TrackingUnits/paths.ts","views/screens/Geofences/utils/index.tsx","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/screens/Notifications/paths.ts","views/screens/Workplans/reducers/workplansComments/index.tsx","views/formComponents/LocationClassesDropdownInput/index.tsx","views/screens/Routes/actions/routesReport/index.tsx","redux/actions/static-catalogs/cellular-providers/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/TrackingUnits/permissions.ts","views/screens/Vehicles/services/index.ts","views/screens/Assets/services/index.ts","views/components/TabsWrapper/Tabs.js","views/screens/Workplans/services/workplansAssignments.ts","views/screens/BusinessPartners/paths.ts","views/screens/Locations/paths.ts","views/screens/Geofences/paths.ts","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/Modules/services/index.ts","views/screens/Routes/services/routeExecution.ts","views/screens/Workplans/services/workplansVisits.ts","views/screens/SIMs/services/index.ts","assets/images/logo/logo.png","views/components/TableTimePicker/index.tsx","redux/actions/static-catalogs/payment-methods/index.tsx","views/components/Collapse/index.tsx","views/components/AddButton/index.tsx","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/screens/Groups/permissions.ts","assets/images/logo sync /^/.//.*logo/.svg$","views/formComponents/ScheduleDropdown/index.tsx","views/components/ControlChart/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/spareParts/index.ts","views/screens/Reports/paths.ts","views/formComponents/DurationInput/index.tsx","redux/reducers/static-catalogs/time-zones/index.tsx","views/formComponents/UsersDropdown/index.tsx","views/formComponents/TextEditorInput/index.tsx","views/screens/Drivers/hooks/useGetDriverImages.ts","views/screens/Units/hooks/useGetDowntimeBinnacle.ts","views/formComponents/SlidingPaneDowntimeBinnacle/index.tsx","views/screens/Contracts/paths.ts","views/formComponents/FormsDropdown/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/workmanship/index.ts","views/screens/Users/permissions.ts","views/formComponents/SlidingPaneAddEditContact/index.tsx","views/screens/Operators/services/operators.ts","views/screens/Jobs/components/JobPriorityDropdownInput/index.js","views/formComponents/SlidingPanePreviewDriverImages/index.tsx","views/components/SimpleAlertMessage/index.tsx","redux/reducers/static-catalogs/vehicle-makers/index.tsx","redux/reducers/static-catalogs/vehicle-models/index.tsx","redux/reducers/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/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/Sensors/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/Contracts/permissions.ts","views/screens/SafeDriver/paths.ts","views/screens/Console/paths.ts","views/screens/Console/permissions.ts","views/screens/Protocols/paths.ts","views/screens/Jobs/components/JobTypeDropdownInput/index.js","views/screens/Jobs/components/JobStatusDropdownInput/index.js","views/formComponents/GeofenceDropDown/index.tsx","utility/context/Can.js","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/ContractTemplates/permissions.ts","views/screens/Quotations/permissions.ts","views/screens/SafeDriver/permissions.ts","views/screens/Operators/hooks/useGetOperatorContacts.ts","views/screens/Organizations/hooks/useGetContacts.ts","views/screens/Geofences/views/SlidingpanelGeofenceInformation/index.tsx","views/formComponents/SlidingPaneAddEditCustomer/index.tsx","views/formComponents/GoogleLocationDropDown/index.tsx","views/screens/Offices/views/SlidingPaneEditOffice/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/screens/Locations/utils/index.tsx","views/screens/Routes/hooks/useGetAlternateRoutes.ts","views/screens/Units/hooks/useGetUnitScriptHistory.ts","views/screens/Reports/views/byUnit/reportScriptHistory/utils.tsx","views/formComponents/SlidingPaneStartUnitDowntime/index.tsx","views/screens/Organizations/hooks/useGetDowntimeReasons.ts","views/screens/Units/hooks/useGetUnitTemperatureHistory.ts","redux/reducers/static-catalogs/payment-methods/index.tsx","redux/reducers/static-catalogs/countries/index.tsx","redux/reducers/static-catalogs/cellular-providers/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","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByOdometer/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByDate/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByHourmeter/index.ts","views/screens/vehicleMaintenance/reducers/catalogs/providers/index.ts","redux/sagas/settings/tokenLifeTime.js","views/screens/vehicleMaintenance/utils/getPreventiveNoticesByOdometerIndicators.tsx","views/screens/Jobs/reducers/board/index.tsx","views/screens/Jobs/reducers/report/index.tsx","views/screens/Jobs/reducers/index.tsx","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 sync /^/.//.*logoName/.png$","assets/images/logo/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","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","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","membership","navigationOptions","productId","isAuthenticating","isUpdatingMapSettingsConfiguration","isUpdatingProfileGeneralInformation","isUpdatingProfilePassword","isUpdatingProfileMapOptions","isRefreshing","error","refreshingError","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","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","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","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","UNITS_FETCH_STARTED","UNITS_FETCH_COMPLETED","UNITS_FETCH_FAILED","UNITS_PARTIAL_FETCH_STARTED","UNITS_PARTIAL_FETCH_COMPLETED","UNITS_PARTIAL_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_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_IDLE_SPEED","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","showSuccessMessage","showConfirmationMessage","title","confirmText","actionNot","confirmButtonClass","showCancelButton","width","cancelButton","confirmButtonText","cancelButtonText","focusConfirm","focusCancel","then","result","isConfirmed","showConfirmationWithCheckboxMessage","props","inputLabel","initialValue","input","inputValue","inputPlaceholder","value","showConfirmationMessageToast","showErrorAlertFailChanges","errorMessage","showErrorAlertReportNoAvailable","allowOutsideClick","showLoadingReport","showLoading","showErrorAlertFailChangesToast","showErrorAlertWarning","showSuccessCreatedMessage","altText","showSuccessEditedMessage","showSuccessApprovedDeniedMessage","approve","showSuccessAcceptedDeniedMessage","accept","showSuccessScheduledMessage","showSuccessRolesAndPermissionsSavedMessage","showSuccessAssignedMessage","plural","showSuccessUnassignedMessage","showSuccessDeletedMessage","multiple","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","env","REACT_APP_API_BASE_URL","initialState","isRTL","themeConfig","layout","menuCollapsed","item","window","localStorage","getItem","JSON","parse","menu","isCollapsed","initialMenuCollapsed","menuHidden","isHidden","menuPinner","isPinner","contentWidth","layoutReducer","setItem","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","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","normalize","schemas","actions","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","startFetchingCountries","filters","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","schedulesActions","routesActions","simActions","countriesActions","locationActions","officeActions","driverActions","assetsActions","sensorsActions","jobActions","groupsActions","protocolsActions","geofence","fetchGeofencesList","watchFetchGeofencesList","partialFetchGeofencesList","watchPartialFetchGeofencesList","addGeofence","watchAddGeofencesStarted","editGeofence","watchEditGeofencesStarted","removeGeofence","watchRemoveGeofenceStarted","assignGeofenceUnit","watchAssignGeofenceUnit","removeGeofenceAssignation","removeAllAssigmentsByGeofences","removeAllAssigmentsByUnits","watchRemoveGeofenceAssignation","watchRemoveAllAssignmentsByGeofences","watchRemoveAllAssignmentsByUnits","editGeofenceAssignation","watchEditGeofenceAssignation","getGeofencesListService","dispatch","saveGeofenceService","geofenceId","addedGeofence","oldGeofence","editedGeofence","deleteGeofenceService","assignation","length","unitGeofences","unitGeofenceInfo","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","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","executeDeviceAction","watchExecuteDeviceAction","addUnit","watchAddUnitsStarted","editUnit","watchEditUnitsStarted","acknowledgeUnitEvent","watchAcknowledgeUnitEvent","removeUnit","watchRemoveUnitStarted","activeUnits","watchActiveUnits","assignDriver","watchAssignDriverUnitsStarted","startUnitDowntime","watchStartUnitDowntimeStarted","endUnitDowntime","watchEndUnitDowntimeStarted","createSharedLink","watchCreateSharedLinkUnitStarted","updateSim","watchUpdateSim","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","deviceActionId","parameters","executeDeviceActionService","addedUnit","unitName","editedUnit","oldUnit","acknowledgeUnitEventService","unitBody","unitsName","driverName","mainStateId","mainStateDate","emails","ttl","sharedLink","requestData","oldUnitId","additionalOnSuccess","updateSimCardService","camelize","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","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","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","order","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","getRouteCheckpointsListService","configActions","configureInterceptors","fetchRouteCheckpointsList","watchFetchRouteCheckpointsList","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","comment","comments","baseUrl","getRouteCommentsListService","saveCommentService","routeCommentId","deleteCommentService","fetchCommentsList","watchFetchCommentsList","addComment","watchAddCommentsStarted","editComment","watchEditCommentsStarted","removeComment","watchRemoveCommentStarted","addedComment","oldComment","editedComment","deletedComment","routeExecution","routesExecutions","fetchRoutesExecutions","watchFetchRoutesExecutions","editRouteExecution","watchEditRouteExecutionStarted","changeToAlternateRoute","watchChangeToAlternateRouteStarted","cancelRouteExecution","watchCancelRouteExecution","finalizeRouteExecution","watchFinalizeRouteExecution","completeRouteExecution","watchCompleteRouteExecution","removeRouteExecution","watchRemoveRouteExecution","pauseRouteExecution","watchPauseRouteExecution","startRouteExecution","watchStartRouteExecution","manualTransitRouteExecution","watchManualTransitRouteExecution","shareRouteExecution","watchShareRouteExecution","assignRouteExecutionUnit","watchAsignRouteExecutionUnit","indicators","scheduledBySchedule","totalNotShown","routesList","oldRouteExecution","saveRouteExecutionService","editedRouteExecution","reason","changeToAlternateRouteService","errorTxt","newStatus","newRouteStatus","emailList","fetchRoutesReport","watchFetchRoutesReport","unitsSchemas","unitsEntities","unitsOrder","routesSchemas","routesEntities","routesOrder","routeExecutions","routesExecutionsSchemas","monitoringUser","fetchMonitoringUsersList","watchFetchMonitoringUsersList","partialFetchMonitoringUsersList","watchPartialFetchMonitoringUsersList","addMonitoringUser","watchAddMonitoringUsersStarted","editMonitoringUser","watchEditMonitoringUsersStarted","removeMonitoringUser","watchRemoveMonitoringUserStarted","updateMonitoringUserPassword","watchUpdateMonitoringUserPasswordStarted","saveRolesAndPermissions","watchSaveMonitoringUserRolesAndPermissionsStarted","assignSchedule","watchAssignScheduleUsersStarted","unassignSchedule","watchUnassignScheduleUsersStarted","getUsersListService","saveUserService","addedMonitoringUser","userName","oldUserName","oldMonitoringUser","editedMonitoringUser","users","usersName","loggedUsername","authActions","rolesAndPermissions","userInSession","userAssignSchedule","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","getWorkplanCommentsListService","workplanCommentId","watchFetchWorkplansCommentsList","watchAddWorkplansCommentStarted","watchRemoveWorkplansCommentStarted","visitId","locationId","jobCommentId","completeAddingWorkplanExecutionLocation","oldId","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","getSimsListService","simId","addedSim","iccid","editedSim","oldSim","simSelectors","deletedSim","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","getLocationsListService","saveLocationService","deleteLocationService","importLocationsService","fetchLocationsList","watchFetchLocationsList","partialFetchLocationsList","watchPartialFetchLocationsList","addLocation","watchAddLocationsStarted","editLocation","watchEditLocationsStarted","removeLocation","watchRemoveLocationStarted","importLocations","watchImportLocationsStarted","addedLocation","entityActions","oldLocation","editedLocation","schemasImportedLocations","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","getGroupsListService","groupId","getAllEntitiesInGroupService","additionalOnSave","saveGroupService","groupName","owners","addedGroup","entityType","params","saveGroupWithEntitiesService","editedGroup","oldGroup","deleteGroupService","isAsesor","asesorUsername","leaveGroupService","partialEntityUrl","workPlanId","userNameInSession","profileId","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","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","Number","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","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","iconSet","require","Icon","color","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","GROUPS_FETCH_STARTED","GROUPS_FETCH_COMPLETED","GROUPS_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","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","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","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","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","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","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","GEOFENCES_FETCH_STARTED","GEOFENCES_FETCH_COMPLETED","GEOFENCES_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","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","LOCATIONS_FETCH_STARTED","LOCATIONS_FETCH_COMPLETED","LOCATIONS_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","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","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","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","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","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","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","SIMS_FETCH_STARTED","SIMS_FETCH_COMPLETED","SIMS_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","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","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","startFetchingUnits","completeFetchingUnits","failFetchingUnits","startPartialFetchingUnits","completePartialFetchingUnits","failPartialFetchingUnits","addingUnitToState","startFetchingUnitsLiveStatus","completeFetchingUnitsLiveStatus","failFetchingUnitsLiveStatus","startFetchingUnitInformation","completeFetchingUnitInformation","failFetchingUnitInformation","startFetchingUnitPositions","completeFetchingUnitPositions","failFetchingUnitPositions","resetIsFetchedUnitPosition","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","simCardId","failUpdateSim","completeUpdateSim","changes","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","performanceColors","vehiclePerformanceTitle","getPerformanceTitle","rangePerformance","performanceStatus","Math","round","isDeficient","isRegular","isEfficient","vehiclePerformance","getPerformanceColor","expectedPerformance","getAllFilteredData","byVehicles","ranges","unitsWithRecentData","v","hasRecentData","moment","diff","systemDate","hasNoDowntimeReasonId","isNullOrUndefined","downTimeReasonId","hasPerformance","expectedfuelEconomyByVehicles","travel","loadThreshold","consumption","historicalFuelEconomy","unitsWithoutRecentData","hasNoRecentData","gpsDate","unitsWithoutPerformance","hasNoPerformance","dowtimeUnits","u","allFilters","poorPerformance","filterTelemetryData","regularPerformance","goodPerformance","overPerformance","excessivePerformance","unitsWithDischarges","unitsWithoutDischarges","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","getSummaryDataForDynamicTable","performanceSummary","statuses","row","weekNumber","statusLowerCase","toLowerCase","total","toFixed","Object","keys","useCombinedFuelHistory","samples","fuelEvents","selectedSensor","useMemo","fuelHistory","resultFinal","event","unitPositionLogId","sampleMatch","fuelSamples","sample","eventId","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","limit","charAt","formatNumber","useSelectedLocale","numberToValidate","regexIsNumber","localeToUse","newNumberFormatted","toLocaleString","testIsNumber","getUseCRM","REACT_APP_PRODUCT_CRM","getUseConsole","REACT_APP_PRODUCT_CONSOLE","getIsWebtrackUser","webtrackEmail","getHourFromStringTime","hour","getMinutesFromStringTime","isEmptyData","obj1","obj2","isNotEmptyData","joinTexts","items","by","formatList","stripHtml","html","temp","document","createElement","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","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","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","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","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","isFetchingList","isFetchedList","errorFetchingList","entitiesPersistConfig","getEntity","getUserUpdateByEntityTimestamp","getUserUpdateByEntityDate","getUserUpdateByEntityOperatorId","getUserUpdateByEntityOrganizationId","updateEntityByTimestamp","entityTimestamp","userUpdateEntityOperatorId","userUpdateEntityOrganizationId","areAllEntitiesUpdated","areUpdated","isFetchedListEntities","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","style","display","flexDirection","className","iconSVG","src","height","marginRight","marginTop","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","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","TextInput","autocompleteinput","topRightComponent","disabled","errorinvalidmessage","errorvalidatemessage","autoComplete","invalid","defaultProps","startFetchingGeofences","completeFetchingGeofences","failFetchingGeofences","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","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","isShownInMap","geofenceIdState","geofencesPersistedConfig","whitelist","getGeofence","getGeofencesList","geofenceStatus","getParentGeofencesList","isParentGeofence","getSubGeofencesList","parentGeofenceId","getGeofencesListByMembership","geofencesList","getGeofenceByPrivateCodeByMembership","getParentGeofencesListByMembership","getSubGeofencesListByMembership","isPartialFetchingListGeofences","isFetchingListGeofences","isAddingGeofence","isEditingGeofence","isRemovingGeofence","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","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","deviceMetricId","getDeviceMetric","getDeviceAction","getGroup","reportId","getReport","imageId","getImage","getSensor","unitLiveStatus","fetchDate","historicalPositions","allPositions","eventName","eventParam","eventTextColor","eventColor","themeId","isFetchingLiveStatusList","isFetchingInformation","isFetchingPositions","isAcknowledgeEvent","isFetchedPosition","errorFetchingLiveStatusList","errorFetchingInformation","errorEditingInformation","getUnit","speedFormat","convertKilometersPerHourToAuthUserSpeedSystem","odometerFormat","speedLimit","hourMeterFormat","mainState","GetMainStateById","mainStateName","GetMainStateName","downtimeReasonDescription","fromNow","headingFormat","getUnitHeadingFormat","heading","distanceFormat","deviceMetricsSelectors","deviceActionsSelectors","groupsSelectors","reportsSelectors","imagesSelectors","sensorsSelectors","downtimeReasonId","deviceModelName","deviceIdentifier","brandName","newUnit","unitPublicId","imsi","cellularNumber","mobileOperatorId","mobileOperatorName","unitStatus","unitStatusName","unitIdState","isEditingDowntime","isCreatingSharedLink","oldMainStateIds","hasAlreadyFetched","errorUpdatingDevice","isUpdatingDevice","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","getPartialFetchingListUnitsErrors","getFetchingListUnitsErrors","getAddingUnitErrors","getEditingUnitErrors","getRemovingUnitErrors","getUnitLiveFetchDate","selectorsUnitLiveStatus","getUnitsLiveStatusList","isFetchingListUnitsLiveStatus","isFetchingUnitInformation","isFetchingUnitPositions","isAcknowledgeUnitEvent","isFetchedUnitPosition","getFetchingListUnitsLiveStatusErrors","getFetchingUnitInformationErrors","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","startFetchingRoutesExecutions","completeFetchingRoutesExecutions","failFetchingRoutesExecutions","startCancelRoutesExecutions","completeCancelRoutesExecutions","failCancelRoutesExecutions","startEditRouteExecution","completeEditRouteExecution","failEditRouteExecution","startFinalizeRoutesExecutions","completeFinalizeRoutesExecutions","failFinalizeRoutesExecutions","startCompleteRoutesExecutions","completeCompleteRoutesExecutions","failCompleteRoutesExecutions","startRemoveRoutesExecutions","completeRemoveRoutesExecutions","failRemoveRoutesExecutions","startPauseRoutesExecutions","completePauseRoutesExecutions","failPauseRoutesExecutions","startStartRoutesExecutions","completeStartRoutesExecutions","failStartRoutesExecutions","startManualTransitRoutesExecutions","completeManualTransitRoutesExecutions","failManualTransitRoutesExecutions","startChangeToAlternateRoute","completeChangeToAlternateRoute","failChangeToAlternateRoute","startShareRoutesExecutions","completeShareRoutesExecutions","failShareRoutesExecutions","startAssignUnitRoutesExecutions","completeAssignUnitRoutesExecutions","failAssignUnitRoutesExecutions","organizationIds","organizationIdState","isAddingDowntimeReason","isEditingDowntimeReason","isRemovingDowntimeReason","errorAddingDowntimeReason","errorEditingDowntimeReason","errorRemovingDowntimeReason","getOrganizationOperator","getOrganizationOperatorName","getOrganization","getOrganizationName","getOrganizationsList","organizationStatus","getOrganizationsListByMembership","getOrganizationsListBySelectedOperator","getSelectedOrganizations","selectedOrganizations","getSelectedOrganization","isPartialFetchingListOrganizations","isFetchingListOrganizations","isAddingOrganization","isEditingOrganization","isRemovingOrganization","isAddingOrganizationDowntimeReason","isEditingOrganizationDowntimeReason","isRemovingOrganizationDowntimeReason","getPartialFetchingListOrganizationsErrors","getFetchingListOrganizationsErrors","getAddingOrganizationErrors","getEditingOrganizationErrors","getRemovingOrganizationErrors","getAddingOrganizationDowntimeReasonErrors","getEditingOrganizationDowntimeReasonErrors","getRemovingOrganizationDowntimeReasonErrors","isValidCode","isImporting","errorImporting","getLocation","locationIds","locationIdState","locationsPersistedConfig","getLocationsList","locationStatus","getLocationByPrivateCode","getLocationByPrivateCodeByMembership","getLocationsListByMembership","getLocationByGooglePlaceId","googlePlaceId","googleLocation","getLocationsListByLocationClassId","locationClassId","getLocationsOfficesList","useOnlyOffices","officeSelectors","officePrivateCode","getLocationOffice","getLocationsOfficesListByMembership","isPartialFetchingListLocations","isFetchingListLocations","haveLocationsBeenFetched","isAddingLocation","isEditingLocation","isRemovingLocation","getImportedLocationsList","importedLocationsSelectors","isImportingLocations","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","DefaultButton","useSelector","isLoading","handleClick","tooltipMessage","iconSize","visible","useState","tooltipOpen","setTooltipOpen","Ripple","onClick","as","animation","role","aria-hidden","placement","isOpen","toggle","trigger","startFetchingContacts","completeFetchingContacts","failFetchingContacts","startPartialFetchingContacts","completePartialFetchingContacts","startAddingContact","completeAddingContact","failAddingContact","startEditingContact","completeEditingContact","failEditingContact","startRemovingContact","completeRemovingContact","failRemovingContact","selectContact","deselectAllContacts","contactIds","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","NumericalInput","step","useNumberSpinner","metric","allowUndefined","allowDecimals","decimalsPrecision","autoCompleteInput","allowZero","forceShowDecimals","setInputValue","authSystems","handleChangeNumber","newValue","isEmptyString","hasNumberFormat","validate","onKeyDown","preventDefault","readonly","startFetchingLocations","completeFetchingLocations","failFetchingLocations","startPartialFetchingLocations","completePartialFetchingLocations","failPartialFetchingLocations","startAddingLocation","completeAddingLocation","failAddingLocation","startEditingLocation","completeEditingLocation","failEditingLocation","startRemovingLocation","completeRemovingLocation","failRemovingLocation","startImportingLocations","completeImportingLocations","failImportingLocations","showLocationInMap","showAllLocationsInMap","hideLocationInMap","hideAllLocationsInMap","startFetchingGroups","completeFetchingGroups","failFetchingGroups","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","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","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","routeStatusLabel","routeStatusLabelInfo","routeStatus","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","abs","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","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","Toolbar","buttons","child","FetchEntities","useUnits","unitsFilters","useSubdivisions","subdivisionsFilters","useMaintenanceLines","maintenanceLinesFilters","useVehicles","vehiclesFilters","useSims","simsFilters","useModules","modulesFilters","useDrivers","driversFilters","useAgents","useServiceClasses","useServiceClassesDropdown","useUsers","usersFilters","useOperators","useDivisions","divisionsFilters","useOrganizations","useContacts","useWorkplans","workplansFilters","useGeofences","geofencesFilters","useSchedules","useForms","useRoutes","routesFilters","useCountries","useLocations","locationsFilters","useOffices","officesFilters","useAssets","assetsFilters","useSensors","useJobsBacklog","jobsBacklogFilters","useGroups","groupsFilters","useOrganizationContracts","organizationContractsFilters","useContractTemplates","contractTemplatesFilters","useCustomers","customersFilters","useProtocols","protocolsFilters","additionalEntities","intervalTime","useDispatch","entitiesSelectors","fetchEntitiesWithFilters","finalEntities","fetchEntities","fetchDivisions","fetchSubdivisions","fetchMaintenanceLines","fetchLocations","fetchOffices","fetchDrivers","fetchWorkplans","fetchGeofences","fetchRoutes","fetchUnits","fetchVehicles","fetchAssets","jobsFilters","allowNullOperatorId","fetchUsers","fetchCustomers","fetchGroups","fetchOrganizationContracts","fetchContracTemplates","fetchModules","fetchSims","fetchProtocols","jobTitle","getJobsReportByUserListService","MainStateType","ONLINE","textColor","tooltip","shortIntl","OFFLINE","OFF","MOVING","ON_IDLE","ON_STANDBY","ON_STARTED","DOWNTIME","ON_STOPPED","ON_MOVING","STOPPED","OPPORTUNITY_CHARGE","DISCONNECTED","getIconByStatId","GetMainStateStyle","mainStateTitle","downTimeReason","extraMessage","getUnitIcon","getUnitActionIcon","getUnitMainStateIconAndSize","getUnitCommunicationDiagnosticsIcon","lastCommunicationDate","date1","date2","hoursDiff","getUnitHeadingIcon","getDatesDifferenceString","getTimeDifferenceString","getIconByDatesDifference","getDisabledUnitsListService","changeUnitSubState","getRouteAssignments","getFleetService","getUnitDeviceActionParametersService","getUnitDeviceActionsService","getUnitRunningTimeByHour","getUnitScriptHistory","getUnitTemperatureHistory","getUnitFuelHistory","getAssetFuelHistory","getUnitFuelSamples","getUnitFuelInformation","getUnitFuelEvents","getDowntimeBinnacleService","getUserAssignedUnits","removeUserAssignedUnits","addUserAssignedUnits","updateOdometer","updateHourmeter","updateDeviceService","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","startFetchingMonitoringUsers","completeFetchingMonitoringUsers","failFetchingMonitoringUsers","startPartialFetchingMonitoringUsers","completePartialFetchingMonitoringUsers","failPartialFetchingMonitoringUsers","startAddingMonitoringUser","completeAddingMonitoringUser","failAddingMonitoringUser","startEditingMonitoringUser","completeEditingMonitoringUser","failEditingMonitoringUser","startRemovingMonitoringUser","completeRemovingMonitoringUser","failRemovingMonitoringUser","selectMonitoringUser","monitoringUserId","deselectAllMonitoringUsers","monitoringUserIds","startUpdatingMonitoringUserPassword","completeUpdatingMonitoringUserPassword","failUpdatingMonitoringUserPassword","startSavingMonitoringUserRolesAndPermissions","completeSavingMonitoringUserRolesAndPermissions","startAssigningScheduleUsers","completeAssigningScheduleUsers","completeUnassigningScheduleUsers","startUnassigningScheduleUsers","routesReport","unitsById","routesById","isFetchingReport","errorFetchingReport","realDistanceLabel","realDistance","calculatedDistanceLabel","calculatedDistance","effectivenessLabel","effectiveness","durationLabel","completionDate","cancelDate","transitDurationLabel","transitDate","getRoutesUnit","getRoutesRoute","fuelConsumptionLabel","routesAssignments","routeIdState","isCopying","errorCopying","routesPersistConfig","getRoute","routeSelectorsCheckpoints","speedLimitFormat","getRoutesList","getRoutesListByMembership","isPartialFetchingListRoutes","isFetchingListRoutes","isAddingRoute","isEditingRoute","routesSelectorsExecutions","getRoutesExecutionsIndicators","getRoutesExecutionsTotalNotShown","getRoutesExecutionsStatus","getRoutesExecutionsRunningStatus","getRoutesReportExecutionsList","routesSelectorsReport","getRoutesReportUnitsList","getRoutesReportRoutesList","getRoutesReportIndicators","isFetchingRoutesReport","isFetchingListRouteCheckpoints","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","completeFetchingModule","failFetchingModule","startAddingModule","completeAddingModule","failAddingModule","startEditingModule","completeEditingModule","failEditingModule","startRemovingModule","completeRemovingModule","failRemovingModule","selectModule","deselectModule","deselectAllModules","moduleIds","JOBS_REPORT_FETCH_STARTED","JOBS_REPORT_FETCH_COMPLETED","JOBS_REPORT_FETCH_FAILED","WORKPLANS_REPORT_FETCH_STARTED","WORKPLANS_REPORT_FETCH_COMPLETED","WORKPLANS_REPORT_FETCH_FAILED","ROUTES_REPORT_FETCH_STARTED","ROUTES_REPORT_FETCH_COMPLETED","ROUTES_REPORT_FETCH_FAILED","deleteRoute","assignRoute","deleteRouteAssignment","completeRouteAssignment","finalizeRouteAssignment","cancelRouteAssignment","viewDestinationIndicator","viewRouteCatalog","searchRoutes","viewRouteMonitor","viewRouteReport","viewExtraFieldsInRouteAssignment","changeCompletionType","shareRouteAssignment","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","startFetchingSensors","completeFetchingSensors","failFetchingSensors","startPartialFetchingSensors","completePartialFetchingSensors","failPartialFetchingSensors","startAddingSensor","completeAddingSensor","failAddingSensor","startEditingSensor","completeEditingSensor","failEditingSensor","startRemovingSensor","completeRemovingSensor","failRemovingSensor","selectSensor","deselectSensor","sensorCalibrationStartStarted","sensorCalibrationStartCompleted","sensorCalibrationStartFail","sensorCalibrationFinalizeStarted","sensorCalibrationFinalizeCompleted","sensorCalibrationFinalizeFail","startFetchingOrganizationContracts","completeFetchingOrganizationContracts","failFetchingOrganizationContracts","startPartialFetchingOrganizationContracts","completePartialFetchingOrganizationContracts","failPartialFetchingOrganizationContracts","startAddingOrganizationContract","completeAddingOrganizationContract","failAddingOrganizationContract","startEditingOrganizationContract","completeEditingOrganizationContract","failEditingOrganizationContract","startRemovingOrganizationContract","completeRemovingOrganizationContract","failRemovingOrganizationContract","selectOrganizationContract","deselectAllOrganizationContracts","contractIds","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","startFetchingSims","completeFetchingSims","failFetchingSims","startPartialFetchingSims","completePartialFetchingSims","failPartialFetchingSims","startAddingSim","completeAddingSim","failAddingSim","startEditingSim","completeEditingSim","failEditingSim","startRemovingSim","completeRemovingSim","failRemovingSim","selectSim","deselectSim","deselectAllSims","simIds","HANDLE_SEARCH_QUERY","GET_BOOKMARKS_FETCH_STARTED","GET_BOOKMARKS_FETCH_COMPLETED","GET_BOOKMARKS_FETCH_FAILED","UPDATE_BOOKMARKED_STARTED","UPDATE_BOOKMARKED_COMPLETED","UPDATE_BOOKMARKED_FAILED","useScript","url","script","$","async","appendChild","getRectBoundsFromLatLng","radius","dy","dx","cos","PI","bounds","minLatitude","minLongitude","maxLatitude","maxLongitude","getIsInnerGeoreferenceFromLatLng","unitPositions","matches","unitPosition","matchStatus","getRectangleFromLatLng","getTriangleFromLatLng","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","allowNulls","maxDate","minDate","isRange","showTime","enableTime","defaultHour","defaultMinute","additionalTimeProps","startRef","startButtonRef","endRef","endButtonRef","prevValue","setPrevValue","prevValueRange","setPrevValueRange","sm","cursor","current","flatpickr","open","Spanish","english","mode","selectedDates","startOf","endOf","onClose","CONFIGURATIONS_FETCH_STARTED","CONFIGURATIONS_FETCH_COMPLETED","CONFIGURATIONS_FETCH_FAILED","PROVIDERS_FETCH_STARTED","PROVIDERS_FETCH_COMPLETED","PROVIDERS_FETCH_FAILED","MODELS_FETCH_STARTED","MODELS_FETCH_COMPLETED","MODELS_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","changeState","show","setShow","setLocale","stateRef","changeKey","setTooltip","tableColumns","setTableColumns","selectedRowIndexes","setSelectedRowIndexes","scrollLeft","setScrollLeft","intlContext","useContext","IntlContext","dataTable","dataRowTableId","savedVersion","headerModule","autoFitColumns","sortedColumnIndex","direction","reset","useDeepCompareEffect","getFilteredRecords","selectRowsByRange","selectedRows","getElementById","clearSelection","setTimeout","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","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","TimeInput","minTime","inFormat","defaultDate","noCalendar","time_24hr","dateValue","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","defaultValue","operatorField","operatorFieldState","fieldState","organizationField","organizationFieldState","divisionField","divisionFieldState","subdivisionField","subdivisionFieldState","groupField","groupFieldState","operatorsList","organizationsList","divisionsList","filterOrganization","subdivisionsList","agentsList","agentsSelectors","groupList","finalOnChange","Col","subdivisionPlaceholder","render","Membership","isInitialize","setIsInitialize","setMembershipDefaultValue","setMembershipOptions","updateOptions","membershipAccessLevel","AuthSelectors","updateUserMembership","userMembership","updateModel","useMembership","Spinner","SwitchInput","onAfterChange","successColor","warningColor","dangerColor","infoColor","getJobDescriptionTemplate","jobDescription","ReactHtmlParser","getJobPriorityColor","priority","getJobPriorityTemplate","priorityColor","alignItems","justifyContent","pill","getJobTypeIcon","jobBacklogTypeId","jobTypesList","jobTypeId","getJobTypeTemplate","center","getJobRequesterTemplate","requesterUserName","img","requestUserImageUrl","requesterCompleteName","initials","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","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","groupsPersistedConfig","getGroupsList","groupStatus","getUnfilteredSelectedGroup","getAllGroupsList","getSelectedGroup","selectedGroups","isPartialFetchingListGroups","isFetchingListGroups","configurationId","getConfigurationsList","getConfiguration","startFetchingCategories","completeFetchingCategories","failFetchingCategories","startAddingCategory","completeAddingCategory","failAddingCategory","startEditingCategory","completeEditingCategory","failEditingCategory","oldCategory","startRemovingCategory","completeRemovingCategory","failRemovingCategory","MultiValue","MultiValueLabel","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","Avatar","forwardRef","imgClassName","badgeUp","badgeColor","badgeText","imgHeight","imgWidth","Tag","tag","contentStyles","rest","classnames","str","results","getInitials","TitleH4","textId","textTransform","driverIdState","isImportingDriversAndUnitsList","importDriversAndUnits","isAssigningDrivers","driversPersistedConfig","getDriver","getDriversList","driverStatus","getDriversListByMembership","getDriverByPrivateCode","getDriverByPrivateCodeByMembership","getSelectedDriver","selectedDrivers","getDriverByIdOrPrivateCode","isPartialFetchingListDrivers","isFetchingListDrivers","agentIds","agentIdState","getAgent","getAgentsList","agentStatus","getAgentsListByMembership","getSelectedAgent","selectedAgents","isFetchingListAgents","addTicket","consolidatedReport","recordMultiple","workplansBulkInsert","isNew","temperatureCatalog","temperatureStadistics","fuelCatalog","fuelReport","fuelStadistics","tirePressureCatalog","obd2Monitor","telemtryUnits","downtime","MapBaseLayers","forceUseMapquestMaps","forceUseGoogleMaps","forceUseHereMaps","forceUseBingMaps","listenMapControlChanges","context","useLeafletContext","mapquestConsumerKey","googleMapsApiKey","osmmap","gmRoadmap","gmHybrid","gmSatellite","gmTerrain","gmTraffic","bing","bing_satelite","bing_hibrido","here_layer","here_satelite_layer","mqOsm","mqHybrid","mqSatellite","mqDark","mqLight","useMapquestMaps","MQ","useGoogleMaps","useBingMaps","useHereMaps","baseMapLayers","OpenStreetMap","TileLayer","maxZoom","attribution","mapLayer","hybridLayer","satelliteLayer","darkLayer","lightLayer","gridLayer","googleMutant","addGoogleLayer","bing_api_key","bingMapsApiKey","BingLayer","hereMapsAppId","hereMapsAppCode","tileLayer","app_id","app_code","layerGroup","Control","Layers","container","layerContainer","addLayer","addControl","homeLayer","addTo","removeControl","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","MarkerClusterGroup","createPathComponent","ctx","clusterProps","spiderLegPolylineOptions","pmIgnore","weight","opacity","removeOutsideVisibleBounds","chunkedLoading","iconCreateFunction","cluster","childCount","getChildCount","DivIcon","Point","clusterEvents","entries","propName","prop","markerClusterGroup","_getExpandedVisibleBounds","_map","eventAsProp","callback","clusterEvent","on","instance","paddingBottomRight","paddingTopLeft","animate","getZoom","MapGeofences","useMapEvents","moveend","displayGeofences","isSelectedSomething","setIsSelectedSomething","showGeofences","useIsShownGeofence","selectedGeofenceIds","setMapPositionToGeofenceBounds","useSlidingpanelGeofenceInformation","initialShowSlidingPanelGeofenceInformationOpen","initialGeofenceInformationOpenId","editingGeofenceParent","setEditingGeofenceParent","editingGeofenceParentRef","startClusteringAt","showGeofenceInformationSlidepanel","setShowGeofenceInformationSlidepanel","initialGeofenceId","setInitialGeofenceId","selectedGeofence","setSelectedGeofence","mainGeofence","geofenceActions","coords","flatten","coordinate","fitBounds","latLngBounds","bound","LatLng","initialGeofenceInformation","WrapperMarkerClusterGroup","Fragment","wrapperProps","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","showLocationInformationSlidepanel","setShowLocationInformationSlidepanel","initialLocationId","setInitialLocationId","selectedLocation","setSelectedLocation","loc","initialLocationInformation","locationsBounds","setLocationsBounds","showUnitByZoomAndRadius","riseOnHover","locationClassContent","permanent","fullImageUrl","Media","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","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","useGoogleLocations","onSelectChangeLocationType","useLabel","InputGroupText","inputs","initialTab","hasButtonSubmit","hasButtonCancel","SlidingPaneAddAlternateRoute","isOpenSlidingPane","closeSlidingPane","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","DeleteButton","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","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","RotatedMarker","rotationAngle","rotationOrigin","setRotationAngle","setRotationOrigin","SlidingPaneUnitHistoricalPositionsReport","columnInfo","background","padding","borderRadius","borderStyle","borderColor","margin","getArrowImage","isSlidingPaneOpen","showHistoricalPositions","setMapPositionToPositionsBounds","changeSetMapPositionToUnitsBounds","selectedUnit","setSelectedUnit","selectedUnitRef","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","showUnitHistoryOnlyNormalPositionsMarkers","lineWidth","showUnitHistoryConsoleEventMarkers","UnitsDropdown","ReportViewerButton","channelName","useEmbbededChannel","reportPath","acknowledge","scriptId","getStatusStyles","isProcessed","Badge","SlidingPaneUnitHistoricalScriptsReport","defaultValues","useGetUnitScriptHistory","scriptHistory","isFetchingScriptHistory","startRefresh","useRerender","userOrganizationId","scriptHistoryRpt","sh","scriptDate","sentDate","deviceActionDescription","SlidingPaneShareUnitLocation","isLinkCreated","setIsLinkCreated","durations","ContactsDropdown","UncontrolledTooltip","clipboard","writeText","receivers","durationId","saveUnitImage","deleteUnitImage","SlidingPaneUnitImages","addImageInitial","isLoadingUnitImages","setIsLoadingUnitImages","activeSlideImage","setActiveSlideImage","addImage","setAddImage","imageUrl","setUploadImage","saveUnitImageAsync","defaultImageValues","unitImageSave","imageTypeId","isDefault","deleteUnitImageAsync","unitImageDelete","MediaGallery","isRtl","autoplay","onSlideChange","slideId","navigation","pagination","useThumbs","classNameThumbs","heightThumbs","Form","ImageUploader","cropShape","showGrid","aspect","onSuccessChangeFunction","onFailureChangeFunction","otherValues","onChangeImage","functionAfterUpload","filesPath","submitting","UnitFuel","history","useHistory","measureId","measureTypeId","metricDescription","pathname","measurementUnitId","numberValue","UnitTemperature","showHistTemperature","setShowHistTemperature","showTable","setShowTable","isOpenDateRangeForm","setIsOpenDateRangeForm","isOpenSensorForm","setIsOpenSensorForm","setSensorId","setMeasureId","controlSensor","watchSensor","useGetUnitTemperatureHistory","formValuesSensor","formValuesDateRange","Dropdown","isDefaultPrevented","DropdownToggle","uniqueIdentifier","DropdownMenu","measurementUnitName","ControlChart","metricValue","upperLimit","lowerLimit","titleTooltip","bulletRadius","maxValue","minValue","ButtonTypes","SlidingPaneManualHourmeterAdjustment","handleAction","useWebtrackServiceOnAction","newHourMeter","newHourmeter","ManualHourmeterAdjustment","buttonType","useBoolean","setTrue","setFalse","SlidingPaneUnitInformation","fetchInformationInterval","showAddImageSlidingPane","setShowAddImageSlidingPane","showHistPositionsReportSlidingPane","setShowHistPositionsReportSlidingPane","downtimeBinnacleSlideOpen","openDowntimeBinnacleSlide","showShareUnitLocationSlidingPane","setShowShareUnitLocationSlidingPane","showHistScriptsReportSlidingPane","setShowHistScriptsReportSlidingPane","showChangeStatusSlidingPane","setShowChangeStatusPane","showUnitImagesSlidingPane","setShowUnitImagesSlidingPane","previewDriverImagesSlideOpen","openPreviewDriverImagesSlide","isLightboxOpen","setIsLightboxOpen","slidingPaneProps","setSlidingPaneProps","intlLastEvent","userPermissions","permissionState","currentStatus","battery","useInActive","useInPeople","hidden","mainVoltage","sizeIcon","useInVehicles","isCharging","customChartTooltip","isSelectable","backupBattery","doorState","coverTamperState","padlockState","padlockAuthorizationType","satellites","linealChart","plmn","mcc","mnc","cellNumber","trailerId","appVersion","availableIndicators","unitTypeId","indicator","showAllButtonsRightToolbar","setShowAllButtonsRightToolbar","copyLatLong","disableOnInteraction","pauseOnMouseEnter","classNameImg","unitPermissions","isEmpty","driverPhoneNumber","driverTotalFiles","ManualOdometerAdjustment","privateCode2","requireUserConfirmation","requireParameters","param","inputType","deviceActionParameterId","isRequired","parameterName","parameterComments","doAction","discourageDownloads","reactModalStyle","overlay","imageTitle","imageCaption","driverBloodType","driverLicenseNumber","driverLicenseType","driverLicenseExpireDate","driverUseGlasses","driverBloodSugarProblems","mainSrc","onCloseRequest","SlidingPaneStartUnitDowntime","SlidingPaneDowntimeBinnacle","closeSlidingPaneDowntimeBinnacle","SlidingPanePreviewDriverImages","closeSlidingPanePreviewDriverImages","MapUnits","displayUnits","useLocation","showUnits","useIsShownUnit","selectedUnitIds","useSlidingPaneUnitInformation","initialShowSlidingPanelUnitInformationOpen","initialUnitInformationOpenId","selectedUnitState","fetchPositionInterval","showUnitInformationSlidingPane","setShowUnitInformationSlidingPane","initialUnitId","setInitialUnitId","setMapPositionToUnitsBounds","zoomMapToUnit","firstUnit","initialUnitInformation","unitsBounds","setUnitsBounds","alias","l","RulerControl","pmOptions","tooltipTextDraganddelete","tooltipTextResume","tooltipTextAdd","tooltipTextFinish","tooltipTextDelete","tooltipTextMove","measureControlClasses","measureControlLabel","ReactDOMServer","renderToStaticMarkup","clearControlLabel","measureControlTitleOn","measureControlTitleOff","showClearControl","clearControlTitle","showUnitControl","unitControlTitle","metres","landmiles","nauticalmiles","polylineMeasure","ToolbarGeofencesControl","setShowGeofences","newGeofences","setNewGeofencesLayers","newGeofencesLayersRef","isOpenSlidingPaneFormRef","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","geofencesToolbar","onClickCancelButton","setShowGeofence","ToolbarHomeControl","selectedLayer","layer_id","homeFunction","centerLatLng","getCenter","wrap","setHomeAction","useToolbar","ToolbarLocationsControl","setShowLocations","newMarkers","setNewMarkers","newMarkersRef","editingLocation","setEditingLocation","editingLocationRef","_icon","setLatLng","createNewLocationAction","locationAddress","prevMarkers","viewLocations","cancelLocation","locationsOptions","locationPermissions","LocationsToolbar","locationsToolbar","SlidingPaneEditLocation","enableDispatch","dispatchNotificationFreq","dispatchEmails","dispatchCompletionType","locationTypeId","setShowLocation","ToolbarRoutesControl","setShowRoutes","createNewRouteAction","cancelRoute","routesOptions","RoutesToolbar","routesToolbar","ToolbarUnitsControl","setShowUnits","createNewUnitAction","cancelUnit","unitsOptions","UnitsToolbar","unitsToolbar","MapsBasic","mapBaseLayersOptions","homeToolbarOptions","locationsToolbarOptions","geofencesToolbarOptions","routesToolbarOptions","unitsToolbarOptions","mapLocationsOptionsToolbar","mapLocationEditOptions","mapGeofencesOptionsToolbar","mapGeofencesOptions","mapGeofenceEditOptions","mapRoutesOptionsToolbar","mapUnitsOptionsToolbar","mapUnitsOptions","zoom","setMap","setMapControlChanges","listenMapControlChangesLayers","setMapControlChangesLayers","initialMapCenter","initialZoom","mapPosition","setMapPosition","mapLocationEditOptionsToolbar","setMapLocationEditOptionsToolbar","mapGeofenceEditOptionsToolbar","setMapGeofenceEditOptionsToolbar","invalidateSize","MapContainer","preferCanvas","whenCreated","leafletMap","useSlidingpanelUnitInformation","mapRouteEditOptions","roleId","userNameState","isUpdatingMonitoringUserPassword","getMonitoringUser","getMonitoringUsersList","userStatus","getMonitoringUsersSpecificList","getSelectedMonitoringUser","selectedMonitoringUsers","isFetchingListMonitoringUsers","isEditingMonitoringUser","formIdState","removed","oldSectionIndex","sectionsById","useDropDownRows","sectionToCopy","newRows","newQuestions","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","startFetchingSpareParts","completeFetchingSpareParts","failFetchingSpareParts","startAddingSparePart","completeAddingSparePart","failAddingSparePart","startEditingSparePart","completeEditingSparePart","failEditingSparePart","oldSparePart","startRemovingSparePart","completeRemovingSparePart","failRemovingSparePart","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","completeFetchingAssignments","entitiesByDate","entitiesBySchedule","startEditingAssignment","completeEditingAssignment","failEditingAssignment","startRemovingAssignment","completeRemovingAssignment","completeImportingRouteAssignments","failImportingRouteAssignments","SENSOR_MEASURES_FETCH_STARTED","SENSOR_MEASURES_FETCH_COMPLETED","SENSOR_MEASURES_FETCH_FAILED","SENSOR_MEASURES_CLEAR","startFetchingWorkmanships","completeFetchingWorkmanships","failFetchingWorkmanships","startAddingWorkmanship","completeAddingWorkmanship","failAddingWorkmanship","startEditingWorkmanship","completeEditingWorkmanship","failEditingWorkmanship","oldWorkmanship","startRemovingWorkmanship","completeRemovingWorkmanship","failRemovingWorkmanship","getAlternateRoutesService","startFetchingComments","completeFetchingComments","failFetchingComments","startAddingComment","completeAddingComment","failAddingComment","startEditingComment","completeEditingComment","failEditingComment","startRemovingComment","completeRemovingComment","failRemovingComment","startFetchingProviders","completeFetchingProviders","failFetchingProviders","startAddingProvider","completeAddingProvider","failAddingProvider","startEditingProvider","completeEditingProvider","failEditingProvider","oldProvider","startRemovingProvider","completeRemovingProvider","failRemovingProvider","tooltipLabel","idTable","useTable","heightTable","columnsTable","onSelectTable","onDeselectTable","change","innerControl","innerHandleSubmit","isInnerForm","setIsInnerForm","saving","save","WrapperInput","wrapperInputProps","logo","REACT_APP_FLAVOR","default","LocationsDropdownInput","byLocationClassId","createFromGoogleLocations","notAssigned","initialLocationType","showOrganization","setGooglePlaceId","setIsOpenSlidingPane","locationType","setLocationType","locationByPlaceId","resetValue","setResetValue","locationsPermissions","categoryIdState","getCategoriesList","getCategory","getCategoriesListByMembership","isFetchingListCategories","haveCategoriesBeenFetched","getConsolidableEvents","getDowntimeReasons","getContactsService","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","listEmailNotification","listConsoleNotifications","listWebServiceNotification","listEmailNotifications","listConsoleNotification","listWebServiceNotifications","listForms","answersFormReport","answersReportForms","header","affiliations","catalogs","inventories","notifications","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","trackingUnitsList","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","SwiperCore","Navigation","Pagination","EffectFade","EffectCube","EffectCoverflow","Autoplay","Lazy","Virtual","Thumbs","defaultGalleryParams","effect","spaceBetween","initialSlide","centeredSlides","reverseDirection","loop","clickable","lightboxIndex","setLightboxIndex","thumbsSwiper","paramsThumbsDefault","slidesPerView","freeMode","watchSlidesVisibility","watchSlidesProgress","onSwiper","galleryOptions","thumbs","swiper","dir","activeIndex","imageDescription","nextSrc","prevSrc","onMovePrevRequest","onMoveNextRequest","imagesPath","activeSlideId","getAvailableUsersForGroup","getAvailableLocationsForGroup","getAvailableWorkplansForGroup","getAvailableUnitsForGroup","getAvailableGeofencesForGroup","getAvailableDriversForGroup","verifyUserExistsAndNotInGroup","workplansAssignments","bySchedule","byDateTime","byScheduleOrder","assignmentIdState","byDateTimeOrder","isFetchingAssignments","errorFetchingAssignments","getWorkplansAssignment","getWorkplansAssignmentsByScheduleListByMembership","getWorkplansAssignmentsByScheduleList","getWorkplansAssignmentsByDateTimeListByMembership","getWorkplansAssignmentsByDateTimeList","isFetchingWorkplansAssignments","getFuelCalibrationPubSubUrl","sendPubSubFuelCalibrationCommand","extraContacts","contactTypeId","setContactsIn","contactsIn","setNewContact","closeSlidingPaneAddEditContact","prependcomponentFun","appendcomponentFun","defaultJobTitle","changeSelectedContacts","addEditContactSlideOpen","openAddEditContactSlide","newContact","changeNewContact","selectAndEditContact","selectedContactOnCreate","ContactSelectors","formatContactsForDropdown","userContactsEmails","useGetOperatorContacts","areFetchingOperatorContacts","isFetchingOperatorContacts","operatorPublicContacts","useGetContacts","organizationPublicContacts","areFetchingOrganizationContacts","contactsToShow","userContacts","OrganizationContacts","usedEmails","filteredContacts","addNotIncludedContacts","filterContactByAcces","contactsToAdd","defaultContact","contactToAdd","selectedContact","setSelectedContact","string","selectedValues","operatorContact","organizationContact","userContact","isSelectedOnCreate","isEditingFromMulti","assetIds","assetIdState","validIdentifier","validSecuritySealCode","getAsset","getAssetsList","assetStatus","getAssetListByMembership","getSelectedAsset","selectedAssets","isValidIdentifier","isValidSecuritySealCode","isPartialFetchingListAssets","isFetchingListAssets","startFetchingRouteCheckpoints","completeFetchingRouteCheckpoints","failFetchingRouteCheckpoints","simIdState","getSim","getSimsList","simCardStatus","getSelectedSim","selectedSims","isPartialFetchingListSims","isFetchingListSims","CustomersDropdown","appendAddCustomer","enableSelectLocation","customerSelectors","isOpenShiftPane","setOpenShiftPane","selectedCustomer","setSelectedCustomer","id_dropdwon","customerName","closeSlidingPaneAddEditCustomer","sensorIds","calibrationState","sensorIdState","getSensorsList","sensorStatus","getSensorsListByMembership","getSelectedSensor","selectedSensors","addEmailNotification","removeEmailNotification","addConsoleNotification","removeConsoleNotification","addWebServiceNotification","removeWebServiceNotification","removeJobBacklog","searchJobBacklog","listAsignedJobsBacklog","asignJobBacklogToUnit","listOwnLocations","addLocations","editLocations","assignLocations","listLocationImages","addLocationImages","removeLocationImages","completeFetchingJobsBoard","failFetchingJobsBoard","completeChangeStatusJobsBoard","failChangeStatusJobsBoard","completeFetchingBookmarks","startFetchingBookmarks","failFetchingBookmarks","updateBookmarkedStarted","updateBookmarkedCompleted","updateBookmarkedFailed","handleSearchQuery","val","isVisible","isDataReady","isTextButton","buttonClicked","setButtonClicked","channel","BroadcastChannel","isReportViewerOpen","setIsReportViewerOpen","isActive","isReportOpen","postReportData","infoHeader","tableHeaderColor","audit","partnerLogo","ds","datasets","postMessage","reportDetail","dependencies","setRerender","startRerender","useCallback","meta","touched","initial","opt","app","appName","appLogoImage","appLogo","skin","routerTransition","footer","customizer","REACT_APP_CUSTOMIZER","scrollTop","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","serviceClassIdState","getServiceClass","getServiceClasssList","getSelectedServiceClass","selectedServiceClasses","isFetchingListServiceClasses","denyRequisitionReason","deniedCustomerReason","timesup","quotationIdState","isScheduling","isCheckingSchedule","isSettingTimesup","isApprovingDenyingManagement","getQuotation","getQuotationsSpecificList","getQuotationsList","getSelectedQuotation","selectedQuotations","isPartialFetchingListQuotations","isFetchingListQuotations","isAddingQuotation","isCopyingQuotation","isSchedulingQuotation","isSettingTimesupQuotation","isCheckingScheduleQuotation","moduleIdState","dirty","getModule","getModulesList","device","deviceStatus","getModulesListByMembership","getSelectedModule","selectedModules","isPartialFetchingListModules","isFetchingListModules","routeEdit","getCpGeofence","getUnitGeofences","getUnitGeofenceInfo","getAssignments","getUnassignedEntities","deleteSchedule","contractIdState","getOrganizationContract","getOrganizationContractsList","getSelectedOrganizationContract","selectedOrganizationContracts","isPartialFetchingListOrganizationContracts","isFetchingListOrganizationContracts","templateIdState","getContractTemplate","getContractTemplatesList","getSelectedContractTemplate","selectedContractTemplates","isPartialFetchingListContractTemplates","isFetchingListContractTemplates","OfficesDropdown","appendAddOffice","isMainOffice","selectedOffice","setSelectedOffice","SlidingPaneEditOffice","closeSlidingPaneEditOffice","mapHomeCenter","customerId1","initialLatitude","initialLongitude","initialLocationClassIconName","setLatitude","setLongitude","updateEditingLocation","locationClassesSelectors","closeSlidingPaneFunction","LocationClassesDropdownInput","customerId2","workplanEdit","startFetchingLocationClasses","completeFetchingLocationClasses","failFetchingLocationClasses","startFetchingJob","completeFetchingJob","failFetchingJob","ColorPicker","displayColorPicker","setDisplayColorPicker","reactCSS","swatch","backgroundClip","popover","cover","top","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","importCustomersService","RadioButtonsInput","radioButton","boolean","maintenanceLineIds","maintenanceLineIdState","getMaintenanceLine","getMaintenanceLinesList","maintenanceLineStatus","getMaintenanceLinesListByMembership","MaintenanceLinesByOdometer","maintenanceNoticeTypeId","getSelectedMaintenanceLine","selectedMaintenanceLines","isPartialFetchingListMaintenanceLines","isFetchingListMaintenanceLines","availabilityUserNameService","getRoles","getPermissionGroups","getRolePermissionGroups","getScreens","getSuspendedUsersListService","updateUserStatus","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","deleteServiceClass","AlreadyLeftTheOrigin","SelectAssignmentTypeTab","useAssignmentContext","stepper","updateAssignmentType","outline","alreadyLeftTheOrigin","useSharedLink","next","routeAssignmentIdState","isImportingAssignments","getRoutesAssignment","getRoutesAssignmentsListByType","getRoutesAssignmentsList","isFetchingRoutesAssignments","protocolIdState","protocolsPersistedConfig","getProtocol","getProtocolsListByMembership","getProtocolsList","isPartialFetchingListProtocols","isFetchingListProtocols","isAddingProtocol","isEditingProtocol","getAssignedUnitsListService","routeCommentIdState","isFetchingComments","errorFetchingComments","getRoutesComment","getRoutesCommentsListByRouteAssignmentId","getRoutesCommentsList","isFetchingRoutesComments","completeFetchingJobsReport","entitiesByUser","orderByUser","failFetchingJobsReport","fillForm","listAllUserAnswersForm","routeCheckpointId","typesRoutes","getRouteCheckpointsList","getRouteCheckpoint","getRouteCheckpointsListByRoute","getFetchingListRouteCheckpointsErrors","TabsContent","Card","CardBody","TabContent","tabContent","TabPane","vertical","checkbox","align","Tabs","toggleTab","TabsCardContent","paddingLeft","setValue","SlidingPaneEditFileName","closeSlidingPaneEditFileName","isImg","editFileName","CardImg","fileId","onSubmit","breakpoints","700","FileGallery","FilePreview","onClickImage","deleteFile","editFileNameSlideOpen","openEditFileNameSlide","objectFit","marginBottom","paddingTop","paddingBottom","textOverflow","wordWrap","overflow","maxHeight","usePartialMembership","startFetchingCurrencies","completeFetchingCurrencies","failFetchingCurrencies","additionalActions","additionalOnError","setIsFetching","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","newObj","replaceUnit","en","alertsEn","oldEn","notificationi18n","menuMessages","messagesEs","userMessagesEs","messagesEn","userMessagesEn","Context","createContext","IntlProviderWrapper","localStorageLang","messages","setMessages","loadCldr","numberingSystems","gregorian","numbers","timeZoneNames","weekData","L10n","load","messageEsGrid","messageEsDateTimePicker","Provider","switchLanguage","lang","defaultLocale","startFetchingTimeZones","completeFetchingTimeZones","failFetchingTimeZones","getBrandsList","getBrand","isFetchingListBrands","haveBrandsBeenFetched","assignmentByDate","idBySchedule","startFetchingBrands","completeFetchingBrands","failFetchingBrands","editTrackingUnits","providedCoordinates","GeometryCollection","geometries","vertex","startFetchingConfigurations","completeFetchingConfigurations","failFetchingConfigurations","startFetchingModels","completeFetchingModels","failFetchingModels","startFetchingVehicleMakers","completeFetchingVehicleMakers","failFetchingVehicleMakers","startFetchingVehicleModels","completeFetchingVehicleModels","failFetchingVehicleModels","listNotifications","jobCommentIdState","getWorkplansComment","getWorkplansCommentsListByFilters","getWorkplansCommentsList","isFetchingWorkplansComments","injectIntl","locationClassesActions","startFetchingRoutesReport","completeFetchingRoutesReport","failFetchingRoutesReport","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","trackingUnitsCreate","trackingUnitsEdit","trackingUnitsDelete","viewUnitMap","readDowntimeReasons","addDowntimeReasons","editDowntimeReasons","removeDowntimeReasons","changeToInactive","changeToPlaced","changeToActivated","changeToRemoved","changeToCanceled","cellularProvider","getFuelTanksAndSealTypes","getVehiclesListDropdownService","getBrandsAndModelsService","saveBrandService","saveModelService","deleteBrandService","deleteModelService","importVehiclesService","getUnitsAssetsService","getAvailableSensorsService","getFuelTanksService","getAssetsTemperatureAreas","getAssetTypes","pills","tab","IconTag","IconFeather","active","checkboxComponent","saveWorkplanAssignmentByScheduleService","saveWorkplanAssignmentByDateTimeService","geofencesAssign","operatorAdd","operatorEdit","operatorDelete","organizationAdd","organizationEdit","organizationDelete","agentAdd","agentEdit","agentDelete","deleteDivision","subdivisionAdd","subdivisionEdit","subdivisionDelete","editForms","reportForms","reportAnswerForms","addOptimizations","editOptimizations","deleteOptimizations","getModulesDropdown","importModulesService","getRouteExecutionsReportService","getRouteExecutionService","getSimsListDropdownService","importSIMsService","TableTimePicker","getValue","strictMode","enabled","floatLabelType","toDate","startFetchingPaymentMethods","completeFetchingPaymentMethods","failFetchingPaymentMethods","AppCollapse","accordion","titleKey","contentKey","blockContent","borderCard","openCollapse","setOpenCollapse","handleCollapseToggle","collapsed","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","prevState","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","addUsersToGroup","removeUsersFromGroup","addLocationsToGroup","removeLocationsFromGroup","addWorkplansToGroup","removeWorkplansFromGroup","addUnitsToGroup","removeUnitsFromGroup","addGeofencesToGroup","removeGeofencesFromGroup","addDriversToGroup","removeDriversFromGroup","appConfiguration","webpackContext","req","webpackContextResolve","__webpack_require__","exports","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","grid","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","responseSparePart","newSparePart","confirmedSparePart","sparePartIdState","getSparePart","getSparePartsList","getSparePartsListByMembership","haveSparePartsBeenFetched","reportMileage","reportHourMeters","reportHourOpportunityCharge","reportRunningTime","reportByUnitStopSummary","reportByUnitScriptsHistory","reportConsolidatedStopSummary","reportConsolidatedUnitActivity","reportConsolidatedEventActivity","reportParkedGeofence","reportScheduledReports","reportSystemCommunicationsDiag","reportSystemNotifications","reportSystemApiConsumption","reportConsolidatedSummary","valueSec","onBlurInput","timeZoneId","getTimeZone","getTimeZonesList","isFetchingListTimeZones","haveTimezonesBeenFetched","monitoringUserSelectors","componentKey","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","caret","targetRange","getSelection","newContentState","Modifier","insertText","moveSelectionToEnd","insertWildcardKey","wrapperStyle","toolbarStyle","editorStyle","localization","onEditorStateChange","newEditorState","preserveSelectionOnBlur","useGetDriverImages","update","driverImages","setData","isFetchingDriverImages","useGetDowntimeBinnacle","execute","downtimeBinnacle","isFetchingDowntimeBinnacle","binnacle","initialDateRange","setIsReportOpen","currentDate","startDateRange","endDateRange","editContract","listContractVersions","consolidateContract","organizationFormTypeId","selectFirst","formSelectors","isSelectedFirst","setIsSelectedFirst","workmanshipIdState","getWorkmanship","getWorkmanshipsListByMembership","haveWorkmanshipsBeenFetched","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","SlidingPaneAddEditContact","contactSelectors","initialValues","initialValuesRedux","reduxContacts","contactStatus","unfilteredContacts","pattern","phoneNumber","birthDate","identification","nacionality","homeAddress","isShared","contactIdAux","createContact","contactIn","getOperatorContactsService","getOperatorStandardPricesService","priorities","executeGetDriverImages","setExecuteGetDriverImages","fileTitle","variant","vehicleMakerId","getVehicleMakersList","getVehicleMaker","vehicleModelId","getVehicleModelsList","getVehicleModel","getVehicleModelsListByMaker","makerId","getModelsList","getModel","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","deleteModule","deleteSensor","measurementHistory","locationSensor","assetAdd","assetEdit","assetDelete","editDrivers","editPeople","editUsers","assignUnitsToUser","rolesPermissionsUsers","addCustomers","editCustomers","removeCustomers","editOptimization","editQuotations","followUpQuotations","webPageQuotations","sendingDiscountQuotations","addContract","deleteContract","addTemplate","deleteTemplate","listQuote","editQuote","addQuote","deleteQuote","jobTypes","jobType","GeofencesDropdownInput","subGeofence","AbilityContext","createContextualCan","Consumer","massAssignment","addPerson","editPerson","removePerson","sensorConfiguration","addOffices","editOffices","removeOffices","denyByManagement","denyByCustomer","approveByManagement","acceptByCustomer","previewQuotation","followUpQuotation","setContacts","SlidepanelGeofenceInformation","onEditGeofence","editingGeofenceLocal","setEditingGeofenceLocal","editingGeofenceLocalRef","onGeofenceDragend","updatedGeofence","geofencesRouteParam","bringToBack","SlidingPaneAddEditCustomer","locationPrivateCode","getValues","toLocaleTimeString","customerActions","businessName","taxId","customerAddress","customerEmails","contactName1","phone1","contactName2","phone2","contactName3","phone3","averageTime","createCustomer","GoogleLocationsDropdownInput","setGoogleLocation","getLatLngFromGoogle","geocodeByAddress","onChangeFinalGoogleLocation","place_id","REACT_APP_GOOGLE_ICON","selectProps","loadingMessage","autocompletionRequest","componentRestrictions","createOffice","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","getImportedLocationStatusColorClass","getExecution","additionalValidation","setDowntime","useGetDowntimeReasons","downtimeReasons","isFetchingDowntimeReasons","mainStates","subMainStateId","temperatureHistory","paymentMethodId","getPaymentMethod","getPaymentMethodsList","isFetchingListPaymentMethods","havePaymentMethodsBeenFetched","countryId","countryIds","getCountriesList","getCountry","isFetchingListCountries","getProvidersList","getProvider","getProvidersListByCountry","getInsuranceCompaniesList","getInsuranceCompaniesListByCountry","company","getInsuranceAgentsList","getInsuranceAgentsListByCountry","sensorBrandId","getSensorBrand","getSensorBrandsList","getSensorModel","getSensorModelsBySensorBrand","getSensorModelsList","getSensorMeasuresList","getSensorMeasure","noticeIdState","getNoticesList","getNotice","getNoticesListByMembershipAndState","stateType","getNoticesListByMembership","providerIdState","getProvidersListByMembership","haveProvidersBeenFetched","REACT_APP_TOKEN_LIFE_TIME","firstOccurrence","lack","p","noticeProgressLabel","noticeMessageFormatted","noticeMessage","progress2","noticeTypeId2Format","noticeTypeId","getPreventiveNoticesByOdometerIndicators","permissons","onAllClick","onCurrentsClick","onExpiredClick","isChangingStatus","errorChangingStatus","jobsBoardPersistedConfig","byIdUsers","orderUsers","jobsReportPersistedConfig","getJob","isFetchingJob","CatalogIconsOptions","optionId","DropdownIcons","DropdownCategoriesIcons","Field","createReactClass","ReactDOM","jQuery","jquery","existingAbility","ability","Ability","subject","ThemeColors","ThemeContext","setColors","getHex","light","main","secondary","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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CT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,gBACT,KAAK,GACH,MAAO,OACT,KAAK,IACH,MAAO,UAEX,MAAO,WAGI65B,EAAoB,SAAC79H,GAChC,OAAQA,GACN,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,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,K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AAexmH,aAAe,OAAChzE,SAAD,IAACA,QAAD,EAACA,GAAMizE,YAAaE,KAAQ0B,IAAItB,WAA/C,iBACXvzE,SADW,IACXA,QADW,EACXA,GAAM26L,WADK,QACE,GACb,KACJ57E,OAAQ,GACRplB,MAAO,MACP+/F,aAAa,EACbK,eAAe,EACfG,cAAc,EACdN,QAASL,KAA4BvmH,aAAe,OAAChzE,SAAD,IAACA,QAAD,EAACA,GAAMizE,YAAaE,KAAQ0B,IAAItB,YAEtF,CACE9vF,MAAO,mBACP+1M,cAAexmH,aAAe,OAAChzE,SAAD,IAACA,QAAD,EAACA,GAAMizE,YAAaE,KAAQ2B,IAAIvB,WAA/C,iBACXvzE,SADW,IACXA,QADW,EACXA,GAAM46L,WADK,QACE,GACb,KACJ77E,OAAQ,GACRplB,MAAO,MACP+/F,aAAa,EACbK,eAAe,EACfG,cAAc,EACdN,SACE,OAAC55L,SAAD,IAACA,QAAD,EAACA,GAAM46L,OACNrB,KACAvmH,aAAgBhzE,GAAKizE,YAAaE,KAAQ2B,IAAIvB,YAEnD,CACE9vF,MAAO,YACP+1M,cAAexmH,aAAe,OAAChzE,SAAD,IAACA,QAAD,EAACA,GAAMizE,YAAaE,KAAQiB,WAAWb,WAAtD,iBACXvzE,SADW,IACXA,QADW,EACXA,GAAM66L,kBADK,QACS,GACpB,KACJ97E,OAAQ,GACR/hI,KAAM,kBACN28G,MAAO,aACP+/F,aAAa,EACbK,eAAe,EACfH,QACGL,KACAvmH,aAAe,OAAChzE,SAAD,IAACA,QAAD,EAACA,GAAMizE,YAAaE,KAAQiB,WAAWb,YAE3D,CACE9vF,MAAO,mBACP+1M,cAAexmH,aAAe,OAAChzE,SAAD,IAACA,QAAD,EAACA,GAAMizE,YAAaE,KAAQuB,MAAMnB,WAAjD,iBACXvzE,SADW,IACXA,QADW,EACXA,GAAMklB,aADK,QACI,GACf,KACJ65F,OAAQ,GACRplB,MAAO,QACPugG,cAAc,EACdR,aAAa,EACbK,eAAe,EACfH,SACE,OAAC55L,SAAD,IAACA,QAAD,EAACA,GAAMklB,SACNq0K,KACAvmH,aAAe,OAAChzE,S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","file":"static/js/main.ecc36a84.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 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 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});\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\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\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","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","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_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_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_IDLE_SPEED = 5;\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\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 battery: number;\n backupBattery: any;\n isCharging: number | boolean;\n doorState: any;\n coverTamperState: any;\n padlockState: any;\n satellites: number;\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}\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';\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 = ({\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 }) => {\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 didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n }\n });\n};\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","// ** 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 layout from './layout';\nimport auth from './auth';\nimport * as authTypes from '../types/auth';\nimport operators from 'views/screens/Operators/reducers';\nimport organizations from 'views/screens/Organizations/reducers';\nimport divisions from 'views/screens/Divisions/reducers';\nimport subdivisions from 'views/screens/Subdivisions/reducers';\nimport serviceClasses from 'views/screens/ServiceClasses/reducers';\nimport agents from 'views/screens/Agents/reducers';\nimport navbar from './navbar';\nimport modules from 'views/screens/Modules/reducers';\nimport entities from 'views/screens/Entities/reducers';\nimport workplans from 'views/screens/Workplans/reducers/workplans';\nimport locations from 'views/screens/Locations/reducers';\nimport drivers from 'views/screens/Drivers/reducers';\nimport monitoringUsers from 'views/screens/Users/reducers';\nimport jobs from 'views/screens/Jobs/reducers';\nimport groups from 'views/screens/Groups/reducers';\nimport organizationContracts from 'views/screens/Contracts/reducers';\nimport contractTemplates from 'views/screens/ContractTemplates/reducers';\nimport schedules from 'views/screens/Schedules/reducers';\nimport routes from 'views/screens/Routes/reducers/routes';\nimport units from 'views/screens/Units/reducers';\nimport geofences from 'views/screens/Geofences/reducers';\nimport staticCatalogs from './static-catalogs';\nimport localforage from 'localforage';\nimport people from 'views/screens/Contacts/reducers';\nimport sims from 'views/screens/SIMs/reducers';\nimport vehicles from 'views/screens/Vehicles/reducers';\nimport assets from 'views/screens/Assets/reducers';\nimport sensors from 'views/screens/Sensors/reducers';\nimport forms from 'views/screens/Forms/reducers';\nimport categories from 'views/screens/vehicleMaintenance/reducers/catalogs/categories';\nimport workmanship from 'views/screens/vehicleMaintenance/reducers/catalogs/workmanship';\nimport noticesByOdometer from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByOdometer';\nimport noticesByDate from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByDate';\nimport noticesByHourmeter from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByHourmeter';\nimport providers from 'views/screens/vehicleMaintenance/reducers/catalogs/providers';\nimport spareParts from 'views/screens/vehicleMaintenance/reducers/catalogs/spareParts';\nimport maintenanceLines from 'views/screens/MaintenanceLines/reducers';\nimport customers from 'views/screens/Customers/reducers';\nimport quotations from 'views/screens/Quotations/reducers';\nimport offices from 'views/screens/Offices/reducers';\nimport protocols from 'views/screens/Protocols/reducers';\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});\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/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, 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 * as entityTypes from '../../../screens/Entities/constants';\n//Se importan las actions de las entities que se quieren actualizar\nimport * as operatorsActions from 'views/screens/Operators/actions';\nimport * as organizationsActions from 'views/screens/Organizations/actions';\nimport * as divisionsActions from 'views/screens/Divisions/actions';\nimport * as subdivisionsActions from 'views/screens/Subdivisions/actions';\nimport * as maintenanceLinesActions from 'views/screens/MaintenanceLines/actions';\nimport * as unitsActions from '../../Units/actions';\nimport * as geofencesActions from 'views/screens/Geofences/actions';\nimport * as workplansActions from 'views/screens/Workplans/actions/workplans';\n\nimport * as routesActions from 'views/screens/Routes/actions/routes';\nimport * as serviceClassesActions from 'views/screens/ServiceClasses/actions';\nimport * as locationActions from '../../Locations/actions';\nimport * as officeActions from '../../Offices/actions';\nimport * as driverActions from '../../Drivers/actions';\nimport * as schedulesActions from '../../Schedules/actions';\nimport * as brandsActions from '../../../../redux/actions/static-catalogs/brands';\nimport * as modelsActions from '../../../../redux/actions/models';\nimport * as contactsActions from 'views/screens/Contacts/actions';\nimport * as monitoringUsers from '../../Users/actions';\nimport * as agentActions from 'views/screens/Agents/actions';\nimport * as modulesActions from '../../Modules/actions';\nimport * as simActions from '../../SIMs/actions';\nimport * as countriesActions from '../../../../redux/actions/static-catalogs/countries';\nimport * as vehicleActions from '../../Vehicles/actions/index';\nimport * as vehicleMakerActions from '../../../../redux/actions/static-catalogs/vehicle-makers';\nimport * as assetsActions from 'views/screens/Assets/actions';\nimport * as sensorsActions from 'views/screens/Sensors/actions';\nimport * as jobActions from 'views/screens/Jobs/actions';\nimport * as groupsActions from 'views/screens/Groups/actions';\nimport * as formsActions from 'views/screens/Forms/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 protocolsActions from 'views/screens/Protocols/actions';\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 })\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 })\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 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} 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 { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n { 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.completeFetchingGeofences(geofences, result, operatorId, organizationId)\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/* 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 { moduleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedModule = yield select((state) => selectors.getModule(state, moduleId));\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} 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 console.log('operatorId', filterOperatorId, 'organizationId', filterOrganizationId);\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/* 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/* 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 ],\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/* 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 { 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 getRouteCheckpointsListService = 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}/getCheckpoints`, 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/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","/* -------------------------------------------------------------------------- */\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 { 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 { 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/* Cancel Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* cancelRouteExecution(action) {\n const newStatus = 8;\n const routes = action.payload.routes;\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/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\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 === routes.length\n ) {\n yield put(\n actions.completeCancelRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasCanceled'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesCancelationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesCancelationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelRoutesExecutions(error));\n }\n}\n\nexport function* watchCancelRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_CANCEL_STARTED, cancelRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Finalize Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* finalizeRouteExecution(action) {\n const newStatus = 6;\n const routes = action.payload.routes;\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/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\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 === routes.length\n ) {\n yield put(\n actions.completeFinalizeRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasFinished'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesFinalizationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesFinalizationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeRoutesExecutions(error));\n }\n}\n\nexport function* watchFinalizeRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_FINALIZE_STARTED, finalizeRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Complete Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* completeRouteExecution(action) {\n const newStatus = 2;\n const routes = action.payload.routes;\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/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\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 === routes.length\n ) {\n yield put(\n actions.completeCompleteRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasCompleted'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesCompletationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCompleteRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesCompletationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCompleteRoutesExecutions(error));\n }\n}\n\nexport function* watchCompleteRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_COMPLETE_STARTED, completeRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* removeRouteExecution(action) {\n const newStatus = 0;\n const routes = action.payload.routes;\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/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\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 === routes.length\n ) {\n yield put(\n actions.completeRemoveRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesRemoveMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemoveRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesRemoveMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemoveRoutesExecutions(error));\n }\n}\n\nexport function* watchRemoveRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_REMOVE_STARTED, removeRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Pause Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* pauseRouteExecution(action) {\n const newStatus = 5;\n const routes = action.payload.routes;\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/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\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 === routes.length\n ) {\n yield put(\n actions.completePauseRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasPaused'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesPauseMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPauseRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesPauseMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPauseRoutesExecutions(error));\n }\n}\n\nexport function* watchPauseRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_PAUSE_STARTED, pauseRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Start Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* startRouteExecution(action) {\n const newStatus = 3;\n const routes = action.payload.routes;\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/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\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 === routes.length\n ) {\n yield put(\n actions.completeStartRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasStarted'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesStartMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failStartRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesStartMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failStartRoutesExecutions(error));\n }\n}\n\nexport function* watchStartRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_START_STARTED, startRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Manual Transit Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* manualTransitRouteExecution(action) {\n const newStatus = 3;\n const routes = action.payload.routes;\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/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\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 === routes.length\n ) {\n yield put(\n actions.completeManualTransitRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesManualTransit'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesManualTransitMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesManualTransitMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitRoutesExecutions(error));\n }\n}\n\nexport function* watchManualTransitRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED, manualTransitRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Share Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* shareRouteExecution(action) {\n const newStatus = 0;\n const routes = 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/shareRouteExecutions`, {\n method: 'POST',\n body: JSON.stringify(routes),\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.completeShareRoutesExecutions(routes.routeAssignments, routes.emailList));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasShared'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesShareMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failShareRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesShareMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failShareRoutesExecutions(error));\n }\n}\n\nexport function* watchShareRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_SHARE_STARTED, shareRouteExecution);\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 { 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 { getUsersListService, saveUserService, deleteUserService } 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/* 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 * 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/* 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 { 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}\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","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} from '../services/locations';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchLocationsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getLocationsListService(\n { 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.completeFetchingLocations(locations, result, operatorId, organizationId)\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/* 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} 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/* 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","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 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 watchFetchUnitHistoricalPositionsStarted,\n watchFetchUnitInformationStarted,\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 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 watchCancelRouteExecution,\n watchChangeToAlternateRouteStarted,\n watchCompleteRouteExecution,\n watchEditRouteExecutionStarted,\n watchFetchRoutesExecutions,\n watchFinalizeRouteExecution,\n watchManualTransitRouteExecution,\n watchPauseRouteExecution,\n watchRemoveRouteExecution,\n watchShareRouteExecution,\n watchStartRouteExecution\n} from '../../views/screens/Routes/sagas/routesExecutions';\nimport { watchFetchRoutesReport } from '../../views/screens/Routes/sagas/routesReport';\nimport {\n watchAddMonitoringUsersStarted,\n watchAssignScheduleUsersStarted,\n watchEditMonitoringUsersStarted,\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 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 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 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 watchFetchProtocolsList,\n watchPartialFetchProtocolsList,\n watchAddProtocolStarted,\n watchEditProtocolStarted,\n watchRemoveProtocolStarted\n} from '../../views/screens/Protocols/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\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\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\n //Locations\n fork(watchFetchLocationsList),\n fork(watchPartialFetchLocationsList),\n fork(watchAddLocationsStarted),\n fork(watchEditLocationsStarted),\n fork(watchRemoveLocationStarted),\n fork(watchImportLocationsStarted),\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\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(watchCancelRouteExecution),\n fork(watchFinalizeRouteExecution),\n fork(watchCompleteRouteExecution),\n fork(watchRemoveRouteExecution),\n fork(watchPauseRouteExecution),\n fork(watchStartRouteExecution),\n fork(watchManualTransitRouteExecution),\n fork(watchShareRouteExecution),\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\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\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}\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","// 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","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","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 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","// -------------------------------------------\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// | 56 | Protocolos |\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;\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 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}\n\nexport interface SacUser {\n userId: number;\n userName: string;\n completeName: string;\n chatUserTypeId: number;\n organizationId: number;\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 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 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 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;\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 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 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 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}\n\nexport interface AssignedUnit {\n unitId: number;\n unitName: string;\n privateCode?: string;\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 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 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 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 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 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","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","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 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 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 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","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 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","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 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 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","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","//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) => {\n\n const performanceStatus = Math.round(status)\n\n return (!performanceStatus || ((performanceStatus <= rangePerformance[1] - 1))\n ? performanceColors[0]\n : performanceStatus >= rangePerformance[1] && performanceStatus <= rangePerformance[2] - 1\n ? performanceColors[1]\n : performanceStatus >= rangePerformance[2] && performanceStatus <= rangePerformance[3]\n ? performanceColors[2]\n : performanceStatus > rangePerformance[3] && performanceStatus < 200\n ? performanceColors[3]\n : performanceColors[4])\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 poorPerformance: filterTelemetryData(ranges[0],ranges[1]-1, unitsWithRecentData),\n regularPerformance: filterTelemetryData(ranges[1], ranges[2]-1, unitsWithRecentData),\n goodPerformance: filterTelemetryData(ranges[2], ranges[3], unitsWithRecentData),\n overPerformance: filterTelemetryData(ranges[3]+1, 0, unitsWithRecentData),\n excessivePerformance: filterTelemetryData(200, 0, unitsWithRecentData),\n unitsWithDischarges: filterTelemetryData(0.1, 0, unitsWithRecentData, 'unloaded'),\n unitsWithoutDischarges: filterTelemetryData(0, 0, unitsWithRecentData, 'unloaded'),\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 \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 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 { DateTime } from 'luxon';\r\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\r\nimport { htmlToText } from 'html-to-text';\r\nimport moment, { Moment } from 'moment';\r\nimport _ from 'lodash';\r\nimport { transform, isObject, isArray, camelCase, isDate } from 'lodash';\r\nimport { FormatListOptions, IntlShape } from 'react-intl';\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\nimport exceldate from 'exceldate';\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 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","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 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 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","/* -------------------------------------------------------------------------- */\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 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 //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 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","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","/* -------------------------------------------------------------------------- */\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","import * as types from '../types';\n\nexport const startFetchingGeofences = (filters = {}) => ({\n type: types.GEOFENCES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingGeofences = (entities, order, operatorId, organizationId) => ({\n type: types.GEOFENCES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\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 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 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 } = action.payload;\n const newState = {};\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.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.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 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});\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;\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/* 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","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","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 { 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 { 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 { 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 { 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 { 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 { 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 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 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_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 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});\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 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_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_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 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 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 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});\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;\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);\n\n//Errors\nexport const getFetchingListUnitsLiveStatusErrors = (state) =>\n selectorsUnitLiveStatus.getFetchingListUnitsLiveStatusErrors(state);\nexport const getFetchingUnitInformationErrors = (state) =>\n selectorsUnitLiveStatus.getFetchingUnitInformationErrors(state);\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 * 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 { 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 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 { 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 } = action.payload;\n const newState = {};\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.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 } = action.payload;\n return union(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 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});\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 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;\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 '../../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 { 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}\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 } = 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","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 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/* 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","import * as types from '../types';\n\nexport const startFetchingLocations = (filters = {}) => ({\n type: types.LOCATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingLocations = (entities, order, operatorId, organizationId) => ({\n type: types.LOCATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\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 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';\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 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/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","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","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","/* eslint-disable semi */\nimport { env } from '../../../../env';\nimport moment from 'moment';\nimport { Square } from 'react-feather';\nimport Icon from 'utility/icomoon';\nimport L from 'leaflet';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { isNaNOrNullable } from 'utility/Utils';\nimport { getPerformanceColor, getPerformanceTitle } from 'views/screens/Telemetry/utils';\nimport { useRef } from 'react';\nimport { UncontrolledTooltip } from 'reactstrap';\nimport { IntlShape } from 'react-intl';\nimport { UnitsRoutesAssignment } from '../views/RoutesAssignUnitScreen/SelectUnitsAndRoutesTab';\nimport { AssignedUnit } from '../hooks/useGetAssignedUnits';\nimport { AssignmentByDate } from '../views/RoutesAssignUnitScreen/ReviewAssignmentByDateTab';\nimport { CommonValuesFormValues } from '../views/RoutesAssignUnitScreen/SelectCommonValuesTab';\nimport { AssignmentBySchedule } from '../views/RoutesAssignUnitScreen/ReviewAssignmentByScheduleTab';\nimport {\n AssignmentTypeFormValues,\n AssignmentTypes\n} from '../views/RoutesAssignUnitScreen/SelectAssignmentTypeTab';\nimport { Schedule } from 'views/screens/Schedules/views/listTrigger';\n\nexport const getRouteExecutionInformation = (state, routeExecution) => {\n const intl = appIntl();\n if (routeExecution) {\n let routeStatusLabel = '';\n let routeStatusLabelInfo = '';\n switch (routeExecution.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\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 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","/* 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","export const env = { ...process.env, ...window['env'] };\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};\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","/* -------------------------------------------------------------------------- */\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 * as entitiesSelectors from '../../reducers';\nimport {\n ENTITY_AGENTS,\n ENTITY_ASSETS,\n ENTITY_CONTACTS,\n ENTITY_COUNTRIES,\n ENTITY_DIVISIONS,\n ENTITY_FORMS,\n ENTITY_GEOFENCES,\n ENTITY_JOBS_BACKLOG,\n ENTITY_GROUPS,\n ENTITY_LOCATIONS,\n ENTITY_MODULES,\n ENTITY_OPERATORS,\n ENTITY_ORGANIZATIONS,\n ENTITY_DRIVERS,\n ENTITY_ROUTES,\n ENTITY_SCHEDULES,\n ENTITY_SENSORS,\n ENTITY_SERVICE_CLASSES,\n ENTITY_SIM_CARDS,\n ENTITY_SUBDIVISONS,\n ENTITY_MAINTENANCE_LINES,\n ENTITY_UNITS,\n ENTITY_USERS,\n ENTITY_VEHICLES,\n ENTITY_WORKPLANS,\n ENTITY_ORGANIZATION_CONTRACTS,\n ENTITY_CUSTOMERS,\n ENTITY_CONTRACT_TEMPLATES,\n ENTITY_OFFICES,\n ENTITY_PROTOCOLS\n} from '../../constants';\n\nexport interface DefaultFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n groupId?: number;\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?: DefaultFilters;\n useSchedules?: boolean;\n useForms?: boolean;\n useRoutes?: boolean;\n routesFilters?: DefaultFilters;\n useCountries?: boolean;\n useLocations?: boolean;\n locationsFilters?: DefaultFilters;\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 intervalTime?: number; //milliseconds ?: send undefined,null or 0 to avoid a setInterval\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 intervalTime,\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 (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 }\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 }\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 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 console.log('useServiceClassesDropdown', 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 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 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 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 intervalTime: null, //milliseconds\n additionalEntities: [] //list of entitytypes (int) to also load\n};\n\nexport default FetchEntities;\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 {\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 { UnitMainState, UnitsMainState } from 'views/screens/Units/types';\nimport Icon from 'utility/icomoon';\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 //console.log('unitLiveStatus.mainState==>', state);\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","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 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}\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 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","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","/* -------------------------------------------------------------------------- */\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","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};\n\nexport default permissions;\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 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 { 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","/**\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","/* -------------------------------------------------------------------------- */\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","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 = (moduleId) => ({\n type: types.MODULE_REMOVE_STARTED,\n payload: {\n moduleId\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 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","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","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};\n\nexport default permissions;\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 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 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 { 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","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 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","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","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","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 PROVIDERS_FETCH_STARTED = 'PROVIDERS_FETCH_STARTED';\nexport const PROVIDERS_FETCH_COMPLETED = 'PROVIDERS_FETCH_COMPLETED';\nexport const PROVIDERS_FETCH_FAILED = 'PROVIDERS_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","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';\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}\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 } = 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 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) {\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={intlContext?.locale === 'es' ? 'es-US' : intlContext?.locale}\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 >\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","/* -------------------------------------------------------------------------- */\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,\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 (required && !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","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}\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 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 {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 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","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.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_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 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 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});\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;\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 { 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 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 Option: IconOption,\n SingleValue: IconSingleValue,\n MultiValue: IconMultipleValue,\n MenuList\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","// ** 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 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","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","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 { 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","import { useEffect, useState } from 'react';\nimport L, { TileLayer } from 'leaflet';\nimport 'leaflet.gridlayer.googlemutant';\nimport 'leaflet-plugins/layer/tile/Bing'; //https://github.com/digidem/leaflet-bing-layer\nimport 'leaflet-providers';\nimport { useSelector } from 'react-redux';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { useScript } from '../../utils';\nimport { useLeafletContext } from '@react-leaflet/core';\n\n/* -------------------------------------------------------------------------- */\n/* MapBaseLayers given User Properties */\n/* -------------------------------------------------------------------------- */\nexport interface MapBaseLayersOptions {\n forceUseMapquestMaps?: boolean;\n forceUseGoogleMaps?: boolean;\n forceUseHereMaps?: boolean;\n forceUseBingMaps?: boolean;\n position: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n listenMapControlChanges?: any[];\n}\n\nconst MapBaseLayers = (props: MapBaseLayersOptions) => {\n const {\n forceUseMapquestMaps,\n forceUseGoogleMaps,\n forceUseHereMaps,\n forceUseBingMaps,\n position,\n listenMapControlChanges\n } = props;\n const user = useSelector(authSelectors.getAuthUser);\n const context = useLeafletContext();\n\n //Initialize mapquest and google maps\n //We get apikeys from usersession\n useScript(\n `https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=${user.mapquestConsumerKey}`\n );\n useScript(\n `https://maps.googleapis.com/maps/api/js?key=${user.googleMapsApiKey}&libraries=places`\n );\n\n //Initialize Maps\n useEffect(() => {\n let osmmap: null | TileLayer = null;\n let gmRoadmap = null;\n let gmHybrid = null;\n let gmSatellite = null;\n let gmTerrain = null;\n let gmTraffic = null;\n let bing = null;\n let bing_satelite = null;\n let bing_hibrido = null;\n let here_layer = null;\n let here_satelite_layer = null;\n let mqOsm = null;\n let mqHybrid = null;\n let mqSatellite = null;\n let mqDark = null;\n let mqLight = null;\n let mapTilerBasic = null;\n let mapTilerLight = null;\n let mapTilerDark = null;\n\n const useMapquestMaps =\n //@ts-ignore MapQuest\n typeof MQ !== 'undefined' && (user.useMapquestMaps == 1 || forceUseMapquestMaps);\n const useGoogleMaps = user.useGoogleMaps == 1 || forceUseGoogleMaps;\n const useBingMaps = user.useBingMaps == 1 || forceUseBingMaps;\n const useHereMaps = user.useHereMaps == 1 || forceUseHereMaps;\n //Open Street Maps\n let osmurl = '//tile.openstreetmap.org/{z}/{x}/{y}.png';\n let osmAttrib = 'Map data © OpenStreetMap contributors';\n osmmap = new L.TileLayer(osmurl, {\n maxZoom: 19,\n attribution: osmAttrib\n });\n let baseMapLayers = { OpenStreetMap: osmmap };\n\n //Mapquest Maps\n if (useMapquestMaps) {\n // @ts-ignore MapQuest\n mqOsm = MQ.mapLayer();\n // @ts-ignore MapQuest\n mqHybrid = MQ.hybridLayer();\n // @ts-ignore MapQuest\n mqSatellite = MQ.satelliteLayer();\n // @ts-ignore MapQuest\n mqDark = MQ.darkLayer();\n // @ts-ignore MapQuest\n mqLight = MQ.lightLayer();\n\n baseMapLayers['MapQuest'] = mqOsm;\n baseMapLayers['MapQuest Hybrid'] = mqHybrid;\n baseMapLayers['MapQuest Satellite'] = mqSatellite;\n baseMapLayers['MapQuest Dark'] = mqDark;\n baseMapLayers['MapQuest Light'] = mqLight;\n }\n\n //Google Maps\n if (useGoogleMaps) {\n gmRoadmap = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'roadmap'\n });\n gmHybrid = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'hybrid'\n });\n gmSatellite = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'satellite'\n });\n gmTerrain = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'terrain'\n });\n gmTraffic = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'roadmap'\n });\n if (gmTraffic) gmTraffic.addGoogleLayer('TrafficLayer');\n\n baseMapLayers['Google Maps'] = gmRoadmap;\n baseMapLayers['Google Maps Road & Satellite'] = gmHybrid;\n baseMapLayers['Google Maps Traffic'] = gmTraffic;\n baseMapLayers['Google Maps Terrain'] = gmTerrain;\n baseMapLayers['Google Maps Satellite'] = gmSatellite;\n }\n\n // Bing Maps\n const bing_api_key = user.bingMapsApiKey;\n if (useBingMaps) {\n bing_satelite = new L.BingLayer(bing_api_key, {\n type: 'Aerial'\n });\n bing_hibrido = new L.BingLayer(bing_api_key, {\n type: 'AerialWithLabels'\n });\n bing = new L.BingLayer(bing_api_key, {\n type: 'Road'\n });\n baseMapLayers['Bing Maps'] = bing;\n baseMapLayers['Bing Satellite'] = bing_satelite;\n baseMapLayers['Bing Hybrid'] = bing_hibrido;\n }\n\n //Here maps\n const hereMapsAppId = user.hereMapsAppId;\n const hereMapsAppCode = user.hereMapsAppCode;\n if (useHereMaps) {\n here_layer = L.tileLayer.provider('HERE.normalDay', {\n app_id: hereMapsAppId,\n app_code: hereMapsAppCode\n });\n here_satelite_layer = L.tileLayer.provider('HERE.hybridDay', {\n app_id: hereMapsAppId,\n app_code: hereMapsAppCode\n });\n\n baseMapLayers['Here Maps'] = here_layer;\n baseMapLayers['Here Maps Satellite'] = here_satelite_layer;\n }\n\n const layerGroup = new L.Control.Layers(baseMapLayers, {}, { position: position });\n const container = context.layerContainer || context.map;\n container.addLayer(osmmap);\n container.addControl(layerGroup);\n\n //Check if user has a prefered map\n //vamos a revisar si hay un layer escogido\n var homeLayer = null;\n const homeLayerId = parseInt(user.homeLayer);\n switch (homeLayerId) {\n case 0:\n homeLayer = osmmap;\n break;\n case 1:\n homeLayer = osmmap;\n break;\n case 2:\n homeLayer = useMapquestMaps ? mqOsm : osmmap;\n break;\n case 3:\n homeLayer = useGoogleMaps ? gmRoadmap : useBingMaps ? bing : osmmap;\n break;\n case 4:\n homeLayer = useGoogleMaps ? gmHybrid : useBingMaps ? bing : osmmap;\n break;\n case 5:\n homeLayer = useBingMaps ? bing : osmmap;\n break;\n case 6:\n homeLayer = osmmap;\n break;\n case 7:\n homeLayer = useBingMaps ? bing_satelite : osmmap;\n break;\n case 8:\n homeLayer = useBingMaps ? bing_hibrido : osmmap;\n break;\n case 9:\n homeLayer = useHereMaps ? here_layer : osmmap;\n break;\n case 10:\n homeLayer = useHereMaps ? here_satelite_layer : osmmap;\n break;\n case 11:\n homeLayer = useGoogleMaps ? gmSatellite : useBingMaps ? bing : osmmap;\n break;\n case 12:\n homeLayer = useGoogleMaps ? gmTraffic : useBingMaps ? bing : osmmap;\n break;\n case 13:\n homeLayer = useGoogleMaps ? gmTerrain : useBingMaps ? bing : osmmap;\n break;\n case 14:\n homeLayer = useMapquestMaps ? mqHybrid : osmmap;\n break;\n case 15:\n homeLayer = useMapquestMaps ? mqSatellite : osmmap;\n break;\n case 16:\n homeLayer = useMapquestMaps ? mqDark : osmmap;\n break;\n case 17:\n homeLayer = useMapquestMaps ? mqLight : osmmap;\n break;\n case 18:\n homeLayer = osmmap; // mapTilerBasic;\n break;\n case 19:\n homeLayer = osmmap; // mapTilerLight;\n break;\n case 20:\n homeLayer = osmmap; // mapTilerDark;\n break;\n }\n\n if (!homeLayer) homeLayer = osmmap;\n\n homeLayer.addTo(container);\n return () => {\n container.removeControl(layerGroup);\n };\n }, [...listenMapControlChanges]); //typeof MQ if MapQuest is still not defined\n\n return null;\n};\n\nMapBaseLayers.defaultProps = {\n forceUseMapquestMaps: false,\n forceUseGoogleMaps: false,\n forceUseHereMaps: false,\n forceUseBingMaps: false,\n position: 'bottomleft',\n listenMapControlChanges: []\n};\nexport default MapBaseLayers;\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","import L from 'leaflet';\nimport { createPathComponent } from '@react-leaflet/core';\nimport { renderToString } from 'react-dom/server';\nimport 'leaflet.markercluster';\nimport { PathOptions } from 'leaflet';\nimport { ReactNode } 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?: any; // Replace 'any' with the actual type if known\n}\n\nconst MarkerClusterGroup = createPathComponent(\n ({ children: _c, icon = null, ...props }: Props, ctx) => {\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 // 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 const markerClusterGroup = new L.markerClusterGroup(clusterProps);\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","// @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}\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 } = 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 }}\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}\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 } = props;\n const dispatch = useDispatch();\n const [showLocationInformationSlidepanel, setShowLocationInformationSlidepanel] = useState(false);\n const [initialLocationId, setInitialLocationId] = useState();\n const [selectedLocation, setSelectedLocation] = useState({});\n const { store, user, isEditing, isAdding } = useSelector((state) => ({\n store: state,\n user: authSelectors.getAuthUser(state),\n isEditing: locationSelectors.isEditingLocation(state),\n isAdding: locationSelectors.isAddingLocation(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 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 let icon = undefined;\n if (clusterMarkers) {\n WrapperMarkerClusterGroup = MarkerClusterGroup;\n icon = ;\n wrapperProps['disableClusteringAtZoom'] = startClusteringAt;\n }\n\n const [locationsBounds, setLocationsBounds] = useState([]);\n const displayMarkers = () => {\n setLocationsBounds(\n locations.filter((location) =>\n map\n ? location?.latitude != null &&\n location?.longitude != null &&\n map.getBounds().contains(L.latLng(location.latitude, location.longitude)) &&\n (!hideMarkersByZoom ||\n showUnitByZoomAndRadius(map.getZoom(), location?.radius || 50) ||\n selectedLocationIds?.includes(location?.locationId))\n : true\n )\n );\n };\n useDeepCompareEffect(() => {\n displayMarkers();\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 ]);\n\n return (\n <>\n {(showLocations || useIsShownLocation) && (\n \n {locationsBounds.map(\n (location) =>\n location.latitude != null &&\n location.longitude != null &&\n ((showLocations && !useIsShownLocation) ||\n (useIsShownLocation && location.isShownInMap)) && (\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(\n editingLocationParentRef?.current.locationId\n )\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 )}\n
\n )}\n\n {\n setShowLocationInformationSlidepanel(false);\n setSelectedLocation({});\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","import 'leaflet-rotatedmarker';\nimport { useEffect, useRef } from 'react';\nimport { Marker } from 'react-leaflet';\n\nconst RotatedMarker = ({ children, ...props }: any) => {\n const markerRef = useRef();\n\n const { rotationAngle, rotationOrigin } = props;\n useEffect(() => {\n if (markerRef.current?.setRotationAngle && markerRef.current?.setRotationOrigin) {\n markerRef.current.setRotationAngle(rotationAngle);\n markerRef.current.setRotationOrigin(rotationOrigin);\n }\n }, [rotationAngle, rotationOrigin]);\n\n return (\n {\n if (ref) markerRef.current = ref;\n }}\n {...props}\n >\n {children}\n \n );\n};\n\nexport default RotatedMarker;\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 {\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 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 {\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('40rem');\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\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: process.env.NODE_ENV === 'production' ? process.env.PUBLIC_URL : 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 column.visible !== false && column.headerText != \"null(null)\")\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: 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 SlidingPane from 'react-sliding-pane';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport { useEffect, FC, useMemo } from 'react';\nimport { useForm, Controller } from 'react-hook-form';\nimport { useSelector } from 'react-redux';\nimport useGetUnitScriptHistory from '../../hooks/useGetUnitScriptHistory';\nimport DateInput from 'views/formComponents/DateInput';\nimport moment from 'moment';\nimport { Row, Col, Spinner, Button, Badge } from 'reactstrap';\nimport Table from 'views/components/Table';\nimport Toolbar from 'views/components/Toolbar';\nimport ReportViewerButton from 'views/components/ReportViewerButton';\nimport { FormattedMessage, IntlShape, useIntl } from 'react-intl';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { BroadcastChannel } from 'broadcast-channel';\nimport { useRerender } from 'hooks/useRerender';\nimport { TableColumn } from 'utility/types';\nimport { renderToString } from 'react-dom/server';\nimport Icon from 'utility/icomoon';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { isNotNullOrUndefined } from 'utility/Utils';\nimport { getStatusStyles } from 'views/screens/Reports/views/byUnit/reportScriptHistory/utils';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneUnitHistoricalScriptsReport */\n/* -------------------------------------------------------------------------- */\n\n//Columnas predefinidas para la tabla\nconst columns: TableColumn[] = [\n {\n fieldName: 'scriptDate',\n headerText: 'common.date',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n },\n {\n fieldName: 'sentDirection',\n headerText: 'units.sentDirection',\n textAlign: 'Center',\n headerTemplate: renderToString(\n \n \n \n ),\n template: (script) => (\n \n \n \n \n \n )\n },\n {\n fieldName: 'scriptTypeDescription',\n headerText: 'forms.type'\n },\n {\n fieldName: 'scriptText',\n headerText: 'common.text'\n },\n {\n fieldName: 'deviceActionDescription',\n headerText: 'units.action'\n },\n {\n fieldName: 'userName',\n headerText: 'users.user'\n },\n {\n fieldName: 'status',\n headerText: 'units.status',\n template: (script) => {\n const styles = getStatusStyles(script.isProcessed);\n if (styles === null) {\n return <>;\n }\n\n const { color, icon, text } = styles;\n\n return (\n \n \n {text}\n \n );\n }\n },\n {\n fieldName: 'sentDate',\n headerText: 'units.sentDate',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n }\n];\n\ninterface Props {\n closeSlidingPane: Function;\n isSlidingPaneOpen: boolean;\n title: string;\n subtitle: string;\n unit: any;\n}\n\nconst SlidingPaneUnitHistoricalScriptsReport: FC = ({\n closeSlidingPane,\n isSlidingPaneOpen,\n title,\n subtitle,\n unit\n}) => {\n //HOOKS\n const { control, watch, handleSubmit } = useForm<{ dateRange: [string, string] }>({\n defaultValues: {\n dateRange: [\n moment().startOf('day').format('YYYY-MM-DD HH:mm'),\n moment().endOf('day').format('YYYY-MM-DD HH:mm')\n ]\n }\n });\n const intl: IntlShape = useIntl();\n\n //VARIABLES\n const { dateRange } = watch();\n const [startDate, endDate] = dateRange;\n\n //HOOK CONSULTA A LA API\n const { scriptHistory, isFetchingScriptHistory, startRefresh } = useGetUnitScriptHistory(\n startDate,\n endDate,\n unit?.unitId,\n () => isSlidingPaneOpen\n );\n\n const { rerender } = useRerender([dateRange]);\n\n const { organizationName } = useSelector((state) => {\n const userOrganizationId = authSelectors.getAuthUserOrganizationId(state);\n const organizationName =\n organizationSelectors.getOrganization(state, userOrganizationId)?.organizationName ?? '';\n\n return { organizationName };\n });\n\n const scriptHistoryRpt = useMemo(() => {\n return scriptHistory.map((sh) => {\n return {\n ...sh,\n scriptDate: isNotNullOrUndefined(sh.scriptDate)\n ? moment(sh.scriptDate).format('YYYY-MM-DD HH:mm')\n : '',\n sentDate: isNotNullOrUndefined(sh.sentDate)\n ? moment(sh.sentDate).format('YYYY-MM-DD HH:mm')\n : '',\n status:\n sh.isProcessed === 0\n ? intl.formatMessage({ id: 'units.pending' })\n : sh.isProcessed === 1\n ? intl.formatMessage({ id: 'units.sent' })\n : sh.isProcessed === 2\n ? intl.formatMessage({ id: 'units.cancelled' })\n : '',\n deviceActionDescription: sh.deviceActionId\n ? intl.formatMessage({ id: `units.deviceActionId.${sh.deviceActionId}` })\n : ''\n };\n });\n }, [scriptHistory, intl]);\n\n const reportDataSource = {\n title: intl.formatMessage({ id: 'reports.historyOfScripts' }),\n subtitle: intl.formatMessage({ id: 'jobs.reports.organization' }) + (organizationName ?? ''),\n filters: startDate + ' - ' + endDate,\n dataSets: [\n {\n value: scriptHistoryRpt,\n name: 'scriptHistory'\n }\n ]\n };\n\n useEffect(() => {\n if (isSlidingPaneOpen && !isFetchingScriptHistory) {\n startRefresh();\n }\n }, [isSlidingPaneOpen]);\n\n return (\n <>\n {\n if (closeSlidingPane) closeSlidingPane();\n }}\n >\n <>\n \n \n (\n \n )}\n />\n \n \n {\n startRefresh();\n })}\n >\n \n \n \n \n {isFetchingScriptHistory ? (\n \n \n \n \n \n ) : (\n <>\n {}}\n reportDataSource={reportDataSource}\n useEmbbededChannel={true}\n reportPath={'ScriptsHistoricalData.rdl'}\n />\n ]}\n />\n ({\n ...script,\n scriptDate: moment(new Date(script.scriptDate)).format('YYYY-MM-DD HH:mm'),\n status:\n script.isProcessed === 0\n ? intl.formatMessage({ id: 'units.pending' })\n : script.isProcessed === 1\n ? intl.formatMessage({ id: 'units.sent' })\n : script.isProcessed === 2\n ? intl.formatMessage({ id: 'units.cancelled' })\n : '',\n deviceActionDescription: script.deviceActionId\n ? intl.formatMessage({ id: `units.deviceActionId.${script.deviceActionId}` })\n : ''\n }))}\n enablePersistence={false}\n rerender={rerender}\n />\n \n )}\n \n \n \n );\n};\n\nSlidingPaneUnitHistoricalScriptsReport.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n //showHistoricalPositions: { show: false },\n title: '',\n unit: {}\n};\n\nexport default SlidingPaneUnitHistoricalScriptsReport;\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={'40rem'}\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","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 { 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 * 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 camelcaseKeys from 'camelcase-keys';\nimport { isEmpty } from 'lodash';\nimport moment from 'moment';\nimport { Fragment, useEffect, useRef, useState, useContext } from 'react';\nimport { Clock, MapPin, Menu, Settings, Terminal, User } from 'react-feather';\nimport Lightbox from 'react-image-lightbox';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Badge, Col, Label, Media, Row, Spinner, UncontrolledTooltip } 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 * as unitActions from '../../actions';\nimport * as unitSelectors from '../../reducers';\nimport { UNIT_FETCH_INTERVAL } from '../../types';\nimport { getUnitActionIcon } from '../../utils';\nimport SlidingPaneUnitHistoricalPositionsReport from '../SlidingPaneUnitHistoricalPositionsReport';\nimport SlidingPaneUnitHistoricalScriptsReport from '../SlidingPaneUnitHistoricalScriptsReport';\nimport SlidingPaneStartUnitDowntime from 'views/formComponents/SlidingPaneStartUnitDowntime';\nimport SlidingPaneShareUnitLocation from '../SlidingPaneShareUnitLocation';\nimport SlidingPaneDowntimeBinnacle from 'views/formComponents/SlidingPaneDowntimeBinnacle';\nimport SlidingPanePreviewDriverImages from 'views/formComponents/SlidingPanePreviewDriverImages';\nimport SlidingPaneUnitImages from '../SlidingPaneUnitImages';\nimport UnitFuel from '../UnitFuel';\nimport UnitTemperature from '../UnitTemperature';\nimport unitPermissions from '../../permissions';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { MainStateType, GetMainStateStyle, GetMainStateById } from 'views/screens/Units/utils';\nimport ManualOdometerAdjustment, {\n ButtonTypes\n} from 'views/formComponents/ManualOdometerAdjustment';\nimport { isNotNaNOrNullable } from 'utility/Utils';\nimport ManualHourmeterAdjustment from 'views/formComponents/ManualHourmeterAdjustment';\nimport { Metrics, searchUseMetric } from 'views/screens/Telemetry/utils';\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}) {\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 [showHistScriptsReportSlidingPane, setShowHistScriptsReportSlidingPane] = 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 [isLightboxOpen, setIsLightboxOpen] = useState(false);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n\n const {\n unit,\n isFetching,\n isAcknowledgeUnitEvent,\n isEditingDowntime,\n store,\n authSystems,\n userPermissions\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 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 };\n });\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 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 };\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({ id: unit?.isCharging ? 'common.yes' : 'common.no' })\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.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.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\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 /* \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 cleanup();\n if (isSlidingPaneOpen && unit?.unitId && isEditingDowntime === false) {\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 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 {!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 showAllButtonsRightToolbar\n ? setShowAllButtonsRightToolbar(false)\n : setShowAllButtonsRightToolbar(true);\n }}\n tooltipMessage={intl.formatMessage({\n id: showAllButtonsRightToolbar\n ? 'common.hideAllButtons'\n : 'common.showAllButtons'\n })}\n />,\n {\n openDowntimeBinnacleSlide(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'trackingUnits.downtimeBinnacle' })}\n visible={showAllButtonsRightToolbar}\n />,\n {\n setShowHistScriptsReportSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({\n id: 'units.showHistoricalScriptsReport'\n })}\n visible={showAllButtonsRightToolbar}\n />,\n {\n setShowAddImageSlidingPane(true);\n setShowUnitImagesSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'units.addImage' })}\n visible={showAllButtonsRightToolbar}\n />,\n {\n setShowAddImageSlidingPane(false);\n setShowUnitImagesSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'units.editImages' })}\n visible={showAllButtonsRightToolbar}\n />,\n {\n setShowShareUnitLocationSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'units.shareLocation' })}\n />,\n {\n setShowHistPositionsReportSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({\n id: 'units.showHistoricalPositionsReport'\n })}\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' })}: ${unit?.driverPhoneNumber}`}\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 || 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 dispatch(unitActions.startEndDowntimeUnit(unit?.unitId))}\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