{"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/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/actions/routesComments/index.tsx","views/screens/Routes/schemas/routesComments/index.tsx","views/screens/Routes/sagas/routesComments/index.tsx","views/screens/Routes/schemas/routesExecutions/index.tsx","views/screens/Routes/sagas/routesExecutions/index.tsx","views/screens/Routes/actions/routesReport/index.tsx","views/screens/Routes/sagas/routesReport/index.tsx","views/screens/Users/schemas/index.tsx","views/screens/Users/sagas/index.tsx","views/screens/Workplans/schemas/workplans/index.tsx","views/screens/Workplans/sagas/workplans/index.tsx","views/screens/Workplans/schemas/workplanAssignments/index.tsx","views/screens/Workplans/sagas/workplansAssignments/index.tsx","views/screens/Workplans/schemas/workplansComments/index.tsx","views/screens/Workplans/services/workplansComments.ts","views/screens/Workplans/sagas/workplansComments/index.tsx","views/screens/Workplans/actions/workplansExecutionLocations/index.tsx","views/screens/Workplans/sagas/workplansExecutionLocations/index.tsx","views/screens/Workplans/actions/workplansExecutions/index.tsx","views/screens/Workplans/schemas/workplansExecutions/index.tsx","views/screens/Workplans/schemas/workplansExecutionLocations/index.tsx","views/screens/Workplans/sagas/workplansExecutions/index.tsx","views/screens/Workplans/actions/workplansReport/index.tsx","redux/schemas/locations/index.tsx","views/screens/Workplans/sagas/workplansReport/index.tsx","views/screens/Workplans/actions/workplansVisits/index.tsx","views/screens/Workplans/schemas/workplansVisits/index.tsx","views/screens/Workplans/schemas/workplansHistoricalVisits/index.tsx","views/screens/Workplans/sagas/workplansVisits/index.tsx","redux/schemas/configurations/index.js","redux/sagas/configurations/index.js","redux/schemas/models/index.tsx","redux/sagas/models/index.tsx","redux/schemas/brands/index.js","redux/sagas/static-catalogs/brands/index.tsx","redux/schemas/currencies/index.js","redux/sagas/static-catalogs/currencies/index.js","redux/schemas/time-zones/index.tsx","redux/sagas/static-catalogs/time-zones/index.tsx","redux/schemas/cellular-providers/index.tsx","redux/sagas/static-catalogs/cellular-providers/index.tsx","redux/schemas/countries/index.tsx","redux/sagas/static-catalogs/countries/index.tsx","redux/schemas/vehicle-makers/index.tsx","redux/sagas/static-catalogs/vehicle-makers/index.tsx","redux/schemas/vehicle-models/index.tsx","redux/sagas/static-catalogs/vehicle-models/index.tsx","redux/schemas/insurance-companies/index.tsx","redux/sagas/static-catalogs/insurance-companies/index.tsx","redux/schemas/insurance-agents/index.tsx","redux/sagas/static-catalogs/insurance-agents/index.tsx","redux/schemas/sensor-brands/index.tsx","redux/sagas/static-catalogs/sensor-brands/index.tsx","redux/schemas/sensor-models/index.tsx","redux/sagas/static-catalogs/sensor-models/index.tsx","redux/schemas/sensor-measures/index.tsx","redux/sagas/static-catalogs/sensor-measures/index.tsx","redux/schemas/payment-methods/index.ts","views/screens/VehicleFuel/services/paymentMethodsService.ts","redux/sagas/static-catalogs/payment-methods/index.tsx","redux/schemas/location-classes/index.js","redux/sagas/static-catalogs/location-classes/index.tsx","views/screens/SIMs/schemas/index.tsx","views/screens/SIMs/sagas/index.tsx","views/screens/Vehicles/schemas/index.tsx","views/screens/Vehicles/sagas/index.tsx","views/screens/Assets/schemas/index.tsx","views/screens/Assets/sagas/index.tsx","views/screens/Sensors/schemas/index.tsx","views/screens/Sensors/sagas/index.tsx","views/screens/Locations/schemas/index.tsx","views/screens/Locations/schemas/importLocations.tsx","views/screens/Locations/sagas/index.tsx","views/screens/Drivers/schemas/index.tsx","views/screens/Drivers/sagas/index.tsx","views/screens/Jobs/schemas/index.tsx","views/screens/Jobs/schemas/importJobs/index.tsx","views/screens/Jobs/sagas/backlog/index.tsx","views/screens/Jobs/sagas/board/index.tsx","views/screens/Jobs/schemas/jobsByUser/index.tsx","views/screens/Jobs/sagas/report/index.tsx","views/screens/Jobs/sagas/index.tsx","views/screens/Groups/sagas/index.tsx","views/screens/Quotations/schemas/index.tsx","views/screens/Quotations/sagas/index.tsx","views/screens/Contracts/schemas/index.tsx","views/screens/Contracts/sagas/index.tsx","views/screens/ContractTemplates/schemas/index.tsx","views/screens/ContractTemplates/sagas/index.tsx","views/screens/Customers/schemas/index.tsx","views/screens/Customers/sagas/index.tsx","views/screens/Offices/schemas/index.tsx","views/screens/Offices/services/index.ts","views/screens/Offices/sagas/index.tsx","views/screens/Forms/schemas/index.tsx","views/screens/Forms/services/forms.ts","views/screens/Forms/sagas/index.tsx","views/screens/vehicleMaintenance/schemas/catalogs/categories/index.ts","views/screens/vehicleMaintenance/services/categoriesService.ts","views/screens/vehicleMaintenance/sagas/catalogs/categories/index.ts","views/screens/MaintenanceLines/schemas/index.tsx","views/screens/MaintenanceLines/services/index.ts","views/screens/MaintenanceLines/sagas/index.tsx","views/screens/vehicleMaintenance/schemas/preventiveNotices/notices/index.ts","views/screens/vehicleMaintenance/services/noticeService.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByOdometer/index.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByDate/index.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByHourmeter/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/providers/index.ts","views/screens/vehicleMaintenance/services/providersService.ts","views/screens/vehicleMaintenance/sagas/catalogs/providers/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/services/workmanshipService.ts","views/screens/vehicleMaintenance/sagas/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/spareParts/index.ts","views/screens/vehicleMaintenance/services/sparePartsService.ts","views/screens/vehicleMaintenance/sagas/catalogs/spareParts/index.ts","views/screens/Protocols/schemas/index.tsx","views/screens/Protocols/services/protocols.ts","views/screens/Protocols/sagas/index.tsx","redux/sagas/index.tsx","redux/storeConfig/store.js","redux/sagas/settings/apibaseurl.js","utility/icomoon/index.js","views/screens/Forms/types.tsx","views/screens/Groups/types/index.tsx","views/screens/Entities/constants/index.tsx","views/screens/Jobs/types/backlog/index.tsx","views/screens/Workplans/types/workplans/index.tsx","views/screens/Quotations/types.tsx","views/screens/Organizations/types.tsx","views/screens/Geofences/types/index.tsx","views/screens/Routes/types/routesExecutions/index.tsx","views/screens/Routes/types/routes/index.tsx","@core/layouts/components/menu/screens/index.tsx","views/screens/Locations/types/index.tsx","views/screens/Users/types/index.tsx","views/screens/Drivers/types/index.tsx","views/screens/Sensors/types.tsx","views/screens/Schedules/types.tsx","views/screens/Assets/types.tsx","views/screens/Modules/types.tsx","views/screens/Operators/types.tsx","views/screens/SIMs/types.tsx","views/screens/MaintenanceLines/types.tsx","views/screens/Agents/types.tsx","views/screens/Vehicles/types.tsx","views/screens/Customers/types.tsx","views/screens/Units/actions/index.tsx","views/screens/ServiceClasses/types.tsx","views/screens/Telemetry/utils/index.js","views/screens/Divisions/types.tsx","views/screens/Subdivisions/types.tsx","views/screens/Offices/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","redux/types/static-catalogs/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter/index.tsx","utility/types.ts","utility/Utils.ts","views/screens/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/formComponents/TextInput/index.tsx","views/screens/Geofences/actions/index.tsx","views/screens/Routes/types/routesAssignments/index.tsx","views/screens/Workplans/types/workplansExecutionLocations/index.tsx","views/screens/Workplans/types/workplansComments/index.tsx","views/screens/Geofences/reducers/index.tsx","redux/actions/auth/index.js","views/screens/Units/reducers/unitLiveStatus/index.tsx","views/screens/Units/reducers/index.tsx","views/screens/Quotations/actions/index.tsx","views/screens/Schedules/actions/index.tsx","views/screens/vehicleMaintenance/permissions.ts","redux/types/static-catalogs/countries/index.tsx","views/screens/Locations/reducers/importedLocations/index.tsx","views/screens/Locations/reducers/index.tsx","views/screens/Contacts/actions/index.ts","views/screens/Locations/actions/index.tsx","views/screens/Jobs/actions/backlog/index.tsx","views/screens/Organizations/reducers/index.tsx","views/screens/Groups/actions/index.tsx","views/screens/Organizations/actions/index.tsx","views/formComponents/NumericalInput/index.tsx","views/screens/Workplans/actions/workplans/index.tsx","views/screens/Forms/actions/index.tsx","views/screens/Routes/reducers/routesExecutions/index.tsx","views/screens/Groups/schemas/index.tsx","views/components/DefaultButton/index.tsx","views/screens/Units/services/index.ts","views/screens/Jobs/types/board/index.tsx","views/screens/Units/utils.tsx","env.js","views/screens/Routes/actions/routes/index.tsx","views/screens/Jobs/types/index.tsx","views/screens/Workplans/types/workplansVisits/index.tsx","views/screens/Divisions/reducers/index.tsx","views/screens/Entities/views/FetchEntities/index.tsx","views/screens/Routes/utils/index.tsx","views/screens/Entities/types/index.tsx","views/formComponents/CheckBoxInput/index.tsx","views/screens/Subdivisions/reducers/index.tsx","views/screens/Workplans/permissions.ts","views/screens/Users/actions/index.tsx","views/screens/Jobs/services/jobs.ts","views/screens/Agents/actions/index.tsx","views/screens/Operators/actions/index.tsx","views/components/Toolbar/index.tsx","views/screens/Reports/permissions.ts","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/SIMs/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","redux/types/navbar/index.js","views/screens/Contacts/reducers/index.ts","views/screens/MaintenanceLines/actions/index.tsx","redux/types/static-catalogs/brands/index.js","redux/types/configurations/index.js","redux/types/static-catalogs/cellular-providers/index.tsx","redux/types/models/index.tsx","@core/components/avatar/index.js","views/screens/Offices/reducers/index.tsx","views/screens/Protocols/actions/index.tsx","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByHourmeter/index.ts","views/formComponents/DateInput/index.tsx","views/components/Map/utils/index.tsx","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/components/Table/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/Routes/actions/routesExecutions/index.tsx","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer/index.ts","views/formComponents/MultiSelectInput/index.tsx","views/components/TitleH4/index.js","views/screens/Drivers/reducers/index.tsx","views/screens/Agents/reducers/index.tsx","views/screens/VehicleFuel/permissions.ts","views/screens/Units/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/MapGeofenceEdit/index.tsx","views/components/Map/components/MapGeofences/index.tsx","views/components/Map/components/MapLocationEdit/index.tsx","views/components/Map/components/MapLocations/index.tsx","views/components/Map/components/MapObjectsBounds/index.tsx","views/components/Map/utils/poliyline.js","views/components/Map/utils/lrm-google.js","views/components/Map/components/RouteItem/index.tsx","views/components/Map/components/SlidingPaneAddAlternateRoute/index.tsx","views/components/Map/components/SlidingPaneEditRoute/index.tsx","views/components/Map/components/MapRouteEdit/useMapRouteEdit.tsx","views/components/Map/components/MapRouteEdit/index.tsx","views/screens/Routes/views/SlidingPaneRouteInformation/index.tsx","views/components/Map/components/MapRoutes/index.tsx","views/components/Map/components/RulerControl/index.tsx","views/components/Map/components/ToolbarGeofencesControl/index.tsx","views/components/Map/components/ToolbarHomeControl/index.tsx","views/components/Map/components/ToolbarLocationsControl/index.tsx","views/components/Map/components/ToolbarRoutesControl/index.tsx","views/components/Map/components/ToolbarUnitsControl/index.tsx","views/components/Map/context/GoogleMapsContext.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/Routes/actions/routesAssignments/index.tsx","views/screens/Groups/services/groups.ts","views/screens/vehicleMaintenance/actions/catalogs/spareParts/index.ts","redux/types/static-catalogs/sensor-measures/index.tsx","views/screens/Routes/services/routes.ts","views/screens/vehicleMaintenance/actions/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/actions/catalogs/providers/index.ts","views/components/DeleteButton/index.tsx","views/formComponents/SlidingPaneForm/index.tsx","views/formComponents/LocationDropDown/index.tsx","views/screens/Organizations/services/index.ts","views/screens/vehicleMaintenance/reducers/catalogs/categories/index.ts","navigation/vertical/affiliations.js","navigation/vertical/inventories.js","navigation/vertical/schedules.js","navigation/vertical/groups.js","navigation/vertical/drivers.js","navigation/vertical/people.js","navigation/vertical/users.js","navigation/vertical/customers.js","views/screens/Contacts/sidebarLayout.ts","views/screens/Offices/sidebarLayout.tsx","navigation/vertical/catalogs.js","navigation/vertical/notifications.js","views/screens/Forms/sidebarLayout.ts","navigation/vertical/administrations.js","views/screens/Workplans/sidebarLayout.tsx","views/screens/Routes/sidebarLayout.tsx","views/screens/Optimizations/sidebarLayout.tsx","navigation/vertical/vehicleFuel.js","navigation/vertical/vehicleMaintenance.tsx","navigation/vertical/operations.js","views/screens/Telemetry/sidebarLayout.tsx","navigation/vertical/telemetry.js","navigation/vertical/maps.js","views/screens/Dashboard/sidebarLayout.ts","views/screens/Locations/sidebarLayout.tsx","navigation/vertical/geofences.js","navigation/vertical/pointsOfInterest.js","navigation/vertical/reports.js","navigation/vertical/trackingUnits.js","navigation/vertical/general.js","navigation/vertical/contracts.js","navigation/vertical/generalCRM.js","views/screens/Jobs/sidebarLayout.ts","views/screens/SafeDriver/sidebarLayout.ts","navigation/vertical/apps.js","navigation/vertical/businessPartners.js","navigation/vertical/generalAdmin.js","navigation/vertical/console.js","navigation/vertical/protocol.js","navigation/vertical/generalMonitoringCenter.js","navigation/vertical/index.js","redux/types/static-catalogs/location-classes/index.js","redux/types/static-catalogs/time-zones/index.tsx","redux/types/static-catalogs/currencies/index.ts","redux/types/static-catalogs/sensor-brands/index.tsx","redux/types/static-catalogs/sensor-models/index.tsx","redux/types/static-catalogs/payment-methods/index.ts","views/components/MediaGallery/index.tsx","views/screens/Workplans/reducers/workplansAssignments/index.tsx","views/screens/Sensors/services/sensors.ts","views/screens/Locations/services/locations.ts","views/formComponents/ContactsDropdown/index.tsx","views/screens/Assets/reducers/index.tsx","views/screens/SIMs/reducers/index.tsx","views/screens/Geofences/services/geofences.ts","views/formComponents/CustomersDropdown/index.tsx","views/screens/Routes/actions/routeCheckpoints/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/DropdownInput/index.tsx","configs/themeConfig.js","views/screens/Users/services/index.ts","views/screens/Vehicles/reducers/index.tsx","views/screens/Workplans/reducers/workplansExecutions/index.tsx","views/screens/Workplans/reducers/workplansVisits/index.tsx","views/screens/Workplans/reducers/workplansReport/index.tsx","views/screens/Workplans/reducers/workplans/index.tsx","views/screens/ServiceClasses/reducers/index.tsx","views/screens/Quotations/reducers/index.tsx","views/screens/Routes/paths.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","views/screens/Units/reducers/deviceActions/index.tsx","views/screens/Units/reducers/deviceMetrics/index.tsx","views/screens/Units/reducers/groups/index.tsx","views/screens/Units/reducers/images/index.tsx","views/screens/Units/reducers/reports/index.tsx","views/screens/Units/reducers/sensors/index.tsx","redux/actions/static-catalogs/location-classes/index.js","views/components/Map/components/MarkerClusterGroup/index.tsx","views/screens/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/Modules/reducers/index.tsx","views/screens/Schedules/utils.tsx","views/screens/SIMs/services/index.ts","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/Jobs/actions/report/index.tsx","views/screens/Routes/services/routesComments.ts","views/screens/Forms/permissions.ts","views/screens/Protocols/permissions.ts","views/screens/Routes/reducers/routesComments/index.tsx","views/screens/Routes/reducers/routeCheckpoints/index.tsx","views/components/ButtonIconDropdown/index.tsx","views/formComponents/ManualHourmeterAdjustment/index.tsx","views/formComponents/SlidingPaneManualHourmeterAdjustment/index.tsx","views/screens/Units/hooks/useGetUnitAssets.ts","views/screens/Units/views/SlidingPaneShareUnitLocation/index.tsx","views/components/Map/components/RotatedMarker/index.tsx","views/screens/Units/views/SlidingPaneUnitHistoricalPositionsReport/index.tsx","views/screens/Units/services/unitImages.ts","views/screens/Units/views/SlidingPaneUnitImages/index.tsx","views/screens/Units/hooks/useGetUnitScripts.ts","views/screens/Units/hooks/useInsertUnitScript.ts","views/screens/Units/views/SlidingPaneUnitSendScripts/index.tsx","views/screens/Units/views/UnitFuel/index.tsx","views/screens/Units/views/UnitTemperature/index.tsx","views/screens/Units/views/SlidingPaneUnitInformation/index.tsx","views/components/Map/components/MapUnits/index.tsx","views/components/ReportViewerButton/index.tsx","views/components/TabsWrapper/TabsCardContent.js","views/components/TabsWrapper/TabsContent.js","views/components/TabsWrapper/index.tsx","hooks/useRerender/index.ts","hooks/useBoolean/index.ts","views/components/FilesGallery/SlidingPaneEditFileName/index.tsx","views/components/FilesGallery/index.tsx","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","redux/reducers/static-catalogs/countries/index.tsx","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","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","assets/images/logo sync /^/.//.*logoName/.png$","views/screens/TrackingUnits/permissions.ts","views/screens/Vehicles/services/index.ts","views/screens/Routes/services/routeExecution.ts","views/screens/Assets/services/index.ts","views/components/TabsWrapper/Tabs.js","views/screens/Modules/services/index.ts","views/screens/Workplans/services/workplansAssignments.ts","views/screens/BusinessPartners/paths.ts","views/screens/Locations/paths.ts","views/screens/Geofences/paths.ts","views/screens/Operators/permissions.ts","views/screens/Organizations/permissions.ts","views/screens/Agents/permissions.ts","views/screens/Divisions/permissions.ts","views/screens/Subdivisions/permissions.ts","views/screens/Schedules/paths.ts","views/screens/Forms/paths.ts","views/screens/Optimizations/permissions.ts","views/screens/Workplans/services/workplansVisits.ts","assets/images/logo/logo.png","views/components/Map/components/MapBaseLayers/index.tsx","views/components/TableTimePicker/index.tsx","views/components/Map/components/ToolbarUnitTrajectoryControl/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/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/vehicleMaintenance/reducers/catalogs/spareParts/index.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/Sensors/permissions.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/components/SimpleAlertMessage/index.tsx","views/formComponents/SlidingPanePreviewDriverImages/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/Assets/permissions.ts","views/screens/Groups/paths.ts","views/screens/Drivers/paths.ts","views/screens/People/paths.ts","views/screens/Users/paths.ts","views/screens/Customers/paths.ts","views/screens/Customers/permissions.ts","views/screens/Optimizations/paths.ts","views/screens/Dashboard/paths.ts","views/screens/Quotations/paths.ts","views/screens/SafeDriver/paths.ts","views/screens/Console/paths.ts","views/screens/Console/permissions.ts","views/screens/Protocols/paths.ts","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/Entities/services/index.ts","views/screens/Entities/hooks/useGetBinnacle.ts","views/screens/Entities/hooks/useInsertBinnacleComment.ts","views/formComponents/SlidingPaneEntityBinnacle/index.tsx","views/screens/Entities/utils/index.ts","views/screens/Drivers/permissions.ts","views/screens/People/permissions.ts","views/screens/Contacts/paths.ts","views/screens/Offices/paths.ts","views/screens/Offices/permissions.ts","views/screens/Dashboard/permissions.ts","views/screens/ContractTemplates/paths.ts","views/screens/Contracts/permissions.ts","views/screens/ContractTemplates/permissions.ts","views/screens/Quotations/permissions.ts","views/screens/SafeDriver/permissions.ts","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/screens/Offices/views/SlidingPaneEditOffice/index.tsx","views/formComponents/GoogleLocationDropDown/index.tsx","views/screens/vehicleMaintenance/components/NoticeTypeDropdownInput/index.tsx","views/screens/vehicleMaintenance/components/CategoriesDropdownInput/index.tsx","views/components/ShiftSlide/index.tsx","views/components/TriggerSlide/index.tsx","views/formComponents/ThemeDropdown/index.tsx","views/screens/Routes/hooks/useGetAlternateRoutes.ts","views/formComponents/SlidingPaneStartUnitDowntime/index.tsx","views/screens/Organizations/hooks/useGetDowntimeReasons.ts","views/screens/Reports/views/byUnit/reportScriptHistory/utils.tsx","views/screens/Units/hooks/useGetUnitTemperatureHistory.ts","redux/reducers/static-catalogs/payment-methods/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/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","mapEntitiesFilterTab","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","getAuthUserCountryIdsForGoogleSearch","countriesForGoogleSearch","getAuthUserMapEntitiesFilterTab","Number","getAuthUserMapGroupIdActive","mapGroupIdActive","getAuthUserMapHomeCenter","homeLatitude","homeLongitude","getAuthUserMapHomeZoom","homeZoom","isAuthenticated","getAuthUserPermissions","permissions","split","getAuthUserOrganizationId","organizationId","getAuthUserDivisionId","divisionId","getAuthUserSubdivisionId","subdivisionId","getAuthUserAccessLevelId","accessLevelId","getAuthUserHomeScreenId","parseInt","getNavigationProduct","getAuthUserMembershipFilters","filterOperatorId","filterOrganizationId","operatorId","includes","organizationSelectors","allowNullOrganizationId","getAuthUserOperatorId","getAuthUserHasPermissionsAny","some","userPer","getAuthUserHasPermissionByAccessLevels","accessLevels","isAuthUserSystemOrOperator","getAuthUserHasPermissionsEvery","every","getAuthSystems","distance","distanceSystem","capacity","capacitySystem","volume","volumeSystem","temperature","temperatureSystem","distance2","distance2System","speed","speedSystem","fuel","fuelSystem","fuel2","fuel2System","performance","getParsers","convertMetersToAuthUserDistanceSystem","meters","metricSystemId","convertKilometersToAuthUserDistanceSystem","kilometers","convertAuthUserDistanceSystemToMeters","authUserDistanceSystem","convertAuthUserDistanceSystemToKilometers","convertGalonsToAuthUserCapacitySystem","gal","convertAuthUserCapacitySystemToGalons","authUserCapacitySystem","convertLitersToAuthUserCapacitySystem","lt","convertAuthUserCapacitySystemToLiters","convertCubicMetersToAuthUserVolumeSystem","cubicMeters","convertAuthUserVolumeSystemToCubicMeters","authUserVolumeSystem","convertAuthUserVolumeSystemToCubicCentimeters","c","authUserTemperatureSystem","authUserDistance2System","kilometersPerHour","authUserSpeedSystem","kmPerGal","authUserFuelSystem","kmPerLiter","galPerHour","authUserFuel2System","litersPerHour","getIsRefreshingToken","getRefreshingError","getTokenRefreshFailCount","intl","IntlGlobalProvider","children","useIntl","appIntl","AUTHENTICATION_STARTED","AUTHENTICATION_COMPLETED","AUTHENTICATION_FAILED","AUTHENTICATION_FAILED_CLEAR","AUTHENTICATION_IDENTITY_CLEARED","AUTHENTICATION_SET_MEMBERSHIP","AUTHENTICATION_USER_INFORMATION_STARTED","AUTHENTICATION_USER_INFORMATION_COMPLETED","TOKEN_REFRESH_STARTED","TOKEN_REFRESH_FORCE_STARTED","TOKEN_REFRESH_COMPLETED","TOKEN_REFRESH_FAILED","PROFILE_UPDATE_GENERAL_INFORMATION_STARTED","PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED","PROFILE_UPDATE_GENERAL_INFORMATION_FAILED","PROFILE_UPDATE_PASSWORD_STARTED","PROFILE_UPDATE_PASSWORD_COMPLETED","PROFILE_UPDATE_PASSWORD_FAILED","PROFILE_UPDATE_PICTURE_STARTED","PROFILE_UPDATE_PICTURE_COMPLETED","PROFILE_UPDATE_PICTURE_FAILED","PROFILE_UPDATE_MAP_OPTIONS_STARTED","PROFILE_UPDATE_MAP_OPTIONS_COMPLETED","PROFILE_UPDATE_MAP_OPTIONS_FAILED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED","PROFILE_UPDATE_HOME_SCREEN_STARTED","PROFILE_UPDATE_HOME_SCREEN_COMPLETED","PROFILE_UPDATE_HOME_SCREEN_FAILED","PROFILE_CHANGE_PRODUCT_STARTED","PROFILE_CHANGE_PRODUCT_COMPLETED","PROFILE_CHANGE_PRODUCT_FAILED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED","PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED","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_FETCH_STARTED","UNIT_FETCH_COMPLETED","UNIT_FETCH_FAILED","UNIT_ADD_TO_STATE","UNITS_LIVE_STATUS_FETCH_STARTED","UNITS_LIVE_STATUS_FETCH_COMPLETED","UNITS_LIVE_STATUS_FETCH_FAILED","UNIT_INFORMATION_FETCH_STARTED","UNIT_INFORMATION_FETCH_COMPLETED","UNIT_INFORMATION_FETCH_FAILED","UNIT_POSITIONS_FETCH_STARTED","UNIT_POSITIONS_FETCH_COMPLETED","UNIT_POSITIONS_FETCH_FAILED","UNIT_POSITIONS_RESET_IS_FETCHED","UNIT_TRAJECTORY_FETCH_STARTED","UNIT_TRAJECTORY_FETCH_COMPLETED","UNIT_TRAJECTORY_FETCH_FAILED","UNIT_EXECUTE_DEVICE_ACTION","UNIT_ADD_STARTED","UNIT_ADD_COMPLETED","UNIT_ADD_FAILED","UNIT_EDIT_STARTED","UNIT_EDIT_COMPLETED","UNIT_EDIT_FAILED","UNIT_ACKNOWLEDGE_STARTED","UNIT_ACKNOWLEDGE_COMPLETED","UNIT_ACKNOWLEDGE_FAILED","UNIT_REMOVE_STARTED","UNIT_REMOVE_COMPLETED","UNIT_REMOVE_FAILED","UNIT_SELECTED","UNITS_ALL_SELECTED","UNIT_DESELECTED","UNITS_ALL_DESELECTED","UNIT_SHOW_IN_MAP","UNITS_ALL_SHOW_IN_MAP","UNIT_HIDE_IN_MAP","UNITS_ALL_HIDE_IN_MAP","UNIT_FETCH_INTERVAL","UNIT_ACTIVE_TRACKING_FETCH_INTERVAL","UNIT_IDLE_SPEED","UNIT_DATA_LIMIT_FOR_CLUSTERING","SET_DATE_RANGE","UNITS_ACTIVE_STARTED","UNITS_ACTIVE_COMPLETED","UNITS_ACTIVE_FAILED","UNITS_ASSIGN_DRIVER_STARTED","UNITS_ASSIGN_DRIVER_COMPLETED","UNIT_CREATE_SHARE_LINK_STARTED","UNIT_CREATE_SHARE_LINK_COMPLETED","UNIT_CREATE_SHARE_LINK_FAILED","UNIT_CLEAR_SHARE_LINK","UNIT_START_DOWNTIME_STARTED","UNIT_START_DOWNTIME_COMPLETED","UNIT_START_DOWNTIME_FAILED","UNIT_END_DOWNTIME_STARTED","UNIT_END_DOWNTIME_COMPLETED","UNIT_END_DOWNTIME_FAILED","UNIT_UPDATE_DEVICE_STARTED","UNIT_UPDATE_DEVICE_COMPLETED","UNIT_UPDATE_DEVICE_FAILED","UNIT_UPDATE_SIM_STARTED","UNIT_UPDATE_SIM_COMPLETED","UNIT_UPDATE_SIM_FAILED","UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED","UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED","showSuccessMessage","showConfirmationMessage","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","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","bounds","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","fetchGeofenceById","watchFetchGeofenceById","filterBounds","getGeofencesListService","minLat","maxLat","minLng","maxLng","dispatch","showInMapGeofences","saveGeofenceService","geofenceId","addedGeofence","oldGeofence","editedGeofence","deleteGeofenceService","assignation","length","unitGeofences","unitGeofenceInfo","getGeofenceByIdService","moduleSchema","fetchModulesList","watchFetchModulesList","partialFetchModulesList","watchPartialFetchModulesList","addModule","watchAddModulesStarted","editModule","watchEditModulesStarted","removeModule","watchRemoveModuleStarted","fetchModule","watchModuleFetchStarted","getModulesListService","module","deviceId","identifier","addedModule","editedModule","oldModule","moduleId","deletedModule","operator","contact","contacts","fetchOperatorsList","watchFetchOperatorsList","partialFetchOperatorsList","watchPartialFetchOperatorsList","addOperator","watchAddOperatorsStarted","editOperator","watchEditOperatorsStarted","removeOperator","watchRemoveOperatorStarted","editOperatorStandardPrices","watchEditOperatorStandardPricesStarted","addedOperator","operatorData","operatorName","editedOperator","operatorContacts","contactSchemas","contactActions","oldOperator","operatorSelectors","deletedOperator","standardPrices","editedOperatorStandardPrices","organization","fetchOrganizationsList","watchFetchOrganizationsList","partialFetchOrganizationsList","watchPartialFetchOrganizationsList","addOrganization","watchAddOrganizationsStarted","editOrganization","watchEditOrganizationsStarted","saveConsolidableEvents","watchSaveConsolidableEventsStarted","removeOrganization","watchRemoveOrganizationStarted","checkRegistrationCode","watchRegistrationCodeStarted","assigCode","watchCodeAssignStarted","addOrganizationDowntimeReason","watchAddOrganizationDowntimeReasonsStarted","editOrganizationDowntimeReason","watchEditOrganizationDowntimeReasonsStarted","removeOrganizationDowntimeReason","watchRemoveOrganizationDowntimeReasonsStarted","getOrganizationsListService","organizationList","usersData","usersList","usersByOrganization","groupBy","forEach","sacUsers","isSelected","addedOrganization","organizationData","quotationId","quotationActions","baseQuotationId","organizationName","organizationTaxNumber","taxNumber","organizationType","oldOrganization","editedOrganization","consolidableEvents","deleteOrganizationService","code","validCode","RegistrationCodeStatus","registrationCode","registrationMails","registrationDivisionId","registrationSubdivisionId","allowedApplications","downtimeReason","reasonId","addedDowntimeReason","reasonDescription","editedDowntimeReason","serviceClass","fetchServiceClassesList","watchFetchServiceClassesList","addServiceClass","watchAddServiceClassesStarted","editServiceClass","watchEditServiceClassesStarted","removeServiceClass","watchRemoveServiceClassStarted","fetchServiceClass","watchServiceClassFetchStarted","isWebPage","urlGet","serviceClassId","addedServiceClass","serviceClassName","editedServiceClass","oldServiceClass","deletedServiceClass","subdivision","fetchSubdivisionsList","watchFetchSubdivisionsList","partialFetchSubdivisionsList","watchPartialFetchSubdivisionsList","addSubdivision","watchAddSubdivisionsStarted","editSubdivision","watchEditSubdivisionsStarted","removeSubdivision","watchRemoveSubdivisionStarted","addedSubdivision","editedSubdivision","subdivisionName","oldSubdivision","deletedSubdivision","unit","deviceMetric","deviceMetrics","deviceAction","deviceActions","group","report","reports","image","images","sensor","fetchUnitsList","watchFetchUnitsList","partialFetchUnitsList","watchPartialFetchUnitsList","fetchUnitsLiveStatusList","watchFetchUnitsLiveStatusList","fetchUnitInformation","watchFetchUnitInformationStarted","fetchUnitHistoricalPositionsReport","watchFetchUnitHistoricalPositionsStarted","fetchUnitTrajectory","watchFetchUnitTrajectoryStarted","executeDeviceAction","watchExecuteDeviceAction","addUnit","watchAddUnitsStarted","editUnit","watchEditUnitsStarted","acknowledgeUnitEvent","watchAcknowledgeUnitEvent","removeUnit","watchRemoveUnitStarted","activeUnits","watchActiveUnits","assignDriver","watchAssignDriverUnitsStarted","startUnitDowntime","watchStartUnitDowntimeStarted","endUnitDowntime","watchEndUnitDowntimeStarted","createSharedLink","watchCreateSharedLinkUnitStarted","updateSim","watchUpdateSim","fetchUnitById","watchFetchUnitById","getUnitsListService","ENTITY_UNITS","getUnitsLiveStatusListService","unitId","getUnitInformationService","unitData","unitMetrics","deviceMetricsSchemas","deviceMetricsEntities","deviceMetricsOrder","unitActions","deviceActionsSchemas","deviceActionsEntities","deviceActionsOrder","groupsData","groupsSchemas","groupsEntities","groupsOrder","unitReports","reportsSchemas","reportsEntities","reportsOrder","unitImages","imagesSchemas","imagesEntities","imagesOrder","unitSensorMeasures","sensorsSchemas","sensorsEntities","sensorsOrder","reportType","startDate","endDate","idleSpeed","getUnitHistoricalPositionsReportService","parkedPositions","i","polyline","positions","limit","getUnitTrajectoryService","deviceActionId","parameters","executeDeviceActionService","addedUnit","unitName","editedUnit","oldUnit","acknowledgeUnitEventService","unitBody","unitsName","driverName","mainStateId","mainStateDate","emails","ttl","sharedLink","requestData","oldUnitId","additionalOnSuccess","updateSimCardService","camelize","getUnitByIdService","schedule","fetchSchedulesList","watchFetchSchedulesList","partialFetchSchedulesList","watchPartialFetchSchedulesList","addSchedule","watchAddSchedulesStarted","editSchedule","watchEditSchedulesStarted","addShift","watchAddShiftStarted","editScheduleShift","watchEditSchedulesShiftStarted","removeSchedule","watchRemoveScheduleStarted","scheduleId","addedSchedule","scheduleName","editedSchedule","oldSchedule","scheduleSelectors","scheduleDeleted","bookmark","login","watchLoginStarted","userInformationRequest","watchUserInformationRequest","refreshToken","watchRefreshTokenStarted","forceRefreshToken","watchForceRefreshToken","fetchUserBookmarks","watchFetchUserBookmarksStarted","updateUserBookmarks","watchUpdateUserBookmarkssStarted","updateProfileGeneralInformation","watchUpdateProfileGeneralInformationStarted","updateMapProfileSettings","watchUpdateMapProfileSettingsStarted","updateProfileMapOptions","watchUpdateProfileMapOptionsStarted","updateProfilePassword","watchUpdateProfilePasswordStarted","updateHomeScreen","watchUpdateProfileHomeScreenStarted","changeProduct","watchChangeProductStarted","updateMapFilterTabPinned","watchUpdateMapFilterTabPinnedStarted","userData","userId","responseSuperAdmin","jsonResultUser","responseRestaurantAdmin","expiration","now","Date","getTime","TOKEN_LIFE_TIME","non_field_errors","delay","bookmarkSetting","filter","setting","settingId","bookmarkSettingValue","settingValue","bookmarkIds","optionsSuggestions","userBookmarks","newSuggestions","navbarActions","navbarSelectors","userBookmarksSettingsValue","ub","values","serviceId","route","routeCheckpoint","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","failFetchingComments","completeAddingComment","oldId","comment","failAddingComment","completeEditingComment","failEditingComment","oldComment","completeRemovingComment","routeCommentId","failRemovingComment","comments","fetchCommentsList","watchFetchCommentsList","addComment","watchAddCommentsStarted","editComment","watchEditCommentsStarted","removeComment","watchRemoveCommentStarted","getRouteCommentsListService","saveCommentService","addedComment","editedComment","deletedComment","deleteCommentService","routeExecution","routesExecutions","fetchRoutesExecutions","watchFetchRoutesExecutions","editRouteExecution","watchEditRouteExecutionStarted","changeToAlternateRoute","watchChangeToAlternateRouteStarted","assignRouteExecutionUnit","watchAsignRouteExecutionUnit","indicators","scheduledBySchedule","totalNotShown","routesList","oldRouteExecution","saveRouteExecutionService","editedRouteExecution","reason","changeToAlternateRouteService","errorTxt","completeFetchingRoutesReport","unitsEntities","unitsOrder","routesEntities","routesOrder","failFetchingRoutesReport","fetchRoutesReport","watchFetchRoutesReport","unitsSchemas","routesSchemas","routeExecutions","routesExecutionsSchemas","monitoringUser","fetchMonitoringUsersList","watchFetchMonitoringUsersList","partialFetchMonitoringUsersList","watchPartialFetchMonitoringUsersList","addMonitoringUser","watchAddMonitoringUsersStarted","editMonitoringUser","watchEditMonitoringUsersStarted","removeMonitoringUser","watchRemoveMonitoringUserStarted","updateMonitoringUserPassword","watchUpdateMonitoringUserPasswordStarted","saveRolesAndPermissions","watchSaveMonitoringUserRolesAndPermissionsStarted","assignSchedule","watchAssignScheduleUsersStarted","unassignSchedule","watchUnassignScheduleUsersStarted","fetchMonitoringUserById","watchFetchMonitoringUserById","getUsersListService","saveUserService","addedMonitoringUser","userName","oldUserName","oldMonitoringUser","editedMonitoringUser","users","usersName","loggedUsername","authActions","rolesAndPermissions","userInSession","userAssignSchedule","monitoringUserId","getUserByIdService","workplan","fetchWorkplansList","watchFetchWorkplansList","partialFetchWorkplansList","watchPartialFetchWorkplansList","fetchWorkplanLocationsList","watchFetchWorkplanLocationsList","addWorkplan","watchAddWorkplansStarted","editWorkplan","watchEditWorkplansStarted","removeWorkplan","watchRemoveWorkplanStarted","copyWorkplan","watchCopyWorkplanStarted","assignOriginGeofence","watchAssignOriginGeofenceStarted","assignWorkGeofence","watchAssignWorkGeofenceStarted","assignDestinationGeofence","watchAssignDestinationGeofenceStarted","getWorkplansListService","workplanId","saveWorkplanService","addedWorkplan","oldWorkplan","editedWorkplan","workplanSelectors","workplanDeleted","deleteWorkplanService","workplanName","newWorkplanId","newWorkplanName","geofenceSelectors","originGeofenceId","workplanIds","geofenceName","originExitWindow","originValidationWindow","workGeofenceId","workGeofenceArriveWindow","workGeofenceMaxTime","destinationGeofenceId","assignmentBySchedule","assignmentByDateTime","assignmentsByDateTime","watchFetchWorkplansAssignmentsList","editAssignmentBySchedule","watchEditWorkplanAssignmentByScheduleStarted","editAssignmentByDateTime","watchEditWorkplanAssignmentByDateTimeStarted","removeWorkplanAssignment","watchRemoveWorkplanAssignmentStarted","getWorkplansAssignmentsListService","resultDataWS","withScheduleList","resultDataWDT","withDateTimeList","withScheduleOrder","withDateTimeOrder","assignmentId","assignmentType","assignmentDeleted","deleteWorkplanAssignmentService","assignmentName","baseUrl","getWorkplanCommentsListService","workplanCommentId","watchFetchWorkplansCommentsList","watchAddWorkplansCommentStarted","watchRemoveWorkplansCommentStarted","visitId","locationId","jobCommentId","completeAddingWorkplanExecutionLocation","workplanExecutionLocation","failAddingWorkplanExecutionLocation","completeEditingWorkplanExecutionLocation","failEditingWorkplanExecutionLocation","oldWorkplanExecutionLocation","failRemovingWorkplanExecutionLocation","workplanExecutionLocationId","addWorkplanExecutionLocation","watchAddWorkplanExecutionLocationsStarted","editWorkplanExecutionLocation","watchEditWorkplanExecutionLocationsStarted","removeWorkplanExecutionLocation","watchRemoveWorkplanExecutionLocationStarted","getWorkplanExecutionLocationId","saveWorkplanExecutionLocationService","addedWorkplanExecutionLocation","editedWorkplanExecutionLocation","workplanExecutionLocationDeleted","deleteWorkplanExecutionLocationService","locationName","completeFetchingWorkplansExecutions","executionStatus","geographicStatus","failFetchingWorkplansExecutions","completeFetchingWorkplanExecution","workplanExecution","workplanExecutionLocationsEntities","workplanExecutionLocationsOrder","failFetchingWorkplanExecution","failCancelWorkplansExecutions","failFinalizeWorkplansExecutions","completeManualTransitWorkplansExecutions","failManualTransitWorkplansExecutions","failChangeUnitWorkplansExecutions","completeAssignUnitWorkplansExecutions","failAssignUnitWorkplansExecutions","workplansExecutions","workplanExecutionLocations","fetchWorkplansExecutions","watchFetchWorkplansExecutions","fetchWorkplanExecution","watchFetchWorkplanExecution","cancelWorkplanExecution","watchCancelWorkplanExecution","finalizeWorkplanExecution","watchFinalizeWorkplanExecution","manualTransitWorkplanExecution","watchManualTransitWorkplanExecution","changeWorkplanExecutionUnit","watchChangeWorkplanExecutionUnit","assignWorkplanExecutionUnit","watchAsignWorkplanExecutionUnit","workplansList","locationsList","schemasWorkplanExecutionLocation","getDatabaseErrorFromString","match","exec","completeFetchingWorkplansReport","locationsEntities","locationsOrder","failFetchingWorkplansReport","location","fetchWorkplansReport","watchFetchWorkplansReport","locationsSchemas","workplansExecutionsSchemas","failFetchingWorkplansVisits","failFetchingWorkplansAllVisits","workplansVisit","workplansVisits","fetchWorkplansVisits","watchFetchWorkplansVisits","fetchWorkplansAllVisits","watchFetchWorkplansAllVisits","getWorkplanVisitsListService","getWorkplanAllVisitsListService","historicalSchemas","configuration","configurations","fetchConfigurationsList","watchFetchConfigurationsList","brandId","modelId","model","models","fetchModelsList","watchFetchModelsList","brand","fetchBrandsList","watchFetchBrandsList","currency","fetchCurrenciesList","watchFetchCurrenciesList","fetchTimeZonesList","watchFetchTimeZonesList","provider","fetchProvidersList","watchFetchProvidersList","country","fetchCountriesList","watchFetchCountriesList","vehicleMaker","fetchVehicleMakersList","watchFetchVehicleMakersList","vehicleModel","fetchVehicleModelsList","watchFetchVehicleModelsList","maker","insuranceCompany","fetchInsuranceCompaniesList","watchFetchInsuranceCompaniesList","insuranceAgent","fetchInsuranceAgentsList","watchFetchInsuranceAgentsList","sensorBrand","fetchSensorBrandsList","watchFetchSensorBrandsList","sensorModel","fetchSensorModelsList","watchFetchSensorModelsList","sensorMeasure","fetchSensorMeasuresList","watchFetchSensorMeasuresList","sensorId","sensorModelId","paymentMethod","getPaymentMethods","fetchPaymentMethodsList","watchFetchPaymentMethodsList","locationClass","fetchLocationClassesList","watchFetchLocationClassesList","sim","fetchSimsList","watchFetchSimsList","partialFetchSimsList","watchPartialFetchSimsList","addSim","watchAddSimsStarted","editSim","watchEditSimsStarted","removeSim","watchRemoveSimStarted","fetchSimById","watchFetchSimById","getSimsListService","simId","addedSim","iccid","editedSim","oldSim","simSelectors","deletedSim","getSimByIdService","simCardId","vehicle","fetchVehiclesList","watchFetchVehiclesList","partialFetchVehiclesList","watchPartialFetchVehiclesList","addVehicle","watchAddVehiclesStarted","editVehicle","watchEditVehiclesStarted","removeVehicle","watchRemoveVehicleStarted","watchLicenseCheckStarted","getVehiclesListService","vehicleId","addedVehicle","vehicleName","editedVehicle","oldVehicle","deletedVehicle","licensePlate","LicensePlateStatus","asset","fetchAssetsList","watchFetchAssetsList","partialFetchAssetsList","watchPartialFetchAssetsList","addAsset","watchAddAssetsStarted","editAsset","watchEditAssetsStarted","removeAsset","watchRemoveAssetStarted","checkIdentifier","watchIdentifierCheckStarted","checkSecuritySealCode","watchSecuritySealCodeCheckStarted","getAssetsListService","assetId","addedAsset","assetIdentifier","editedAsset","oldAsset","assetSelectors","deletedAsset","AssetIdentifierStatus","securitySealCode","IsValid","sensorSchema","fetchSensorsList","watchFetchSensorsList","partialFetchSensorsList","watchPartialFetchSensorsList","addSensor","watchAddSensorsStarted","editSensor","watchEditSensorsStarted","removeSensor","watchRemoveSensorStarted","watchSensorIdentifierCheckStarted","sensorCalibrationStarted","watchSensorCalibrationStartStarted","sensorCalibrationFinalized","watchSensorCalibrationFinalizeStarted","getSensorsListService","saveSensorService","addedSensor","oldSensor","editedSensor","deleteSensorService","UniqueIdentifierStatus","fuelCalibrationStartService","fuelCalibrationFinalizeService","importedLocation","importedLocations","fetchLocationsList","watchFetchLocationsList","partialFetchLocationsList","watchPartialFetchLocationsList","addLocation","watchAddLocationsStarted","editLocation","watchEditLocationsStarted","removeLocation","watchRemoveLocationStarted","importLocations","watchImportLocationsStarted","fetchLocationById","watchFetchLocationById","getLocationsListService","locationIds","showInMapLocations","saveLocationService","addedLocation","entityActions","oldLocation","editedLocation","deleteLocationService","importLocationsService","schemasImportedLocations","getLocationByIdService","driver","fetchDriversList","watchFetchDriversList","partialFetchDriversList","watchPartialFetchDriversList","addDriver","watchAddDriversStarted","editDriver","watchEditDriversStarted","assignSensor","unassignSensor","watchAssignSensor","watchUnassignSensor","removeDriver","watchRemoveDriverStarted","importDriverAndUnitData","watchStartImportDriverAndUnit","assignDriversToUnits","watchAssignDriversToUnits","getDriversListService","person","saveDriverService","driverId","addedDriver","oldDriver","editedDriver","sensorName","deleteDriverService","importDriverAndUnit","driverPrivateCode","unitPrivateCode","unitSelectors","dataToImport","importedData","newData","driverAndUnit","warn","f","driversAndUnitsIds","d","join","assignDriversMassivelyService","job","importedJob","importedJobs","fetchJobsBacklogList","watchFetchJobsBacklogList","partialFetchJobsBacklogList","watchPartialFetchJobsBacklogList","addJobBacklog","watchAddJobsBacklogStarted","editJobBacklog","watchEditJobsBacklogStarted","removeJobsBacklog","watchRemoveJobsBacklogStarted","changeStatusJobsBacklog","watchChangeStatusJobsBacklogStarted","rescheduleJobs","watchRescheduleJobsStarted","changePriorityJobsBacklog","watchChangePriorityJobsBacklogStarted","changeStartDateJobsBacklog","watchChangeStartDateJobsBacklogStarted","changeDueDateJobsBacklog","watchChangeDueDateJobsBacklogStarted","changeMinMaxTimeJobsBacklog","watchChangeMinMaxTimeJobsBacklogStarted","assignUsersJobsBacklog","watchAssignUsersJobsBacklogStarted","assignFormsJobsBacklog","watchAssignFormsJobsBacklogStarted","assignFilesJobsBacklog","watchAssignFilesJobsBacklogStarted","importJobs","watchImportJobsStarted","getJobsBacklogListService","jobBacklog","saveJobBacklogService","jobId","addedJobBacklog","oldJobBacklog","editedJobBacklog","deleteJobsBacklogService","jobStatus","changeJobsStatusService","dueDate","rescheduleJobsService","jobPriority","changeJobsPriorityService","changeJobsStartDateService","changeJobsDueDateService","maxTime","changeJobsMinMaxTimeService","userNames","assignJobsUsersService","formIds","assignJobsFormsService","fileIds","assignJobsFilesService","reduce","acc","curr","files","importJobsService","schemasImportedJobs","fetchJobsBoardList","watchFetchJobsBoardList","changeStatusJobsBoard","watchChangeStatusJobsBoardStarted","getJobsBoardListService","changeJobsStatusBoardService","fetchJobsReportList","watchFetchJobsReportList","getJobsReportListService","jobsList","orderJobs","jobsByUserList","schemasJobByUser","jobsByUser","orderJobsByUser","fetchJob","watchFetchJob","getJobService","fetchGroupsList","watchFetchGroupsList","partialFetchGroupsList","watchPartialFetchGroupsList","fetchAllEntitiesInGroup","watchFetchAllEntitiesInGroup","addGroup","watchAddGroupStarted","addGroupWithEntities","watchAddGroupWithEntitiesStarted","editGroup","watchEditGroupsStarted","removeGroup","watchRemoveGroupStarted","leaveGroup","watchLeaveGroupStarted","editNotificationsConfiguration","watchEditConfigurationNotificationsStarted","removeEntitiesFromGroup","watchRemoveEntitiesFromGroup","addEntitiesToGroup","watchAddEntitiesToGroup","editUserPorfileInGroup","watchEditUserProfileInGroup","fetchGroupById","watchFetchGroupById","getGroupsListService","groupId","getAllEntitiesInGroupService","additionalOnSave","saveGroupService","groupName","owners","addedGroup","entityType","params","saveGroupWithEntitiesService","editedGroup","oldGroup","deleteGroupService","isAsesor","asesorUsername","leaveGroupService","partialEntityUrl","workPlanId","userNameInSession","profileId","getGroupByIdService","quotation","fetchQuotationsList","watchFetchQuotationsList","partialFetchQuotationsList","watchPartialFetchQuotationsList","addQuotation","watchAddQuotationsStarted","copyQuotation","watchCopyQuotationsStarted","editQuotation","watchEditQuotationsStarted","approveDenyQuotationManagement","watchApproveDenyQuotationManagementStarted","acceptDenyQuotationCustomer","watchAcceptDenyQuotationCustomerStarted","scheduleQuotation","watchScheduleQuotationsStarted","checkQuotationScheduling","watchCheckQuotationSchedulingStarted","setTimesupQuotation","watchSetTimesupQuotationStarted","removeQuotation","watchRemoveQuotationStarted","addedQuotation","quotationNumber","fromQuotationId","copiedQuotation","editedQuotation","oldQuotation","quotationName","quotationLink","quotationScheduled","quotationIdDB","isScheduled","quotationStatus","isTimesup","showAlerts","deletedQuotation","organizationContract","fetchOrganizationContractsList","watchFetchOrganizationContractsList","partialFetchOrganizationContractsList","watchPartialFetchOrganizationContractsList","addOrganizationContract","watchAddOrganizationContractsStarted","editOrganizationContract","watchEditOrganizationContractsStarted","removeOrganizationContract","watchRemoveOrganizationContractStarted","contractId","addedOrganizationContract","contractNumber","editedOrganizationContract","oldOrganizationContract","deletedOrganizationContract","contractTemplate","fetchContractTemplatesList","watchFetchContractTemplatesList","partialFetchContractTemplatesList","watchPartialFetchContractTemplatesList","addContractTemplate","watchAddContractTemplatesStarted","editContractTemplate","watchEditContractTemplatesStarted","removeContractTemplate","watchRemoveContractTemplateStarted","templateId","addedContractTemplate","templateName","editedContractTemplate","oldContractTemplate","deletedContractTemplate","customer","fetchCustomersList","watchFetchCustomersList","partialFetchCustomersList","watchPartialFetchCustomersList","addCustomer","watchAddCustomersStarted","editCustomer","watchEditCustomersStarted","removeCustomer","watchRemoveCustomerStarted","getCustomersListService","saveCustomerService","customerId","addedCustomer","addedOffice","office","oldCustomer","editedCustomer","editedOffice","deleteCustomerService","getOfficesListService","saveOfficeService","officeId","officeName","deleteOfficeService","fetchOfficesList","watchFetchOfficesList","partialFetchOfficesList","watchPartialFetchOfficesList","addOffice","watchAddOfficesStarted","editOffice","watchEditOfficesStarted","removeOffice","watchRemoveOfficeStarted","oldOffice","formSchema","sectionSchema","sections","questionSchema","questions","responseSchema","questionResponse","mergeStrategy","entityA","entityB","util","responses","getFormsListService","getFormsSectionsListService","getFormsQuestionsListService","saveFormService","organizationFormId","formName","saveExternalFormService","saveResponseFormService","resendResponseFormService","fetchFormsList","watchFetchFormsList","partialFetchFormsList","watchPartialFetchFormsList","fetchSections","watchFetchSections","fetchQuestions","watchFetchQuestions","addForm","watchAddFormsStarted","editForm","watchEditFormsStarted","addFormExternal","watchAddExternalFormsStarted","editFormExternal","watchEditExternalFormsStarted","removeForm","watchRemoveFormStarted","saveResponse","watchResponseAddedStarted","getResponses","watchResponseFetchStarted","resendResponse","watchResponseResendStarted","formId","addedForm","oldForm","editedForm","deletedForm","organizationFormName","formResponse","definition","answers","camelDefinition","finalObject","uniq","answer","responseIds","category","saveCategory","categoryName","categoryId","deleteCategory","getCategoryList","fetchCategoriesList","watchFetchCategoriesList","partialFetchCategoriesList","watchPartialFetchCategoriesList","addCategory","watchAddCategoriesStarted","editCategory","watchEditCategoriesStarted","removeCategory","watchRemoveCategoryStarted","addedData","tempId","maintenanceLine","getMaintenanceLinesListService","saveMaintenanceLineService","maintenanceLineId","maintenanceLineName","deleteMaintenanceLineService","copyMaintenanceLineService","fetchMaintenanceLinesList","watchFetchMaintenanceLinesList","partialFetchMaintenanceLinesList","watchPartialFetchMaintenanceLinesList","addMaintenanceLine","watchAddMaintenanceLinesStarted","editMaintenanceLine","watchEditMaintenanceLinesStarted","removeMaintenanceLine","watchRemoveMaintenanceLineStarted","copyMaintenanceLine","watchCopyMaintenanceLineStarted","mapStringToObject","range","odometer","description","maintenanceRangeId","r","maintenanceRangesByHourMeter","maintenanceRangesByOdometer","addedMaintenanceLine","oldMaintenanceLine","editedMaintenanceLine","copiedMaintenanceLine","notice","noticeId","notices","saveNoticeByOdometer","saveNoticeByHourmeter","saveNoticeByDate","deleteNotice","getNoticeByOdometerList","getNoticeByDateList","getNoticeByHourmeterList","renewNoticeByOdometer","renewNoticeByHourmeter","fetchNoticesList","watchFetchNoticesList","partialFetchNoticesList","watchPartialFetchNoticesList","addNotice","watchAddNoticesStarted","editNotice","watchEditNoticesStarted","renewNotice","watchRenewNoticesStarted","removeNotice","watchRemoveNoticeStarted","entitiesCop","getPreventiveNoticesByOdometerFormattedData","saveProviderCategory","providerName","providerId","deleteProviderCategory","getProviderList","partialFetchProvidersList","watchPartialFetchProvidersList","addProvider","watchAddProvidersStarted","editProvider","watchEditProvidersStarted","removeProvider","watchRemoveProviderStarted","workmanships","saveWorkmanshipCategory","workmanshipId","deleteWorkmanshipCategory","getWorkmanshipsList","fetchWorkmanshipsList","watchFetchWorkmanshipsList","partialFetchWorkmanshipsList","watchPartialFetchWorkmanshipsList","addWorkmanship","watchAddWorkmanshipsStarted","editWorkmanship","watchEditWorkmanshipsStarted","removeWorkmanship","watchRemoveWorkmanshipStarted","sparePart","saveSparePartCategory","sparePartName","sparePartId","deleteSparePartCategory","getSparePartList","fetchSparePartsList","watchFetchSparePartsList","partialFetchSparePartsList","watchPartialFetchSparePartsList","addSparePart","watchAddSparePartsStarted","editSparePart","watchEditSparePartsStarted","removeSparePart","watchRemoveSparePartStarted","protocol","getProtocolsListService","saveProtocolService","protocolId","protocolName","deleteProtocolService","fetchProtocolsList","watchFetchProtocolsList","partialFetchProtocolsList","watchPartialFetchProtocolsList","addProtocol","watchAddProtocolStarted","editProtocol","watchEditProtocolStarted","removeProtocol","watchRemoveProtocolStarted","addedProtocol","oldProtocol","editedProtocol","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","env","REACT_APP_API_BASE_URL","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","GROUP_FETCH_STARTED","GROUP_FETCH_COMPLETED","GROUP_FETCH_FAILED","GROUPS_PARTIAL_FETCH_STARTED","GROUPS_PARTIAL_FETCH_COMPLETED","GROUPS_PARTIAL_FETCH_FAILED","GROUPS_ALL_ENTITIES_FETCH_STARTED","GROUPS_ALL_ENTITIES_FETCH_COMPLETED","GROUPS_ALL_ENTITIES_FETCH_FAILED","GROUP_EDIT_STARTED","GROUP_EDIT_COMPLETED","GROUP_EDIT_FAILED","GROUP_ADD_STARTED","GROUP_ADD_COMPLETED","GROUP_ADD_FAILED","GROUP_ADD_WITH_ENTITIES_STARTED","GROUP_ADD_WITH_ENTITIES_COMPLETED","GROUP_ADD_WITH_ENTITIES_FAILED","GROUP_REMOVE_STARTED","GROUP_REMOVE_COMPLETED","GROUP_REMOVE_FAILED","GROUP_LEAVE_STARTED","GROUP_LEAVE_COMPLETED","GROUP_LEAVE_FAILED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED","GROUP_REMOVE_ENTITIES_STARTED","GROUP_REMOVE_ENTITIES_COMPLETED","GROUP_ADD_ENTITIES_STARTED","GROUP_ADD_ENTITIES_COMPLETED","GROUP_USER_PROFILE_EDIT_STARTED","GROUP_USER_PROFILE_EDIT_COMPLETED","GROUP_SELECTED","GROUPS_ALL_SELECTED","GROUP_DESELECTED","GROUPS_ALL_DESELECTED","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","JOBS_BACKLOG_FETCH_STARTED","JOBS_BACKLOG_FETCH_COMPLETED","JOBS_BACKLOG_FETCH_FAILED","JOBS_BACKLOG_PARTIAL_FETCH_STARTED","JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED","JOBS_BACKLOG_PARTIAL_FETCH_FAILED","JOB_BACKLOG_ADD_STARTED","JOB_BACKLOG_ADD_COMPLETED","JOB_BACKLOG_ADD_FAILED","JOB_BACKLOG_EDIT_STARTED","JOB_BACKLOG_EDIT_COMPLETED","JOB_BACKLOG_EDIT_FAILED","JOB_BACKLOG_SELECTED","JOBS_BACKLOG_ALL_SELECTED","JOB_BACKLOG_DESELECTED","JOBS_BACKLOG_ALL_DESELECTED","JOBS_BACKLOG_REMOVE_STARTED","JOBS_BACKLOG_REMOVE_COMPLETED","JOBS_BACKLOG_REMOVE_FAILED","JOBS_BACKLOG_CHANGE_STATUS_STARTED","JOBS_BACKLOG_CHANGE_STATUS_COMPLETED","JOBS_BACKLOG_CHANGE_STATUS_FAILED","JOBS_BACKLOG_CHANGE_PRIORITY_STARTED","JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED","JOBS_BACKLOG_CHANGE_PRIORITY_FAILED","JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED","JOBS_BACKLOG_CHANGE_START_DATE_STARTED","JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED","JOBS_BACKLOG_CHANGE_START_DATE_FAILED","JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED","JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED","JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED","JOBS_BACKLOG_ASSIGN_USERS_STARTED","JOBS_BACKLOG_ASSIGN_USERS_COMPLETED","JOBS_BACKLOG_ASSIGN_USERS_FAILED","JOBS_BACKLOG_ASSIGN_FORMS_STARTED","JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED","JOBS_BACKLOG_ASSIGN_FORMS_FAILED","JOBS_BACKLOG_ASSIGN_FILES_STARTED","JOBS_BACKLOG_ASSIGN_FILES_COMPLETED","JOBS_BACKLOG_ASSIGN_FILES_FAILED","JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED","JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED","JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED","JOBS_BACKLOG_IMPORT_STARTED","JOBS_BACKLOG_IMPORT_COMPLETED","JOBS_BACKLOG_IMPORT_FAILED","WORKPLANS_FETCH_STARTED","WORKPLANS_FETCH_COMPLETED","WORKPLANS_FETCH_FAILED","WORKPLANS_PARTIAL_FETCH_STARTED","WORKPLANS_PARTIAL_FETCH_COMPLETED","WORKPLANS_PARTIAL_FETCH_FAILED","WORKPLAN_LOCATIONS_FETCH_COMPLETED","WORKPLAN_LOCATIONS_FETCH_FAILED","WORKPLAN_ADD_STARTED","WORKPLAN_ADD_COMPLETED","WORKPLAN_ADD_FAILED","WORKPLAN_EDIT_STARTED","WORKPLAN_EDIT_COMPLETED","WORKPLAN_EDIT_FAILED","WORKPLAN_REMOVE_STARTED","WORKPLAN_REMOVE_COMPLETED","WORKPLAN_REMOVE_FAILED","WORKPLAN_SELECTED","WORKPLANS_ALL_SELECTED","WORKPLAN_DESELECTED","WORKPLANS_ALL_DESELECTED","WORKPLAN_COPY_STARTED","WORKPLAN_COPY_COMPLETED","WORKPLAN_COPY_FAILED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED","QUOTATIONS_FETCH_STARTED","QUOTATIONS_FETCH_COMPLETED","QUOTATIONS_FETCH_FAILED","QUOTATIONS_PARTIAL_FETCH_STARTED","QUOTATIONS_PARTIAL_FETCH_COMPLETED","QUOTATIONS_PARTIAL_FETCH_FAILED","QUOTATIONS_ADD_STARTED","QUOTATIONS_ADD_COMPLETED","QUOTATIONS_ADD_FAILED","QUOTATIONS_EDIT_STARTED","QUOTATIONS_EDIT_COMPLETED","QUOTATIONS_EDIT_FAILED","QUOTATIONS_REMOVE_STARTED","QUOTATIONS_REMOVE_COMPLETED","QUOTATIONS_REMOVE_FAILED","QUOTATIONS_SCHEDULE_STARTED","QUOTATIONS_SCHEDULE_COMPLETED","QUOTATIONS_SCHEDULE_FAILED","QUOTATIONS_CHECK_SCHEDULING_STARTED","QUOTATIONS_CHECK_SCHEDULING_COMPLETED","QUOTATIONS_CHECK_SCHEDULING_FAILED","QUOTATIONS_SET_TIMESUP_STARTED","QUOTATIONS_SET_TIMESUP_COMPLETED","QUOTATIONS_SET_TIMESUP_FAILED","QUOTATIONS_SELECTED","QUOTATIONS_ALL_SELECTED","QUOTATIONS_DESELECTED","QUOTATIONS_ALL_DESELECTED","QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED","QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED","QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED","QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED","QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED","QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED","QUOTATION_COPY_STARTED","QUOTATION_COPY_FAILED","QUOTATION_COPY_COMPLETED","QUOTATION_CHANGE_ORGANIZATION","ORGANIZATIONS_FETCH_STARTED","ORGANIZATIONS_FETCH_COMPLETED","ORGANIZATIONS_FETCH_FAILED","ORGANIZATIONS_PARTIAL_FETCH_STARTED","ORGANIZATIONS_PARTIAL_FETCH_COMPLETED","ORGANIZATIONS_PARTIAL_FETCH_FAILED","ORGANIZATION_ADD_STARTED","ORGANIZATION_ADD_COMPLETED","ORGANIZATION_ADD_FAILED","ORGANIZATION_EDIT_STARTED","ORGANIZATION_EDIT_COMPLETED","ORGANIZATION_EDIT_FAILED","ORGANIZATION_REMOVE_STARTED","ORGANIZATION_REMOVE_COMPLETED","ORGANIZATION_REMOVE_FAILED","ORGANIZATION_SELECTED","ORGANIZATIONS_ALL_SELECTED","ORGANIZATION_DESELECTED","ORGANIZATIONS_ALL_DESELECTED","ORGANIZATION_CODE_CHECK_STARTED","ORGANIZATION_CODE_CHECK_COMPLETED","ORGANIZATION_CODE_CHECK_FAILED","ORGANIZATION_CODE_ASSIGN_STARTED","ORGANIZATION_CODE_ASSIGN_COMPLETED","ORGANIZATION_CODE_ASSIGN_FAILED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED","ORGANIZATION_DOWNTIME_REASON_ADD_STARTED","ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED","ORGANIZATION_DOWNTIME_REASON_ADD_FAILED","ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED","ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED","ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED","ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED","ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED","ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED","GEOFENCES_FETCH_STARTED","GEOFENCES_FETCH_COMPLETED","GEOFENCES_FETCH_FAILED","GEOFENCE_FETCH_STARTED","GEOFENCE_FETCH_COMPLETED","GEOFENCE_FETCH_FAILED","GEOFENCES_PARTIAL_FETCH_STARTED","GEOFENCES_PARTIAL_FETCH_COMPLETED","GEOFENCES_PARTIAL_FETCH_FAILED","GEOFENCE_ADD_STARTED","GEOFENCE_ADD_COMPLETED","GEOFENCE_ADD_FAILED","GEOFENCE_EDIT_STARTED","GEOFENCE_EDIT_COMPLETED","GEOFENCE_EDIT_FAILED","GEOFENCE_REMOVE_STARTED","GEOFENCE_REMOVE_COMPLETED","GEOFENCE_REMOVE_FAILED","GEOFENCE_SELECTED","GEOFENCES_ALL_SELECTED","GEOFENCE_DESELECTED","GEOFENCES_ALL_DESELECTED","GEOFENCE_SHOW_IN_MAP","GEOFENCES_ALL_SHOW_IN_MAP","GEOFENCE_HIDE_IN_MAP","GEOFENCES_ALL_HIDE_IN_MAP","GEOFENCE_ASSIGN_UNIT_STARTED","GEOFENCE_ASSIGN_UNIT_COMPLETED","GEOFENCE_ASSIGN_UNIT_FAILED","GEOFENCE_ASSIGNATION_REMOVE_STARTED","GEOFENCE_ASSIGNATION_REMOVE_COMPLETED","GEOFENCE_ASSIGNATION_REMOVE_FAILED","GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED","GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED","GEOFENCE_ASSIGNATION_EDIT_STARTED","GEOFENCE_ASSIGNATION_EDIT_COMPLETED","GEOFENCE_ASSIGNATION_EDIT_FAILED","ROUTES_EXECUTIONS_FETCH_STARTED","ROUTES_EXECUTIONS_FETCH_COMPLETED","ROUTES_EXECUTIONS_FETCH_FAILED","ROUTE_EXECUTION_EDIT_STARTED","ROUTE_EXECUTION_EDIT_COMPLETED","ROUTE_EXECUTION_EDIT_FAILED","ROUTES_EXECUTION_CANCEL_STARTED","ROUTES_EXECUTION_CANCEL_COMPLETED","ROUTES_EXECUTION_CANCEL_FAILED","ROUTES_EXECUTION_FINALIZE_STARTED","ROUTES_EXECUTION_FINALIZE_COMPLETED","ROUTES_EXECUTION_FINALIZE_FAILED","ROUTES_EXECUTION_REMOVE_STARTED","ROUTES_EXECUTION_REMOVE_COMPLETED","ROUTES_EXECUTION_REMOVE_FAILED","ROUTES_EXECUTION_COMPLETE_STARTED","ROUTES_EXECUTION_COMPLETE_COMPLETED","ROUTES_EXECUTION_COMPLETE_FAILED","ROUTES_EXECUTION_PAUSE_STARTED","ROUTES_EXECUTION_PAUSE_COMPLETED","ROUTES_EXECUTION_PAUSE_FAILED","ROUTES_EXECUTION_START_STARTED","ROUTES_EXECUTION_START_COMPLETED","ROUTES_EXECUTION_START_FAILED","ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED","ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED","ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED","ROUTES_EXECUTION_SHARE_STARTED","ROUTES_EXECUTION_SHARE_COMPLETED","ROUTES_EXECUTION_SHARE_FAILED","ROUTES_EXECUTION_ASSIGN_UNIT_STARTED","ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED","ROUTES_EXECUTION_ASSIGN_UNIT_FAILED","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","LOCATIONS_FETCH_STARTED","LOCATIONS_FETCH_COMPLETED","LOCATIONS_FETCH_FAILED","LOCATION_FETCH_STARTED","LOCATION_FETCH_COMPLETED","LOCATION_FETCH_FAILED","LOCATIONS_PARTIAL_FETCH_STARTED","LOCATIONS_PARTIAL_FETCH_COMPLETED","LOCATIONS_PARTIAL_FETCH_FAILED","LOCATION_ADD_STARTED","LOCATION_ADD_COMPLETED","LOCATION_ADD_FAILED","LOCATION_EDIT_STARTED","LOCATION_EDIT_COMPLETED","LOCATION_EDIT_FAILED","LOCATION_REMOVE_STARTED","LOCATION_REMOVE_COMPLETED","LOCATION_REMOVE_FAILED","LOCATIONS_IMPORT_STARTED","LOCATIONS_IMPORT_COMPLETED","LOCATIONS_IMPORT_FAILED","LOCATION_SELECTED","LOCATIONS_ALL_SELECTED","LOCATION_DESELECTED","LOCATIONS_ALL_DESELECTED","LOCATION_SHOW_IN_MAP","LOCATIONS_ALL_SHOW_IN_MAP","LOCATION_HIDE_IN_MAP","LOCATIONS_ALL_HIDE_IN_MAP","LOCATION_DATA_LIMIT_FOR_CLUSTERING","LOCATION_DATA_LIMIT_FOR_SHOW_ON_MAP","MONITORING_USERS_FETCH_STARTED","MONITORING_USERS_FETCH_COMPLETED","MONITORING_USERS_FETCH_FAILED","MONITORING_USERS_PARTIAL_FETCH_STARTED","MONITORING_USERS_PARTIAL_FETCH_COMPLETED","MONITORING_USERS_PARTIAL_FETCH_FAILED","MONITORING_USER_ADD_STARTED","MONITORING_USER_ADD_COMPLETED","MONITORING_USER_ADD_FAILED","MONITORING_USER_EDIT_STARTED","MONITORING_USER_EDIT_COMPLETED","MONITORING_USER_EDIT_FAILED","MONITORING_USER_REMOVE_STARTED","MONITORING_USER_REMOVE_COMPLETED","MONITORING_USER_REMOVE_FAILED","MONITORING_USER_FETCH_STARTED","MONITORING_USER_FETCH_COMPLETED","MONITORING_USER_FETCH_FAILED","MONITORING_USER_SELECTED","MONITORING_USERS_ALL_SELECTED","MONITORING_USER_DESELECTED","MONITORING_USERS_ALL_DESELECTED","MONITORING_USER_UPDATE_PASSWORD_STARTED","MONITORING_USER_UPDATE_PASSWORD_COMPLETED","MONITORING_USER_UPDATE_PASSWORD_FAILED","MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED","MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED","USERS_ASSIGN_SCHEDULE_STARTED","USERS_ASSIGN_SCHEDULE_COMPLETED","USERS_UNASSIGN_SCHEDULE_STARTED","USERS_UNASSIGN_SCHEDULE_COMPLETED","USERS_FILTER_LIMIT","DRIVERS_FETCH_STARTED","DRIVERS_FETCH_COMPLETED","DRIVERS_FETCH_FAILED","DRIVERS_PARTIAL_FETCH_STARTED","DRIVERS_PARTIAL_FETCH_COMPLETED","DRIVERS_PARTIAL_FETCH_FAILED","DRIVER_ADD_STARTED","DRIVER_ADD_COMPLETED","DRIVER_ADD_FAILED","DRIVER_EDIT_STARTED","DRIVER_EDIT_COMPLETED","DRIVER_EDIT_FAILED","DRIVER_REMOVE_STARTED","DRIVER_REMOVE_COMPLETED","DRIVER_REMOVE_FAILED","DRIVER_SELECTED","DRIVERS_ALL_SELECTED","DRIVER_DESELECTED","DRIVERS_ALL_DESELECTED","START_IMPORT_DRIVERS_UNITS_IMPORT","COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT","START_MASSIVE_DRIVERS_ASSIGNMENT","COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT","DRIVER_ASSIGN_SENSOR_STARTED","DRIVER_ASSIGN_SENSOR_COMPLETED","DRIVER_UNASSIGN_SENSOR_STARTED","DRIVER_UNASSIGN_SENSOR_COMPLETED","SENSORS_FETCH_STARTED","SENSORS_FETCH_COMPLETED","SENSORS_FETCH_FAILED","SENSORS_PARTIAL_FETCH_STARTED","SENSORS_PARTIAL_FETCH_COMPLETED","SENSORS_PARTIAL_FETCH_FAILED","SENSOR_FETCH_STARTED","SENSOR_FETCH_COMPLETED","SENSOR_FETCH_FAILED","SENSOR_ADD_STARTED","SENSOR_ADD_COMPLETED","SENSOR_ADD_FAILED","SENSOR_EDIT_STARTED","SENSOR_EDIT_COMPLETED","SENSOR_EDIT_FAILED","SENSOR_REMOVE_STARTED","SENSOR_REMOVE_COMPLETED","SENSOR_REMOVE_FAILED","SENSOR_SELECTED","SENSORS_ALL_SELECTED","SENSOR_DESELECTED","SENSORS_ALL_DESELECTED","IDENTIFIER_CHECK_STARTED","IDENTIFIER_CHECK_COMPLETED","IDENTIFIER_CHECK_FAILED","START_SENSOR_CALIBRATION_STARTED","START_SENSOR_CALIBRATION_COMPLETED","START_SENSOR_CALIBRATION_FAILED","FINALIZE_SENSOR_CALIBRATION_STARTED","FINALIZE_SENSOR_CALIBRATION_COMPLETED","FINALIZE_SENSOR_CALIBRATION_FAILED","SCHEDULES_FETCH_STARTED","SCHEDULES_FETCH_COMPLETED","SCHEDULES_FETCH_FAILED","SCHEDULES_PARTIAL_FETCH_STARTED","SCHEDULES_PARTIAL_FETCH_COMPLETED","SCHEDULES_PARTIAL_FETCH_FAILED","SCHEDULE_ADD_STARTED","SCHEDULE_ADD_COMPLETED","SCHEDULE_ADD_FAILED","SCHEDULE_SHIFT_ADD_STARTED","SCHEDULE_SHIFT_ADD_COMPLETED","SCHEDULE_SHIFT_ADD_FAILED","SCHEDULE_EDIT_STARTED","SCHEDULE_EDIT_COMPLETED","SCHEDULE_EDIT_FAILED","SCHEDULE_SHIFT_EDIT_STARTED","SCHEDULE_SHIFT_EDIT_COMPLETED","SCHEDULE_SHIFT_EDIT_FAILED","SCHEDULE_REMOVE_STARTED","SCHEDULE_REMOVE_COMPLETED","SCHEDULE_REMOVE_FAILED","SCHEDULE_SELECTED","SCHEDULES_ALL_SELECTED","SCHEDULE_DESELECTED","SCHEDULES_ALL_DESELECTED","ASSETS_FETCH_STARTED","ASSETS_FETCH_COMPLETED","ASSETS_FETCH_FAILED","ASSETS_PARTIAL_FETCH_STARTED","ASSETS_PARTIAL_FETCH_COMPLETED","ASSETS_PARTIAL_FETCH_FAILED","ASSET_ADD_STARTED","ASSET_ADD_COMPLETED","ASSET_ADD_FAILED","ASSET_EDIT_STARTED","ASSET_EDIT_COMPLETED","ASSET_EDIT_FAILED","ASSET_REMOVE_STARTED","ASSET_REMOVE_COMPLETED","ASSET_REMOVE_FAILED","ASSET_SELECTED","ASSETS_ALL_SELECTED","ASSET_DESELECTED","ASSETS_ALL_DESELECTED","ASSET_IDENTIFIER_CHECK_STARTED","ASSET_IDENTIFIER_CHECK_COMPLETED","ASSET_IDENTIFIER_CHECK_FAILED","ASSET_SECURITY_SEAL_CODE_CHECK_STARTED","ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED","ASSET_SECURITY_SEAL_CODE_CHECK_FAILED","MODULES_FETCH_STARTED","MODULES_FETCH_COMPLETED","MODULES_FETCH_FAILED","MODULES_PARTIAL_FETCH_STARTED","MODULES_PARTIAL_FETCH_COMPLETED","MODULES_PARTIAL_FETCH_FAILED","MODULE_FETCH_STARTED","MODULE_FETCH_COMPLETED","MODULE_FETCH_FAILED","MODULE_ADD_STARTED","MODULE_ADD_COMPLETED","MODULE_ADD_FAILED","MODULE_EDIT_STARTED","MODULE_EDIT_COMPLETED","MODULE_EDIT_FAILED","MODULE_REMOVE_STARTED","MODULE_REMOVE_COMPLETED","MODULE_REMOVE_FAILED","MODULE_SELECTED","MODULES_ALL_SELECTED","MODULE_DESELECTED","MODULES_ALL_DESELECTED","MODULE_DIRTY","MODULE_FILTER_LIMIT","OPERATORS_FETCH_STARTED","OPERATORS_FETCH_COMPLETED","OPERATORS_FETCH_FAILED","OPERATORS_PARTIAL_FETCH_STARTED","OPERATORS_PARTIAL_FETCH_COMPLETED","OPERATORS_PARTIAL_FETCH_FAILED","OPERATOR_ADD_STARTED","OPERATOR_ADD_COMPLETED","OPERATOR_ADD_FAILED","OPERATOR_EDIT_STARTED","OPERATOR_EDIT_COMPLETED","OPERATOR_EDIT_FAILED","OPERATOR_REMOVE_STARTED","OPERATOR_REMOVE_COMPLETED","OPERATOR_REMOVE_FAILED","OPERATOR_SELECTED","OPERATOR_DESELECTED","OPERATORS_ALL_SELECTED","OPERATORS_ALL_DESELECTED","OPERATOR_EDIT_STANDARD_PRICES_STARTED","OPERATOR_EDIT_STANDARD_PRICES_FAILED","OPERATOR_EDIT_STANDARD_PRICES_COMPLETED","SIMS_FETCH_STARTED","SIMS_FETCH_COMPLETED","SIMS_FETCH_FAILED","SIM_FETCH_STARTED","SIM_FETCH_COMPLETED","SIM_FETCH_FAILED","SIMS_PARTIAL_FETCH_STARTED","SIMS_PARTIAL_FETCH_COMPLETED","SIMS_PARTIAL_FETCH_FAILED","SIM_ADD_STARTED","SIM_ADD_COMPLETED","SIM_ADD_FAILED","SIM_EDIT_STARTED","SIM_EDIT_COMPLETED","SIM_EDIT_FAILED","SIM_REMOVE_STARTED","SIM_REMOVE_COMPLETED","SIM_REMOVE_FAILED","SIM_SELECTED","SIMS_ALL_SELECTED","SIM_DESELECTED","SIMS_ALL_DESELECTED","SIMS_FILTER_LIMIT","MaintenanceNoticeTypes","MAINTENANCE_LINES_FETCH_STARTED","MAINTENANCE_LINES_FETCH_COMPLETED","MAINTENANCE_LINES_FETCH_FAILED","MAINTENANCE_LINES_PARTIAL_FETCH_STARTED","MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED","MAINTENANCE_LINES_PARTIAL_FETCH_FAILED","MAINTENANCE_LINE_ADD_STARTED","MAINTENANCE_LINE_ADD_COMPLETED","MAINTENANCE_LINE_ADD_FAILED","MAINTENANCE_LINE_EDIT_STARTED","MAINTENANCE_LINE_EDIT_COMPLETED","MAINTENANCE_LINE_EDIT_FAILED","MAINTENANCE_LINE_REMOVE_STARTED","MAINTENANCE_LINE_REMOVE_COMPLETED","MAINTENANCE_LINE_REMOVE_FAILED","MAINTENANCE_LINE_COPY_STARTED","MAINTENANCE_LINE_COPY_COMPLETED","MAINTENANCE_LINE_COPY_FAILED","MAINTENANCE_LINE_SELECTED","MAINTENANCE_LINES_ALL_SELECTED","MAINTENANCE_LINE_DESELECTED","MAINTENANCE_LINES_ALL_DESELECTED","AGENTS_FETCH_STARTED","AGENTS_FETCH_COMPLETED","AGENTS_FETCH_FAILED","AGENTS_PARTIAL_FETCH_STARTED","AGENTS_PARTIAL_FETCH_COMPLETED","AGENTS_PARTIAL_FETCH_FAILED","AGENT_FETCH_STARTED","AGENT_FETCH_COMPLETED","AGENT_FETCH_FAILED","AGENT_ADD_STARTED","AGENT_ADD_COMPLETED","AGENT_ADD_FAILED","AGENT_EDIT_STARTED","AGENT_EDIT_COMPLETED","AGENT_EDIT_FAILED","AGENT_REMOVE_STARTED","AGENT_REMOVE_COMPLETED","AGENT_REMOVE_FAILED","AGENT_SELECTED","AGENTS_ALL_SELECTED","AGENT_DESELECTED","AGENTS_ALL_DESELECTED","VEHICLES_FETCH_STARTED","VEHICLES_FETCH_COMPLETED","VEHICLES_FETCH_FAILED","VEHICLES_PARTIAL_FETCH_STARTED","VEHICLES_PARTIAL_FETCH_COMPLETED","VEHICLES_PARTIAL_FETCH_FAILED","VEHICLE_ADD_STARTED","VEHICLE_ADD_COMPLETED","VEHICLE_ADD_FAILED","VEHICLE_EDIT_STARTED","VEHICLE_EDIT_COMPLETED","VEHICLE_EDIT_FAILED","VEHICLE_REMOVE_STARTED","VEHICLE_REMOVE_COMPLETED","VEHICLE_REMOVE_FAILED","VEHICLE_SELECTED","VEHICLES_ALL_SELECTED","VEHICLE_DESELECTED","VEHICLES_ALL_DESELECTED","VEHICLE_LICENSE_PLATE_CHECK_STARTED","VEHICLE_LICENSE_PLATE_CHECK_COMPLETED","VEHICLE_LICENSE_PLATE_CHECK_FAILED","CUSTOMERS_FETCH_STARTED","CUSTOMERS_FETCH_COMPLETED","CUSTOMERS_FETCH_FAILED","CUSTOMERS_PARTIAL_FETCH_STARTED","CUSTOMERS_PARTIAL_FETCH_COMPLETED","CUSTOMERS_PARTIAL_FETCH_FAILED","CUSTOMER_ADD_STARTED","CUSTOMER_ADD_COMPLETED","CUSTOMER_ADD_FAILED","CUSTOMER_EDIT_STARTED","CUSTOMER_EDIT_COMPLETED","CUSTOMER_EDIT_FAILED","CUSTOMER_REMOVE_STARTED","CUSTOMER_REMOVE_COMPLETED","CUSTOMER_REMOVE_FAILED","CUSTOMER_SELECTED","CUSTOMERS_ALL_SELECTED","CUSTOMER_DESELECTED","CUSTOMERS_ALL_DESELECTED","startFetchingUnits","completeFetchingUnits","failFetchingUnits","startFetchingUnit","completeFetchingUnit","failFetchingUnit","startPartialFetchingUnits","completePartialFetchingUnits","failPartialFetchingUnits","addingUnitToState","startFetchingUnitsLiveStatus","completeFetchingUnitsLiveStatus","failFetchingUnitsLiveStatus","startFetchingUnitInformation","completeFetchingUnitInformation","failFetchingUnitInformation","startFetchingUnitPositions","completeFetchingUnitPositions","failFetchingUnitPositions","resetIsFetchedUnitPosition","startFetchingUnitTrajectory","completeFetchingUnitTrajectory","failFetchingUnitTrajectory","startAddingUnit","completeAddingUnit","failAddingUnit","startUpdateDevice","completeUpdateDevice","failUpdateDevice","startEditingUnit","completeEditingUnit","failEditingUnit","startAcknowledgeUnitEvent","completeAcknowledgeUnitEvent","failAcknowledgeUnitEvent","startAssigningDriverUnits","completeAssigningDriverUnits","startEndDowntimeUnit","completeEndDowntimeUnit","failEndDowntimeUnit","startStartDowntimeUnit","completeStartDowntimeUnit","failStartDowntimeUnit","startActivingUnits","completeActivingUnits","failActivingUnits","startRemovingUnit","completeRemovingUnit","failRemovingUnit","setDateRange","dateRange","selectUnit","selectAllUnits","unitIds","deselectUnit","deselectAllUnits","showUnitInMap","showAllUnitsInMap","hideUnitInMap","hideAllUnitsInMap","startCreatingShareLink","completeCreatingShareLink","failCreatingShareLink","clearSharedLink","startUpdateSim","failUpdateSim","completeUpdateSim","changes","startAddingFetchDate","completeAddingFetchDate","failAddingFetchDate","SERVICECLASSES_FETCH_STARTED","SERVICECLASSES_FETCH_COMPLETED","SERVICECLASSES_FETCH_FAILED","SERVICECLASSES_PARTIAL_FETCH_STARTED","SERVICECLASSES_PARTIAL_FETCH_COMPLETED","SERVICECLASSES_PARTIAL_FETCH_FAILED","SERVICECLASS_FETCH_STARTED","SERVICECLASS_FETCH_COMPLETED","SERVICECLASS_FETCH_FAILED","SERVICECLASS_ADD_STARTED","SERVICECLASS_ADD_COMPLETED","SERVICECLASS_ADD_FAILED","SERVICECLASS_EDIT_STARTED","SERVICECLASS_EDIT_COMPLETED","SERVICECLASS_EDIT_FAILED","SERVICECLASS_REMOVE_STARTED","SERVICECLASS_REMOVE_COMPLETED","SERVICECLASS_REMOVE_FAILED","SERVICECLASS_SELECTED","SERVICECLASSES_ALL_SELECTED","SERVICECLASS_DESELECTED","SERVICECLASSES_ALL_DESELECTED","performanceColors","vehiclePerformanceTitle","getPerformanceTitle","rangePerformance","performanceStatus","Math","round","isDeficient","isRegular","isEfficient","vehiclePerformance","getPerformanceColor","expectedPerformance","getAllFilteredData","byVehicles","unitsWithRecentData","v","hasRecentData","moment","diff","systemDate","hasNoDowntimeReasonId","isNullOrUndefined","downTimeReasonId","hasPerformance","expectedfuelEconomyByVehicles","travel","loadThreshold","consumption","historicalFuelEconomy","unitsWithoutRecentData","hasNoRecentData","gpsDate","unitsWithoutPerformance","hasNoPerformance","dowtimeUnits","u","allFilters","unitsWithDischarges","filterTelemetryData","unitsWithoutDischarges","poorPerformance","performanceStatusNew","regularPerformance","goodPerformance","overPerformance","excessivePerformance","goodUnitsPercent","min","max","vehiclesData","property","filtered","dec2binReverse","dec","binary","reversedBinary","reverseBinary","floor","dec2bin","searchUseMetric","metricsMask","bitNumber","Metrics","ACCState","MetricId","MetricName","BitNumber","UseInVehicles","UseInAssets","UseInPeople","OrderNumber","ACCX","ACCY","ACCZ","AD1","AD2","AppVersion","BackupBattery","Battery","CellNumber","CoverTamperState","DoorState","FirmwareVersion","GSMSignalLevel","HardwareVersion","ICCID","IsCharging","MainVoltage","MCC","MNC","OverSpeedState","PadlockAuthorizationType","PadlockState","PLMN","Satellites","ShockSensorState","TrailerID","DriverId","SolarVoltage","getSummaryDataForDynamicTable","performanceSummary","statuses","row","weekNumber","statusLowerCase","toLowerCase","total","toFixed","Object","keys","useCombinedFuelHistory","samples","fuelEvents","selectedSensor","useMemo","fuelHistory","resultFinal","event","unitPositionLogId","sampleMatch","fuelSamples","sample","eventId","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","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","NOTICES_BY_DATE_FETCH_STARTED","NOTICES_BY_DATE_FETCH_COMPLETED","NOTICES_BY_DATE_FETCH_FAILED","NOTICES_BY_DATE_PARTIAL_FETCH_STARTED","NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED","NOTICES_BY_DATE_PARTIAL_FETCH_FAILED","NOTICE_BY_DATE_ADD_STARTED","NOTICE_BY_DATE_ADD_COMPLETED","NOTICE_BY_DATE_ADD_FAILED","NOTICE_BY_DATE_EDIT_STARTED","NOTICE_BY_DATE_EDIT_COMPLETED","NOTICE_BY_DATE_EDIT_FAILED","NOTICE_BY_DATE_RENEW_STARTED","NOTICE_BY_DATE_RENEW_COMPLETED","NOTICE_BY_DATE_RENEW_FAILED","NOTICE_BY_DATE_REMOVE_STARTED","NOTICE_BY_DATE_REMOVE_COMPLETED","NOTICE_BY_DATE_REMOVE_FAILED","NOTICES_BY_HOURMETER_FETCH_STARTED","NOTICES_BY_HOURMETER_FETCH_COMPLETED","NOTICES_BY_HOURMETER_FETCH_FAILED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED","NOTICE_BY_HOURMETER_ADD_STARTED","NOTICE_BY_HOURMETER_ADD_COMPLETED","NOTICE_BY_HOURMETER_ADD_FAILED","NOTICE_BY_HOURMETER_EDIT_STARTED","NOTICE_BY_HOURMETER_EDIT_COMPLETED","NOTICE_BY_HOURMETER_EDIT_FAILED","NOTICE_BY_HOURMETER_RENEW_STARTED","NOTICE_BY_HOURMETER_RENEW_COMPLETED","NOTICE_BY_HOURMETER_RENEW_FAILED","NOTICE_BY_HOURMETER_REMOVE_STARTED","NOTICE_BY_HOURMETER_REMOVE_COMPLETED","NOTICE_BY_HOURMETER_REMOVE_FAILED","OperatingSystem","Browser","DeviceType","PacketType","FuelCalibrationCommand","optionKeySpecialCharacters","Ć„","Ƨ","ʒ","Ė†","Āµ","Ćø","Ļ€","œ","Ɵ","optionShiftSpecialCombinations","ƅ","ı","Ƈ","Ǝ","Ə","Ɠ","Ɣ","ƒ","Ƃ","Ƙ","Œ","ƍ","Ė‡","Ɓ","formatHtmlToText","htmlStr","htmlToText","wordwrap","getDateWithoutTimezoneOffset","getTimezoneOffset","toISOString","slice","generateHourMinuteLabel","seconds","hours","minutes","generateDayHourMinuteSecondLabel","days","generateHourMinuteSecondStr","isUserLoggedIn","getUserData","selectThemeColors","theme","colors","primary25","primary","neutral10","neutral20","neutral30","isValidEmail","email","test","String","numberWithCommas","posiciones","decimalLength","indexOf","substr","trunc","replace","formatAmount","n","isValidNumber","isBitSet","b","pos","isIterable","obj","Symbol","iterator","getDateColumnsInDateRange","stacked","dateArray","setDate","getDate","dateTitle","getFullYear","getMonth","fieldName","customKey","staticText","getDay","getWeekColumns","weeks","columns","week","startWeekDate","DateTime","fromISO","toFormat","endWeekDate","weekColumns","headerText","customAttributes","class","userTimezoneOffset","convertExcelDateToSystemDate","excelDate","format","isAlphaNumeric","alpha","valueToValidate","trim","isNotNullOrUndefined","validateColumns","dataInfo","columnDefinitions","rules","cd","rowIndex","invalidColumns","colValue","colIndex","required","validation","validator","column","originalRowId","rowIsValid","validators","isAlphaNumericOrEmpty","isValidNumberOrEmpty","validLast4Digits","isNumber","is4Digits","is4DigitsNumber","e","isValidDate","isValid","isValidExcelDate","validateRequiredValue","validateUniqueValue","columnName","isValidDayOfTheWeek","formattedDayOfTheWeek","formatDate","weekday","locale","isValidBoolean","toValidate","isValidLatitude","parsedValue","isNaN","isValidLongitude","isValidBit","normalizeString","normalizeInputText","parseToNumber","isNaNOrNullable","dateFormatter","dateFormat","m","parseToBoolean","parsers","parseToString","isDate","parseToDate","serial","utcDays","dateInfo","fractionalDay","totalSeconds","excelDateToJSDate","parseToBit","parseToDateTime","exceldate","zone","setZone","keepLocalTime","toJSDate","timeToSeconds","time","getHours","getMinutes","getSeconds","timeToMinutes","getMinutesFromDate","getTotalSecondsFromDate","getSecondsFromDateHours","getSecondsFromDateMinutes","getSecondsFromDate","createDateWithHoursAndMinutes","newDate","setHours","setMinutes","setSeconds","setMilliseconds","secondsToMilliseconds","generateDateLabelByDate","getDaysHoursInDateRange","difference","ceil","generateDateArray","generateDayLabelByDate","isNotInObject","isInObject","isNotNaNOrNullable","areNotNullOrUndefined","arr","parseSecondsToHours","parseHoursToSeconds","parseSecondsToHoursWithEpsilon","EPSILON","getTimeInMinutes","getTimeInSeconds","getNextElementInArray","array","currentIdx","nextElement","Error","getPreviousElementInArray","getDifferenceBetweenDatesHHMMSS","duration","minutesSeconds","utc","asHours","getDaysBetweenDateAndTodayRef","startYear","daysInMonth","yearDiff","monthDiff","dayDiff","weekDiff","hexToRgbA","hex","isHex","substring","getZeroIfNaNOrNullable","getDateStrFormatted","hasDBDateFormat","isMoment","getDateAsKey","getIsMobile","navigator","userAgent","getShortDate","transform","target","isArray","camelCase","isObject","truncateStr","charAt","formatNumber","useSelectedLocale","numberToValidate","regexIsNumber","localeToUse","newNumberFormatted","toLocaleString","testIsNumber","getUseCRM","REACT_APP_PRODUCT_CRM","getUseConsole","REACT_APP_PRODUCT_CONSOLE","getUseLoginext","REACT_APP_USE_LOGINEXT","getIsWebtrackUser","webtrackEmail","getHourFromStringTime","hour","getMinutesFromStringTime","isEmptyData","obj1","obj2","isNotEmptyData","joinTexts","items","by","formatList","stripHtml","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","TextInput","autocompleteinput","topRightComponent","disabled","errorinvalidmessage","errorvalidatemessage","autoComplete","invalid","defaultProps","startFetchingGeofences","completeFetchingGeofences","showInMap","failFetchingGeofences","startFetchingGeofence","completeFetchingGeofence","failFetchingGeofence","startPartialFetchingGeofences","completePartialFetchingGeofences","failPartialFetchingGeofences","startAddingGeofence","completeAddingGeofence","failAddingGeofence","startEditingGeofence","completeEditingGeofence","failEditingGeofence","startRemovingGeofence","completeRemovingGeofence","failRemovingGeofence","startRemovingGeofenceAssignation","startRemovingAllAssignmentsByGeofences","startRemovingAllAssignmentsByUnits","completeRemovingGeofenceAssignation","failRemovingGeofenceAssignation","startEditingGeofenceAssignation","completeEditingGeofenceAssignation","failEditingGeofenceAssignation","showGeofenceInMap","showAllGeofencesInMap","geofenceIds","hideGeofenceInMap","hideAllGeofencesInMap","startAssignUnitsGeofences","completeAssignUnitsGeofences","failAssignUnitsGeofences","ROUTES_ASSIGNMENTS_FETCH_STARTED","ROUTES_ASSIGNMENTS_FETCH_COMPLETED","ROUTES_ASSIGNMENTS_FETCH_FAILED","ROUTES_ASSIGNMENT_EDIT_STARTED","ROUTES_ASSIGNMENT_EDIT_COMPLETED","ROUTES_ASSIGNMENT_EDIT_FAILED","ROUTES_ASSIGNMENT_REMOVE_STARTED","ROUTES_ASSIGNMENT_REMOVE_COMPLETED","ROUTES_ASSIGNMENT_REMOVE_FAILED","ROUTES_ASSIGNMENTS_IMPORT_STARTED","ROUTES_ASSIGNMENTS_IMPORT_COMPLETED","ROUTES_ASSIGNMENTS_IMPORT_FAILED","WORKPLANS_EXECUTION_LOCATION_ADD_STARTED","WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED","WORKPLANS_EXECUTION_LOCATION_ADD_FAILED","WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED","WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED","WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED","WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED","WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED","WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED","WORKPLAN_COMMENTS_FETCH_STARTED","WORKPLAN_COMMENTS_FETCH_COMPLETED","WORKPLAN_COMMENTS_FETCH_FAILED","WORKPLAN_COMMENT_ADD_STARTED","WORKPLAN_COMMENT_ADD_COMPLETED","WORKPLAN_COMMENT_ADD_FAILED","WORKPLAN_COMMENT_REMOVE_STARTED","WORKPLAN_COMMENT_REMOVE_COMPLETED","WORKPLAN_COMMENT_REMOVE_FAILED","isShowInMap","isShownInMap","geofenceIdState","isFetchingGeofence","geofencesPersistedConfig","whitelist","getGeofence","getGeofencesList","geofenceStatus","getParentGeofencesList","isParentGeofence","getSubGeofencesList","parentGeofenceId","getGeofencesListByMembership","geofencesList","getGeofenceByPrivateCodeByMembership","getParentGeofencesListByMembership","getSubGeofencesListByMembership","isPartialFetchingListGeofences","isFetchingListGeofences","isAddingGeofence","isEditingGeofence","isRemovingGeofence","isFetchingGeofenceById","startLogin","password","completeLogin","failLogin","logout","setSessionMembership","authenticationUserInformationCompleted","startRefreshToken","startForceRefreshToken","completeRefreshToken","failRefreshToken","startUpdatingProfileGeneralInformation","completeUpdatingProfileGeneralInformation","failUpdatingProfileGeneralInformation","startUpdatingProfilePassword","completeUpdatingProfilePassword","failUpdatingProfilePassword","completeUpdatingProfilePicture","startUpdatingProfileHomeScreen","completeUpdatingProfileHomeScreen","failUpdatingProfileHomeScreen","startChangingProduct","completeChangingProduct","failChangingProduct","startUpdatingProfileMapOptions","completeUpdatingProfileMapOptions","failUpdatingProfileMapOptions","startUpdatingMapSettingsConfiguration","completeUpdatingMapSettingsConfiguration","failUpdatingMapSettingsConfiguration","startUpdatingMapFilterTabPinned","completeUpdatingMapFilterTabPinned","failUpdatingMapFilterTabPinned","unitLiveStatus","fetchDate","historicalPositions","allPositions","trajectory","eventName","eventParam","eventTextColor","eventColor","themeId","isFetchingLiveStatusList","isFetchingInformation","isFetchingPositions","isAcknowledgeEvent","isFetchedPosition","errorFetchingLiveStatusList","errorFetchingInformation","errorEditingInformation","isFetchingTrajectory","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","isFetchingUnit","isUpdatingSimCard","unitsPersistedConfig","isCreatingSharedLinkUnit","sharedLinkUnit","oldUnitMainStateIds","getUnitLiveStatus","getUnitsList","getUnitsSpecificList","list","getActiveUnitsList","getActiveUnitsListByMembership","getActiveUnitsListByPartialMembership","useOperator","useOrganization","useDivision","useSubdivision","getSelectedUnits","selectedUnits","getUnitByPrivateCode","getUnitByIdOrPrivateCode","getSelectedUnit","isPartialFetchingListUnits","isFetchingListUnits","haveUnitsBeenFetched","isAddingUnit","isEditingUnit","isEditingUnitDowntime","isRemovingUnit","isFetchingUnitById","isEditingSimCard","isEditingDevice","getPartialFetchingListUnitsErrors","getFetchingListUnitsErrors","getAddingUnitErrors","getEditingUnitErrors","getRemovingUnitErrors","getUnitLiveFetchDate","selectorsUnitLiveStatus","getUnitsLiveStatusList","isFetchingListUnitsLiveStatus","isFetchingUnitInformation","isFetchingUnitPositions","isAcknowledgeUnitEvent","isFetchedUnitPosition","isFetchingUnitTrajectory","getFetchingListUnitsLiveStatusErrors","getFetchingUnitInformationErrors","startFetchingQuotations","completeFetchingQuotations","failFetchingQuotations","completePartialFetchingQuotations","failPartialFetchingQuotations","startAddingQuotation","completeAddingQuotation","failAddingQuotation","startEditingQuotation","completeEditingQuotation","failEditingQuotation","startSchedulingQuotation","completeSchedulingQuotation","failSchedulingQuotation","startCheckingQuotationScheduling","completeCheckingQuotationScheduling","failCheckingQuotationScheduling","startApprovingDenyingQuotationManagement","completeApprovingDenyingQuotationManagement","failApprovingDenyingQuotationManagement","startAcceptingDenyingQuotationCustomer","completeAcceptingDenyingQuotationCustomer","failAcceptingDenyingQuotationCustomer","startSettingTimesupQuotation","completeSettingTimesupQuotation","failSettingTimesupQuotation","startRemovingQuotation","completeRemovingQuotation","failRemovingQuotation","changeQuotationOrganization","selectQuotation","deselectAllQuotations","quotationIds","startCopyingQuotation","completeCopyingQuotation","failCopyingQuotation","startFetchingSchedules","completeFetchingSchedules","failFetchingSchedules","startPartialFetchingSchedules","completePartialFetchingSchedules","failPartialFetchingSchedules","startAddingSchedule","completeAddingSchedule","failAddingSchedule","startAddingShift","startEditingSchedule","completeEditingSchedule","failEditingSchedule","startEditingShift","completeEditingShift","failEditingShift","startRemovingSchedule","completeRemovingSchedule","failRemovingSchedule","selectSchedule","deselectAllSchedules","sparepartsCatalog","workshopCatalog","categoriesCatalog","providersCatalog","addSpareparts","addWorkshop","addCategories","addProviders","editSpareparts","editWorkshop","editCategories","editProviders","removeSpareparts","removeWorkshop","removeCategories","removeProviders","generalReport","byCategoryReport","byUnitReport","byWorkShopReport","importTicket","addTickets","maintenanceLineAdd","maintenanceLineEdit","maintenanceLineRemove","preventiveNotices","addPreventiveNotices","editPreventiveNotices","removePreventiveNotices","reschedulePreventiveNotice","totalNotices","expiredNotices","activeNotices","COUNTRIES_FETCH_STARTED","COUNTRIES_FETCH_COMPLETED","COUNTRIES_FETCH_FAILED","COUNTRIES_PARTIAL_FETCH_STARTED","COUNTRIES_PARTIAL_FETCH_COMPLETED","COUNTRIES_PARTIAL_FETCH_FAILED","COUNTRY_FETCH_STARTED","COUNTRY_FETCH_COMPLETED","COUNTRY_FETCH_FAILED","COUNTRY_SELECTED","COUNTRIES_ALL_SELECTED","COUNTRY_DESELECTED","COUNTRIES_ALL_DESELECTED","isImporting","errorImporting","getLocation","restartState","locationIdState","isFetchingLocation","locationsPersistedConfig","getLocationsList","locationStatus","getLocationByPrivateCode","getLocationByPrivateCodeByMembership","getLocationsListByMembership","getLocationByGooglePlaceId","googlePlaceId","googleLocation","getLocationsListByLocationClassId","locationClassId","getLocationsOfficesList","useOnlyOffices","officeSelectors","officePrivateCode","getLocationOffice","getLocationsOfficesListByMembership","isPartialFetchingListLocations","isFetchingListLocations","haveLocationsBeenFetched","isAddingLocation","isEditingLocation","isRemovingLocation","isFetchingLocationById","getImportedLocationsList","importedLocationsSelectors","isImportingLocations","startFetchingContacts","completeFetchingContacts","failFetchingContacts","startPartialFetchingContacts","completePartialFetchingContacts","startAddingContact","completeAddingContact","failAddingContact","startEditingContact","completeEditingContact","failEditingContact","startRemovingContact","completeRemovingContact","failRemovingContact","selectContact","deselectAllContacts","contactIds","startFetchingLocations","completeFetchingLocations","failFetchingLocations","startFetchingLocation","completeFetchingLocation","failFetchingLocation","startPartialFetchingLocations","completePartialFetchingLocations","failPartialFetchingLocations","startAddingLocation","completeAddingLocation","failAddingLocation","startEditingLocation","completeEditingLocation","failEditingLocation","startRemovingLocation","completeRemovingLocation","failRemovingLocation","startImportingLocations","completeImportingLocations","failImportingLocations","showLocationInMap","showAllLocationsInMap","hideLocationInMap","hideAllLocationsInMap","startFetchingJobsBacklog","completeFetchingJobsBacklog","failFetchingJobsBacklog","startPartialFetchingJobsBacklog","completePartialFetchingJobsBacklog","failPartialFetchingJobsBacklog","completeAddingJobBacklog","failAddingJobBacklog","completeEditingJobBacklog","failEditingJobBacklog","completeRemovingJobsBacklog","failRemovingJobsBacklog","completeChangeStatusJobs","failChangeStatusJobs","oldJobs","completeChangePriorityJobs","failChangePriorityJobs","completeChangeStartDateJobs","failChangeStartDateJobs","completeChangeDueDateJobs","failChangeDueDateJobs","completeChangeMinMaxTimeJobs","failChangeMinMaxTimeJobs","completeAssignUsersJobs","failAssignUsersJobs","completeAssignFormsJobs","failAssignFormsJobs","completeAssignFilesJobs","failAssignFilesJobs","completeRescheduleJobs","failRescheduleJobs","completeImportingJobs","failImportingJobs","organizationIds","organizationIdState","isAddingDowntimeReason","isEditingDowntimeReason","isRemovingDowntimeReason","errorAddingDowntimeReason","errorEditingDowntimeReason","errorRemovingDowntimeReason","getOrganizationOperator","getOrganizationOperatorName","getOrganization","getOrganizationName","getOrganizationLoginextParams","loginextEffectiveVisitingTime","loginextDeliveryDelay","getOrganizationsList","organizationStatus","getOrganizationsListByMembership","getOrganizationsListBySelectedOperator","getSelectedOrganizations","selectedOrganizations","getSelectedOrganization","isPartialFetchingListOrganizations","isFetchingListOrganizations","isAddingOrganization","isEditingOrganization","isRemovingOrganization","isAddingOrganizationDowntimeReason","isEditingOrganizationDowntimeReason","isRemovingOrganizationDowntimeReason","getPartialFetchingListOrganizationsErrors","getFetchingListOrganizationsErrors","getAddingOrganizationErrors","getEditingOrganizationErrors","getRemovingOrganizationErrors","getAddingOrganizationDowntimeReasonErrors","getEditingOrganizationDowntimeReasonErrors","getRemovingOrganizationDowntimeReasonErrors","isValidCode","startFetchingGroups","completeFetchingGroups","failFetchingGroups","startFetchingGroup","completeFetchingGroup","failFetchingGroup","startPartialFetchingGroups","completePartialFetchingGroups","failPartialFetchingGroups","completeFetchingAllEntitiesGroups","failFetchingAllEntitiesGroups","startAddingGroup","completeAddingGroup","failAddingGroup","startAddingGroupWithEntities","completeAddingGroupWithEntities","failAddingGroupWithEntities","startEditingGroup","completeEditingGroup","failEditingGroup","startRemovingGroup","completeRemovingGroup","failRemovingGroup","startLeavingGroup","completeLeavingGroup","failLeavingGroup","startEditingNotificationsConfigurationGroup","completeEditingNotificationsConfigurationGroup","failEditingNotificationsConfigurationGroup","startRemovingEntitiesFromGroup","completeRemovingEntitiesFromGroup","startAddingEntitiesToGroup","completeAddingEntitiesToGroup","startEditingUserProfileInGroup","completeEditingUserProfileInGroup","selectGroup","deselectAllGroups","groupIds","startFetchingOrganizations","completeFetchingOrganizations","failFetchingOrganizations","startPartialFetchingOrganizations","failPartialFetchingOrganizations","startAddingOrganization","completeAddingOrganization","failAddingOrganization","startEditingOrganization","completeEditingOrganization","failEditingOrganization","startSavingConsolidableEvents","completeSavingConsolidableEvents","failSavingConsolidableEvents","startRemovingOrganization","completeRemovingOrganization","failRemovingOrganization","selectOrganization","deselectOrganization","deselectAllOrganizations","startCheckingCode","completeCheckingCode","startAssigningCode","completeAssigningCode","failAssigningCode","startAddingOrganizationDowntimeReason","completeAddingOrganizationDowntimeReason","failAddingOrganizationDowntimeReason","startEditingOrganizationDowntimeReason","completeEditingOrganizationDowntimeReason","failEditingOrganizationDowntimeReason","oldDowntimeReason","startRemovingOrganizationDowntimeReason","completeRemovingOrganizationDowntimeReason","failRemovingOrganizationDowntimeReason","NumericalInput","step","useNumberSpinner","metric","allowUndefined","allowDecimals","decimalsPrecision","autoCompleteInput","allowZero","forceShowDecimals","useState","setInputValue","authSystems","useSelector","handleChangeNumber","newValue","isEmptyString","hasNumberFormat","validate","onKeyDown","preventDefault","readonly","startFetchingWorkplans","completeFetchingWorkplans","failFetchingWorkplans","startPartialFetchingWorkplans","completePartialFetchingWorkplans","failPartialFetchingWorkplans","completeFetchingWorkplanLocations","failFetchingWorkplanLocations","startAddingWorkplan","completeAddingWorkplan","failAddingWorkplan","startEditingWorkplan","completeEditingWorkplan","failEditingWorkplan","startRemovingWorkplan","completeRemovingWorkplan","failRemovingWorkplan","selectWorkplan","deselectWorkplan","startCopyWorkplan","completeCopyWorkplan","failCopyWorkplan","startAssignOriginGeofenceWorkplan","completeAssignOriginGeofenceWorkplan","failAssignOriginGeofenceWorkplan","startAssignWorkGeofenceWorkplan","completeAssignWorkGeofenceWorkplan","failAssignWorkGeofenceWorkplan","startAssignDestinationGeofenceWorkplan","completeAssignDestinationGeofenceWorkplan","failAssignDestinationGeofenceWorkplan","startFetchingForms","completeFetchingForms","failFetchingForms","startPartialFetchingForms","completePartialFetchingForms","failPartialFetchingForms","startFetchingFormSections","completeFetchingFormSections","failFetchingFormSections","startFetchingFormQuestions","completeFetchingFormQuestions","failFetchingFormQuestions","startAddingForm","formDescription","organizationFormCategoryId","useBarCodes","requireSignature","copyToCustomer","formTypeId","formUrl","notificationEmails","completeAddingForm","failAddingForm","startAddingExternal","startEditingExternal","startEditingForm","completeEditingForm","failEditingForm","startRemovingForm","completeRemovingForm","failRemovingForm","selectForm","deselectAllForms","startAddingResponse","tableResponses","responseDate","completeAddingResponse","failAddingResponse","addSection","sectionType","sectionId","changeSectionCollapsed","moveSection","startingPosition","endingPosition","editSectionName","sectionName","deleteSection","copySection","newSectionId","newSection","setSections","sectionsOrder","sectionsId","addRow","rowId","moveRow","editRowName","deleteRow","addQuestion","questionType","questionId","moveQuestion","deleteQuestion","copyQuestion","newQuestion","setQuestion","question","editQuestionHeight","changeQuestionCollapsed","startFetchingResponse","completeFetchingResponse","failFetchingResponse","startResendingResponse","completeResendingResponse","failResendingResponse","selectAnswer","responseId","moveAnswer","addAnswer","answerId","deleteAnswer","editAnswer","routesComments","isFetchingExecutions","isEditingExecution","isCancelingExecution","isFinalizingExecution","isCompletingExecution","isRemovingExecution","isSharingExecution","isPausingExecution","isStartingExecution","isUpdatingManualTransitExecution","isChangingToAlternateRoute","errorFetchingExecutions","errorEditingExecution","errorCancelingExecution","errorFinalizingExecution","errorCompletingExecution","errorRemovingExecution","errorPausingExecution","errorStartingExecution","errorUpdatingManualTransitExecution","errorSharingExecution","errorChangingToAlternateRoute","getRoutesExecution","getRouteExecutionInformation","getRoutesExecutionsList","getIndicatorsInformation","correctRunning","onOrigin","onDestination","onRoute","atCheckpoint","incorrectRunning","paused","offRoute","eao","unauthorizedReturn","running","scheduled","finalized","canceled","getTotalNotShown","getIndicators","viewTotalIndicator","viewScheduledIndicator","bigIndicator","details","info","onTime","late","popoverTitle","popoverBody","viewRunningIndicator","getExecutionsStatus","labels","series","viewRouteByStatusGraph","getRunningStatus","viewRouteRunningGraph","isFetchingRoutesExecutions","isEditingRouteExecution","isCancelingRoutesExecution","isFinalizingRoutesExecution","isCompletingRoutesExecution","isRemovingRoutesExecution","isPausingRoutesExecution","isStartingRoutesExecution","isUpdatingManualTransitRoutesExecution","isSharingRoutesExecution","isChangingToAlternateRouteExecution","getFetchingRoutesExecutionsErrors","getCancelingRoutesExecutionErrors","getFinalizingRoutesExecutionErrors","getCompletingRoutesExecutionErrors","getRemovingRoutesExecutionErrors","getPausingRoutesExecutionErrors","getStartingRoutesExecutionErrors","getUpdatingManualTransitRoutesExecutionErrors","getSharingRoutesExecutionErrors","getChangingToAlternateRouteErrors","DefaultButton","isLoading","handleClick","tooltipMessage","iconSize","visible","tooltipPosition","tooltipOpen","setTooltipOpen","Ripple","onClick","as","animation","role","aria-hidden","placement","isOpen","toggle","trigger","changeUnitSubState","getRouteAssignments","getFleetService","getUnitDeviceActionParametersService","getUnitDeviceActionsService","getUnitRunningTimeByHour","getUnitScriptHistory","getUnitTemperatureHistory","getUnitFuelHistory","getAssetFuelHistory","getUnitFuelSamples","getUnitFuelInformation","getUnitFuelEvents","getDowntimeBinnacleService","getUserAssignedUnits","removeUserAssignedUnits","addUserAssignedUnits","updateOdometer","updateHourmeter","updateDeviceService","getUnitsListByFiltersService","getUnitAssetsService","getUnitScriptsSerivice","insertUnitScriptService","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","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","getUnitHeadingIcon","getDatesDifferenceString","date1","date2","getTimeDifferenceString","abs","getIconByDatesDifference","getUnitsCompleteData","liveUnit","selectedOrganizationId","startFetchingRoutes","completeFetchingRoutes","failFetchingRoutes","startPartialFetchingRoutes","completePartialFetchingRoutes","failPartialFetchingRoutes","startAddingRoute","completeAddingRoute","routeInformation","failAddingRoute","startEditingRoute","completeEditingRoute","failEditingRoute","startRemovingRoute","completeRemovingRoute","failRemovingRoute","startRemovingRoutes","completeRemovingRoutes","failRemovingRoutes","selectRoute","selectAllRoutes","deselectRoute","deselectAllRoutes","startCopyRoute","completeCopyRoute","failCopyRoute","showRouteInMap","showAllRoutesInMap","hideRouteInMap","hideAllRoutesInMap","JOB_FETCH_STARTED","JOB_FETCH_COMPLETED","JOB_FETCH_FAILED","WORKPLANS_VISITS_FETCH_STARTED","WORKPLANS_VISITS_FETCH_COMPLETED","WORKPLANS_VISITS_FETCH_FAILED","WORKPLANS_ALL_VISITS_FETCH_STARTED","WORKPLANS_ALL_VISITS_FETCH_COMPLETED","WORKPLANS_ALL_VISITS_FETCH_FAILED","divisionIds","divisionIdState","getDivision","getDivisionsList","divisionStatus","getDivisionsListByMembership","getDivisionsListBySelectedOrganization","getSelectedDivisions","selectedDivisions","getSelectedDivision","isPartialFetchingListDivisions","isFetchingListDivisions","isAddingDivision","isEditingDivision","isRemovingDivision","getPartialFetchingListDivisionsErrors","getFetchingListDivisionsErrors","getAddingDivisionErrors","getEditingDivisionErrors","getRemovingDivisionErrors","FetchEntities","useUnits","unitsFilters","useSubdivisions","subdivisionsFilters","useMaintenanceLines","maintenanceLinesFilters","useVehicles","vehiclesFilters","useSims","simsFilters","useModules","modulesFilters","useDrivers","driversFilters","useAgents","useServiceClasses","useServiceClassesDropdown","useUsers","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","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","duplicatedUnitRouteAssignmentValidator","assignedUnitsFromDatabase","commonValues","unitsRoutesAssignmentsFromState","unitsRoutesAssignment","correlative","assignmentTypeNumber","hasAssignmentAtSameHourOrScheduleNextRun","existingAssignments","comparePredicate","AssignmentTypes","ByDate","stepperStartDate","assignmentStartDate","existingAssignment","existingAssignmentStartDate","REACT_APP_MIN_VALID_DIFF_TIME_BETWEEN_UNITS_ROUTES_ASSIGNMENT","stepperNextRunDate","nextRunDate","existingAssignmentNextRunDate","unitRoutAssignmentNextRunDate","scheduleNextRunDate","unitRouteAssignment","getRouteInformationFormat","speedLimitFormat","getRouteUnitFormat","realDistanceLabel","realDistance","calculatedDistanceLabel","calculatedDistance","effectivenessLabel","effectiveness","getRoutesRouteInformationFormat","fuelConsumptionLabel","getRouteExecutionInformationFormat","durationLabel","completionDate","cancelDate","transitDurationLabel","transitDate","ENTITIES_FETCH_STARTED","ENTITIES_FETCH_COMPLETED","ENTITIES_FETCH_FAILED","ENTITIES_RESET_IS_FETCHED","ENTITIES_UPDATE_STARTED","ENTITIES_UPDATE_COMPLETED","ENTITIES_UPDATE_FAILED","CheckboxInput","UUIDv4","classNameCustom","inline","checked","subdivisionIds","subdivisionIdState","getSubdivision","getSubdivisionsList","subdivisionStatus","getSubdivisionsListByMembership","getSubdivisionsListBySelectedDivision","getSelectedSubdivisions","selectedSubdivisions","getSelectedSubdivision","isPartialFetchingListSubdivisions","isFetchingListSubdivisions","isAddingSubdivision","isEditingSubdivision","isRemovingSubdivision","getPartialFetchingListSubdivisionsErrors","getFetchingListSubdivisionsErrors","getAddingSubdivisionErrors","getEditingSubdivisionErrors","getRemovingSubdivisionErrors","viewWorkplanModule","assignWorkplan","searchWorkplans","viewPlansIndicator","viewLocationsIndicator","viewVisitsIndicator","viewExecutionIndicator","viewArrivalEffectivnessGraph","viewPermanenceEffectivenessGraph","viewLocationsUnitsEffectivenessGraph","changeUnit","finalizeWorkplanAssignment","viewWorkplanMonitor","cancelWorkplanAssignment","viewWorkplanReport","deleteWorkplan","viewWorkplanCatalog","scheduledWorkplanList","scheduledWorkplanEdit","scheduledWorkplanDelete","loginextConfiguration","startFetchingMonitoringUsers","completeFetchingMonitoringUsers","failFetchingMonitoringUsers","startFetchingMonitoringUser","completeFetchingMonitoringUser","failFetchingMonitoringUser","startPartialFetchingMonitoringUsers","completePartialFetchingMonitoringUsers","failPartialFetchingMonitoringUsers","startAddingMonitoringUser","completeAddingMonitoringUser","failAddingMonitoringUser","startEditingMonitoringUser","completeEditingMonitoringUser","failEditingMonitoringUser","startRemovingMonitoringUser","completeRemovingMonitoringUser","failRemovingMonitoringUser","deselectAllMonitoringUsers","monitoringUserIds","startUpdatingMonitoringUserPassword","completeUpdatingMonitoringUserPassword","failUpdatingMonitoringUserPassword","startSavingMonitoringUserRolesAndPermissions","completeSavingMonitoringUserRolesAndPermissions","startAssigningScheduleUsers","completeAssigningScheduleUsers","completeUnassigningScheduleUsers","startUnassigningScheduleUsers","jobTitle","getJobsReportByUserListService","startFetchingAgents","completeFetchingAgents","failFetchingAgents","startPartialFetchingAgents","completePartialFetchingAgents","failPartialFetchingAgents","startFetchingAgent","completeFetchingAgent","failFetchingAgent","startAddingAgent","completeAddingAgent","failAddingAgent","startEditingAgent","completeEditingAgent","failEditingAgent","startRemovingAgent","completeRemovingAgent","failRemovingAgent","selectAgent","deselectAgent","startFetchingOperators","completeFetchingOperators","failFetchingOperators","startPartialFetchingOperators","completePartialFetchingOperators","failPartialFetchingOperators","startAddingOperator","completeAddingOperator","failAddingOperator","startEditingOperator","completeEditingOperator","failEditingOperator","startEditingOperatorStandardPrices","completeEditingOperatorStandardPrices","startRemovingOperator","completeRemovingOperator","failRemovingOperator","selectOperator","deselectOperator","Toolbar","buttons","child","mileageReport","hourMetersReport","runningTimeReport","unitActivity","byUnitStopSummaryReport","byUnitScriptsHistoryReport","consolidatedStopSummaryReport","consolidatedOpportunityOfCharge","consolidatedUnitActivityReport","consolidatedEventActivityReport","parkedGeofenceReport","fuelSensorReport","scheduledReports","scheduledReportsCreate","scheduledReportsEdit","scheduledReportsDelete","systemCommunicationsDiagReport","systemNotificationsReport","accommodationChargesReport","administrativeReports","byUnitReports","consolidatedReports","listReports","deepSearch","consumptionAPIReport","readWebEvents","markReadedWebEvents","consolidatedSummary","readAPICost","systemUserHistory","routesReport","unitsById","routesById","isFetchingReport","errorFetchingReport","routesAssignments","routeIdState","isCopying","errorCopying","routesPersistConfig","getRoute","routeSelectorsCheckpoints","getRoutesList","getRoutesListByMembership","isPartialFetchingListRoutes","isFetchingListRoutes","isAddingRoute","isEditingRoute","routesSelectorsExecutions","isFetchingListRouteCheckpoints","startFetchingEntities","startFetchingEntitiesAfterLogin","completeFetchingEntities","failFetchingEntities","resetIsFetchedEntities","startUpdatingEntities","completeUpdatingEntities","failUpdatingEntities","startFetchingDrivers","completeFetchingDrivers","failFetchingDrivers","startPartialFetchingDrivers","completePartialFetchingDrivers","failPartialFetchingDrivers","startAddingDriver","completeAddingDriver","failAddingDriver","startEditingDriver","completeEditingDriver","failEditingDriver","startRemovingDriver","completeRemovingDriver","failRemovingDriver","selectDriver","deselectAllDrivers","driverIds","completeMassiveDriversAssignment","errorMassiveDriversAssignment","completeImportDriver","startDriverAssignSensor","completeDriverAssignSensor","startDriverUnassignSensor","completeDriverUnassignSensor","startFetchingModules","completeFetchingModules","failFetchingModules","startPartialFetchingModules","completePartialFetchingModules","failPartialFetchingModules","startFetchingModule","completeFetchingModule","failFetchingModule","startAddingModule","completeAddingModule","failAddingModule","startEditingModule","completeEditingModule","failEditingModule","startRemovingModule","completeRemovingModule","failRemovingModule","deselectModule","deselectAllModules","moduleIds","JOBS_REPORT_FETCH_STARTED","JOBS_REPORT_FETCH_COMPLETED","JOBS_REPORT_FETCH_FAILED","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","startFetchingSims","completeFetchingSims","failFetchingSims","startFetchingSim","completeFetchingSim","failFetchingSim","startPartialFetchingSims","completePartialFetchingSims","failPartialFetchingSims","startAddingSim","completeAddingSim","failAddingSim","startEditingSim","completeEditingSim","failEditingSim","startRemovingSim","completeRemovingSim","failRemovingSim","deselectSim","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","HANDLE_SEARCH_QUERY","GET_BOOKMARKS_FETCH_STARTED","GET_BOOKMARKS_FETCH_COMPLETED","GET_BOOKMARKS_FETCH_FAILED","UPDATE_BOOKMARKED_STARTED","UPDATE_BOOKMARKED_COMPLETED","UPDATE_BOOKMARKED_FAILED","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","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","Avatar","forwardRef","imgClassName","initials","badgeUp","badgeColor","badgeText","img","imgHeight","imgWidth","Tag","tag","contentStyles","rest","classnames","str","results","getInitials","pill","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","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","useScript","url","script","$","async","appendChild","getRectBoundsFromLatLng","radius","dy","dx","cos","PI","minLatitude","minLongitude","maxLatitude","maxLongitude","getIsInnerGeoreferenceFromLatLng","unitPositions","matches","unitPosition","matchStatus","getRectangleFromLatLng","getTriangleFromLatLng","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","Table","TableComponent","version","enablePersistence","omitPersistenceKeys","enableVirtualization","rerender","selectAll","deselectAll","initialFilterColumns","sortSettings","actionSave","onDrop","onDeselect","changeSelected","rerenderSelected","allowSorting","allowRowDragAndDrop","allowPaging","pageSize","allowResizing","allowReordering","allowFiltering","allowMultipleSelection","sortedColumn","frozenColumns","initialSelectedRowIndex","persistSelectIndexes","toolbarOptions","allowExcelExport","toolbarClick","setTableRef","allowGrouping","groupSettings","usingAdvancedFilters","changeState","show","setShow","setLocale","stateRef","changeKey","setTooltip","tableColumns","setTableColumns","selectedRowIndexes","setSelectedRowIndexes","scrollLeft","setScrollLeft","intlContext","useContext","IntlContext","dataTable","dataRowTableId","currentLocale","setCulture","notFoundMessage","L10n","load","grid","EmptyRecord","savedVersion","headerModule","autoFitColumns","sortedColumnIndex","direction","reset","useDeepCompareEffect","getFilteredRecords","selectRowsByRange","selectedRows","getElementById","clearSelection","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","noRecordsTemplate","stackedColumn","j","autoFit","stackedStackedColumn","isPrimaryKey","editType","editTemplate","headerTemplate","formatColumn","displayAsCheckBox","template","hasTooltip","freeze","edit","textAlign","valueAccessor","tooltipTemplate","aggregateType","customAggregate","customAggregateFn","footerTemplate","aggregateText","Count","services","Resize","Filter","Sort","Page","Search","Freeze","Reorder","Aggregate","Edit","RowDD","VirtualScroll","ExcelExport","ColumnChooser","Group","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","showDropdowns","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","getJobTypeIcon","jobBacklogTypeId","jobTypesList","jobTypeId","getJobTypeTemplate","center","getJobRequesterTemplate","requesterUserName","requestUserImageUrl","requesterCompleteName","getJobRequesterInfoTemplate","getUsersText","getJobUsersRowTemplate","userSplit","idx","completeName","getJobNotificationEmailsTemplate","nemail","getJobUsersInfoTemplate","getJobFormsInfoTemplate","formSplit","formResponsesCount","getJobFilesInfoTemplate","md","fileSplit","file","fileName","fileUrl","fileExtension","getTotalEstimatedTimeTemplate","estimatedDurationText","getTotalExecutionTimeTemplate","totalExecutionIsOnTime","totalExecutionTime","estimatedDuration","totalExecutionTimeColor","totalExecutionTimeText","getJobStatusColor","colorsJobStatus","getJobStatusColorClass","getJobStatusIcon","getJobStatusTemplate","jobStatusText","cardJobTemplate","startDateFormat","dueDateFormat","getJobStatusTitleColumnsTemplate","count","intlTasks","getJobStatusText","today","getJobLocationTemplate","onJobLocationCheck","getJobLocationInfoTemplate","mapLocationsOptions","hideMarkersByZoom","clusterMarkers","showLocations","setMapPositionToLocationBounds","useRectangleBounds","useSlidingpanelLocationInformation","locationClassIconName","rulerControlOptions","useControl","followingJobsSuccessChangeStatus","propertyChange","successJobs","flush","minsToDurationTimeText","mins","secondsInAHour","timeArray","convertHtmlToText","tempDivElement","innerText","customerIds","customerIdState","getCustomer","getCustomersList","customerStatus","getCustomersListByMembership","getNotAssignedCustomersList","getSelectedCustomer","selectedCustomers","isPartialFetchingListCustomers","isFetchingListCustomers","listGeofencesOnMap","listGeofences","listAsignedGeofences","asignGeofenceToUnit","unasignGeofenceToUnit","getLocationClass","getLocationClassIconName","lc","getLocationClassesList","isFetchingListLocationClasses","haveLocationClassesBeenFetched","DefaultSimpleButton","usersToAdd","isInGroup","locationsCount","workPlansCount","userCount","unitCount","geofenceCount","driverCount","entitiesToAdd","userImage","workPlanName","notifyAdmin","notifyOwner","shape","notifyEmails","driverPhoto","licenseNumber","licenseType","licenseExpireDate","entityId","groupIdState","isFetchingAllEntities","isLeaving","errorFetchingAllEntities","errorLeaving","isFetchingGroup","errorFetchingGroup","groupsPersistedConfig","getGroup","getGroupsList","groupStatus","getUnfilteredSelectedGroup","getAllGroupsList","getSelectedGroup","selectedGroups","isPartialFetchingListGroups","isFetchingListGroups","isFetchingGroupById","configurationId","getConfigurationsList","getConfiguration","startFetchingCategories","completeFetchingCategories","failFetchingCategories","startAddingCategory","completeAddingCategory","failAddingCategory","startEditingCategory","completeEditingCategory","failEditingCategory","oldCategory","startRemovingCategory","completeRemovingCategory","failRemovingCategory","completeFetchingRoutesExecutions","failFetchingRoutesExecutions","startEditRouteExecution","completeEditRouteExecution","failEditRouteExecution","completeChangeToAlternateRoute","failChangeToAlternateRoute","completeAssignUnitRoutesExecutions","failAssignUnitRoutesExecutions","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","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","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","downtime","sendScripts","workplansBulkInsert","isNew","temperatureCatalog","temperatureStadistics","fuelCatalog","fuelReport","fuelStadistics","tirePressureCatalog","obd2Monitor","telemtryUnits","MapGeofenceEdit","useMap","showGeofence","onGeofenceEdit","usePopovers","isMapFullScreen","zoomMapAfterEdit","zoomMapToGeofence","geofenceGeoJSON","WKBtoGeoJSON","geofenceWktString","feature","coordinates","flyToBounds","toBounds","geoJson","getBounds","wkt","geometry","wkx","Geometry","toGeoJSON","geofenceRef","pm","enableLayerDrag","enable","removeLayerBelowMinVertexCount","draggable","openPopup","Circle","GeoJSON","coordsToLatLng","pathOptions","eventHandlers","click","parseGeoJSON","toWkt","getRadius","layer","Popup","Rectangle","coordsToLatLngs","Polygon","paddingBottomRight","paddingTopLeft","maxZoom","animate","getZoom","MapGeofences","useLeafletContext","useMapEvents","moveend","displayGeofences","isSelectedSomething","setIsSelectedSomething","showGeofences","useIsShownGeofence","selectedGeofenceIds","setMapPositionToGeofenceBounds","useSlidingpanelGeofenceInformation","initialShowSlidingPanelGeofenceInformationOpen","initialGeofenceInformationOpenId","editingGeofenceParent","setEditingGeofenceParent","editingGeofenceParentRef","startClusteringAt","resetMapHome","showGeofenceInformationSlidepanel","setShowGeofenceInformationSlidepanel","initialGeofenceId","setInitialGeofenceId","selectedGeofence","setSelectedGeofence","mainGeofence","geofenceActions","coords","flatten","coordinate","fitBounds","latLngBounds","bound","LatLng","initialGeofenceInformation","WrapperMarkerClusterGroup","Fragment","wrapperProps","MarkerClusterGroup","geofencesBounds","setGeofencesBounds","overlaps","onClickGeofence","zIndexOffset","Tooltip","offset","SlidingpanelGeofenceInformation","closeSlidepanel","isSlidepanelOpen","MapLocationEdit","showLocation","onLocationDragend","zoomMapToLocation","ll","markerRef","preventMarkerRemoval","popupRef","Marker","latlng","getLatLng","MapLocations","displayMarkers","useIsShownLocation","selectedLocationIds","initialShowSlidingPanelLocationInformationOpen","initialLocationInformationOpenId","editingLocationParent","setEditingLocationParent","editingLocationParentRef","selectedLocationInTable","zoomLimitSet","spiderfyProps","showLocationInformationSlidepanel","setShowLocationInformationSlidepanel","initialLocationId","setInitialLocationId","selectedLocation","setSelectedLocation","isStartClusteringAtSet","setIsStartClusteringAtSet","loc","initialLocationInformation","markersComponents","setMarkersComponents","newMarkers","riseOnHover","locationClassContent","permanent","fullImageUrl","Media","spiderfyActivated","setSpiderfyActivated","disableClusteringAtZoom","spiderfyOnMaxZoom","spiderfyState","SlidingpanelLocationInformation","MapObjectsBounds","setMapPositionToUnitBounds","setMapPositionToUnitPositionsBounds","setMapPositionToRouteBounds","rerenderMapObjectBounds","s","zoomMapToObjects","encode","factor","output","fromCharCode","flipped","reverse","decode","precision","latitude_change","lat","lng","byte","pow","charCodeAt","fromGeoJSON","geojson","Routing","Google","Class","extend","initialize","travelMode","google","maps","TravelMode","DRIVING","unitSystem","UnitSystem","METRIC","provideRouteAlternatives","directionsService","DirectionsService","Util","_flatten","arrs","concat","_decodePolyline","latlngs","_maneuverToInstructionType","maneuver","waypoints","callback","context","that","directions","geometryOnly","origin","destination","waypoint","stopover","DirectionsStatus","OK","iroute","summary","totalDistance","legs","leg","steps","previousValue","totalTime","indices","indicesSecondary","waypointIndices","nWaypoint","stepsPoints","points","via_waypoints","si","via_waypoint","step_index","sp","step_interpolation","inputWaypoints","actualWaypoints","instructions","exit","RouteItem","formValues","createdLocations","addCheckpoint","editCheckpoint","editPath","deleteCheckpoint","addNewMarkerOnMap","addGoogleLocationToCheckpoint","addLocationToCheckpoint","deleteLocationOfCheckpoint","mouseEnter","setMouseEnter","tooltipAddOpen","setTooltipAddOpen","tooltipEditOpen","setTooltipEditOpen","tooltipEditOpen2","setTooltipEditOpen2","tooltipEditSegmentOpen","setTooltipEditSegmentOpen","dropDownLocations","checkpointName","ListGroupItem","onMouseEnter","onMouseLeave","Row","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","addTo","on","DomEvent","stopPropagation","secondsSegmentStopTime","segmentStopAuthorized","segmentWithoutStopTime","segmentStopTime","secondsSegmentTripMinTime","segmentTripMinTime","secondsSegmentTripMaxTime","segmentTripMaxTime","lastCheckpointsRef","element","updateMarkersOnMap","updatePathsOnMap","centerRoute","geocodeByLatLng","routePlace","formatted_address","radiusFormat","convertMetersToAuthUserDistance2System","addCreatedLocationToCheckpoint","catch","removeLayer","rectangle","chkpt","checkpointsWithLatLng","router","OSRMv1","serviceUrl","simplify","point","segmentDistance","updateDistances","getBoundsZoom","completionTimeByUser","abbreviation","defaultContacts","globalNotificationEmails","globalNotificationFrec","initialFetch","notificationEvents","distances","lastPointLatLngs","routeActions","convertAuthUserSpeedSystemToKilometersPerHour","completionTime","pointDistance","isInteger","stopType","stopMinTime","stopMaxTime","segmentSpeedLimit","inputCheckpoint","setIcon","setBounds","convertAuthUserDistance2SystemToMeters","setLatLngs","latLngs","disable","setStyle","setEditPathInputs","segmentSpeedLimitFormat","segmentDistanceFormat","customTranslation","tooltips","placeMarker","setLang","refreshTooltips","enableDraw","continueDrawing","markerEditable","markerStyle","newLocation","MapRouteEdit","SlidingPaneForm","isInMap","showRoute","createRoute","EditButton","routePermissions","sourceName","targetName","MapRoutes","useIsShownRoute","initialShowSlidingPanelRouteInformationOpen","initialShowSlidingPanelRouteCreateOpen","initialShowSlidingPanelRouteEditOpen","initialRouteInformationOpenId","editingRouteParent","showRouteInformationSlidingPane","setShowRouteInformationSlidingPane","openEditSlidingPane","setOpenEditSlidingPane","initialRouteId","setInitialRouteId","routesBounds","setRoutesBounds","setSelectedRoute","isFetchingCheckpoints","zoomMapToRoutes","intersects","initialRouteInformation","Polyline","SlidingPaneRouteInformation","RulerControl","listenMapControlChanges","container","layerContainer","pmOptions","tooltipTextDraganddelete","tooltipTextResume","tooltipTextAdd","tooltipTextFinish","tooltipTextDelete","tooltipTextMove","measureControlClasses","measureControlLabel","ReactDOMServer","renderToStaticMarkup","clearControlLabel","measureControlTitleOn","measureControlTitleOff","showClearControl","clearControlTitle","showUnitControl","unitControlTitle","metres","landmiles","nauticalmiles","polylineMeasure","addControl","removeControl","ToolbarGeofencesControl","setShowGeofences","newGeofences","setNewGeofencesLayers","newGeofencesLayersRef","isOpenSlidingPaneFormRef","slidingPaneProps","setSlidingPaneProps","slidingPanePropsRef","editingGeofence","setEditingGeofence","editingGeofenceRef","isSatMonitor","REACT_APP_SAT_MONITOR","_shape","initialRadius","editing","bindPopup","customValidation","geofenceAddress","geofenceAddres","setRadius","radioButtons","parentGeofences","subGeofenceWktString","isActivationGeofence","getExtraGeofenceSaveValues","vertexCount","longitude2","latitude2","vertexCsv","geofenceWKT","remove","prevlayers","ImmediateSubAction","Toolbar2","Action","myAction","prototype","addHooks","viewGeofences","toolbarIcon","disableLayerDrag","closePopup","createNewCircleGeofence","createNewRectangleGeofence","createNewPolygonGeofence","cancelGeofence","disableDraw","geofencesOptions","subToolbar","geofencePermissions","GeofencesToolbar","Control","geofencesToolbar","onClickCancelButton","setShowGeofence","ToolbarHomeControl","selectedLayer","layer_id","homeFunction","centerLatLng","getCenter","wrap","homeLayer","setHomeAction","useToolbar","ToolbarLocationsControl","setShowLocations","setNewMarkers","newMarkersRef","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","showUnits","setShowUnits","setSelectedUnit","createNewUnitAction","cancelUnit","unitsOptions","UnitsToolbar","unitsToolbar","libraries","MapProvider","useJsApiLoader","googleMapsApiKey","scriptLoaded","isLoaded","loadError","MapsBasic","mapBaseLayersOptions","homeToolbarOptions","locationsToolbarOptions","geofencesToolbarOptions","routesToolbarOptions","unitsToolbarOptions","trajectoryToolbarOptions","mapLocationsOptionsToolbar","mapLocationEditOptions","mapGeofencesOptionsToolbar","mapGeofencesOptions","mapGeofenceEditOptions","mapRoutesOptionsToolbar","mapUnitsOptionsToolbar","mapUnitsOptions","startRerender","zoom","fetchMapObjects","history","useHistory","setMap","setMapControlChanges","listenMapControlChangesLayers","setMapControlChangesLayers","showTrajectory","setShowTrajectory","activateShowGeofences","setActivateShowGeofences","mapInitialized","setMapInitialized","zoomClusterLimit","setZoomClusterLimit","isClusterLimitSet","setIsClusterLimitSet","setMapBounds","isFetchingLocations","isFetchingGeofences","initialMapCenter","initialZoom","mapPosition","setMapPosition","MQ","mapLocationEditOptionsToolbar","setMapLocationEditOptionsToolbar","mapGeofenceEditOptionsToolbar","setMapGeofenceEditOptionsToolbar","selectedUnit","selectedUnitRef","initialUnitInformationOpenId","fetchMapItemsWithBounds","useCallback","debounce","boundsFilters","handleMapMovement","boundsFilter","getSouthWest","getNorthEast","mapZoomLevel","off","setSpiderfyState","invalidateSize","MapContainer","preferCanvas","whenCreated","leafletMap","MapBaseLayers","useIsShownUnit","MapUnits","useSlidingpanelUnitInformation","ToolbarUnitTrajectoryControl","mapRouteEditOptions","roleId","userNameState","isUpdatingMonitoringUserPassword","getMonitoringUser","getMonitoringUsersList","userStatus","getMonitoringUsersSpecificList","getSelectedMonitoringUser","selectedMonitoringUsers","isFetchingMonitoringUser","isFetchingListMonitoringUsers","isAddingMonitoringUser","isEditingMonitoringUser","isRemovingMonitoringUser","isChangingMonitoringUserPassword","formIdState","removed","oldSectionIndex","sectionsById","useDropDownRows","sectionToCopy","newRows","newQuestions","isRequired","isPrivate","newQuestionA","newAnswers","oldQuestionIndex","oldQuestion","sectionTypeId","sectionRows","questionTypeId","questionName","selectedAnswer","getForm","getFormSections","getFormSectionsList","section","getFormSection","getFormQuestions","getFormQuestionsList","getFormQuestion","getFormsList","organizationFormStatus","getFormsSpecificList","getFormsListByMembership","getSelectedForm","selectedForms","getSections","getSectionOrder","allowOtherOption","getSection","getSelectedResponseDetails","selectedResponses","isFetchingForm","isFetchingListForms","getDriverInformationService","getDriverImagesService","getSensorsForPeople","importDriversService","completeFetchingAssignments","entitiesByDate","entitiesBySchedule","startEditingAssignment","completeEditingAssignment","failEditingAssignment","startRemovingAssignment","completeRemovingAssignment","completeImportingRouteAssignments","failImportingRouteAssignments","getAvailableUsersForGroup","getAvailableLocationsForGroup","getAvailableWorkplansForGroup","getAvailableUnitsForGroup","getAvailableGeofencesForGroup","getAvailableDriversForGroup","verifyUserExistsAndNotInGroup","pinUserGroupIdService","startFetchingSpareParts","completeFetchingSpareParts","failFetchingSpareParts","startAddingSparePart","completeAddingSparePart","failAddingSparePart","startEditingSparePart","completeEditingSparePart","failEditingSparePart","oldSparePart","startRemovingSparePart","completeRemovingSparePart","failRemovingSparePart","SENSOR_MEASURES_FETCH_STARTED","SENSOR_MEASURES_FETCH_COMPLETED","SENSOR_MEASURES_FETCH_FAILED","SENSOR_MEASURES_CLEAR","getAlternateRoutesService","getRouteService","startFetchingWorkmanships","completeFetchingWorkmanships","failFetchingWorkmanships","startAddingWorkmanship","completeAddingWorkmanship","failAddingWorkmanship","startEditingWorkmanship","completeEditingWorkmanship","failEditingWorkmanship","oldWorkmanship","startRemovingWorkmanship","completeRemovingWorkmanship","failRemovingWorkmanship","startFetchingProviders","completeFetchingProviders","failFetchingProviders","startAddingProvider","completeAddingProvider","failAddingProvider","startEditingProvider","completeEditingProvider","failEditingProvider","oldProvider","startRemovingProvider","completeRemovingProvider","failRemovingProvider","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","getConsolidableEvents","getDowntimeReasons","getContactsService","saveLoginextConfigurationService","categoryIdState","getCategoriesList","getCategory","getCategoriesListByMembership","isFetchingListCategories","haveCategoriesBeenFetched","operatorPermissions","operatorList","organizationPermissions","organizationCatalog","divisionPermissions","listDivision","subdivisionPermissions","subdivisionCatalog","serviceClassPermissions","listServiceClass","agentPermissions","agentList","operatorPaths","listOperator","screenId","screens","agentPaths","listAgent","organizationPaths","listOrganization","divisionPaths","subdivisionPaths","listSubdivision","serviceClassPaths","modulePermissions","listModule","modulePaths","simPermissions","listSim","simPaths","sensorPermissions","listSensor","sensorPaths","assetPermissions","assetCatalog","assetPaths","listAsset","vehiclePermissions","listVehicle","vehiclePaths","listShift","listTrigger","listGroup","listDrivers","listPerson","listPeople","listUsers","listCustomers","listCustomer","listContact","listOffices","listOffice","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","unitPermissions","listTrackingUnits","trackingUnits","pointsOfInterest","contractTemplatesPermissions","listTemplate","contractTemplatesPaths","organizationContractPermissions","listContract","organizationContractPaths","quotationPermissions","listQuotation","quotationPaths","listQuotations","contracts","listJobsBacklog","backlog","jobsImport","import","jobsBoard","board","jobsReport","jobsWorkingActivity","workingActivityReport","safedriver","safeDriver","businessPartnersPaths","editPartner","webServiceRates","businessPartners","listProtocol","createProtocol","deleteProtocol","protocolsList","general","apps","operations","administrations","sidebarOptionsCRM","generalCRM","sidebarOptionsMonitoring","generalMonitoringCenter","sidebarOptionsAdmin","generalAdmin","getOptions","optionNav","link","childrenOptions","LOCATION_CLASSES_FETCH_STARTED","LOCATION_CLASSES_FETCH_COMPLETED","LOCATION_CLASSES_FETCH_FAILED","TIME_ZONES_FETCH_STARTED","TIME_ZONES_FETCH_COMPLETED","TIME_ZONES_FETCH_FAILED","CURRENCIES_FETCH_STARTED","CURRENCIES_FETCH_COMPLETED","CURRENCIES_FETCH_FAILED","SENSOR_BRANDS_FETCH_STARTED","SENSOR_BRANDS_FETCH_COMPLETED","SENSOR_BRANDS_FETCH_FAILED","SENSOR_MODELS_FETCH_STARTED","SENSOR_MODELS_FETCH_COMPLETED","SENSOR_MODELS_FETCH_FAILED","PAYMENT_METHODS_FETCH_STARTED","PAYMENT_METHODS_FETCH_COMPLETED","PAYMENT_METHODS_FETCH_FAILED","SwiperCore","Navigation","Pagination","EffectFade","EffectCube","EffectCoverflow","Autoplay","Lazy","Virtual","Thumbs","defaultGalleryParams","effect","spaceBetween","initialSlide","centeredSlides","autoplay","disableOnInteraction","pauseOnMouseEnter","reverseDirection","loop","navigation","pagination","clickable","MediaGallery","isRtl","classNameImg","onSlideChange","useThumbs","classNameThumbs","heightThumbs","lightboxIndex","setLightboxIndex","isLightboxOpen","setIsLightboxOpen","thumbsSwiper","paramsThumbsDefault","slidesPerView","freeMode","watchSlidesVisibility","watchSlidesProgress","onSwiper","galleryOptions","thumbs","swiper","dir","activeIndex","imageId","discourageDownloads","reactModalStyle","overlay","imageTitle","imageCaption","imageDescription","mainSrc","nextSrc","prevSrc","onCloseRequest","onMovePrevRequest","onMoveNextRequest","imagesPath","activeSlideId","workplansAssignments","bySchedule","byDateTime","byScheduleOrder","assignmentIdState","byDateTimeOrder","isFetchingAssignments","errorFetchingAssignments","getWorkplansAssignment","getWorkplansAssignmentsByScheduleListByMembership","getWorkplansAssignmentsByScheduleList","getWorkplansAssignmentsByDateTimeListByMembership","getWorkplansAssignmentsByDateTimeList","isFetchingWorkplansAssignments","uniqueIdentifier","getFuelCalibrationPubSubUrl","sendPubSubFuelCalibrationCommand","ContactsDropdown","extraContacts","contactTypeId","setContactsIn","contactsIn","setNewContact","closeSlidingPaneAddEditContact","prependcomponentFun","appendcomponentFun","defaultJobTitle","changeSelectedContacts","addEditContactSlideOpen","openAddEditContactSlide","newContact","changeNewContact","selectAndEditContact","ContactSelectors","userContactsEmails","useGetOperatorContacts","areFetchingOperatorContacts","isFetchingOperatorContacts","operatorPublicContacts","useGetContacts","organizationPublicContacts","areFetchingOrganizationContacts","formatContactsForDropdown","contactsToShow","userContacts","OrganizationContacts","usedEmails","filteredContacts","addNotIncludedContacts","filterContactByAcces","contactsToAdd","defaultContact","contactToAdd","selectedContact","setSelectedContact","prevContacts","newContactData","string","selectedValues","operatorContact","organizationContact","userContact","isSelectedOnCreate","isEditingFromMulti","onSave","editedContactData","assetIds","assetIdState","validIdentifier","validSecuritySealCode","getAsset","getAssetsList","assetStatus","getAssetListByMembership","getSelectedAsset","selectedAssets","isValidIdentifier","isValidSecuritySealCode","isPartialFetchingListAssets","isFetchingListAssets","simIds","simIdState","isFetchingSim","getSim","getSimsList","simCardStatus","getSelectedSim","selectedSims","isAddingSim","isEditingSim","isRemovingSim","isFetchingSimById","getCpGeofence","getUnitGeofences","getUnitGeofenceInfo","getAssignments","getUnassignedEntities","CustomersDropdown","appendAddCustomer","enableSelectLocation","customerSelectors","isOpenShiftPane","setOpenShiftPane","selectedCustomer","setSelectedCustomer","id_dropdwon","customerName","closeSlidingPaneAddEditCustomer","startFetchingRouteCheckpoints","completeFetchingRouteCheckpoints","failFetchingRouteCheckpoints","sensorIds","calibrationState","sensorIdState","getSensor","getSensorsList","sensorStatus","getSensorsListByMembership","getSelectedSensor","selectedSensors","addEmailNotification","removeEmailNotification","addConsoleNotification","removeConsoleNotification","addWebServiceNotification","removeWebServiceNotification","removeJobBacklog","listAsignedJobsBacklog","asignJobBacklogToUnit","listOwnLocations","addLocations","editLocations","assignLocations","listLocationImages","addLocationImages","removeLocationImages","completeFetchingJobsBoard","failFetchingJobsBoard","completeChangeStatusJobsBoard","failChangeStatusJobsBoard","completeFetchingBookmarks","startFetchingBookmarks","failFetchingBookmarks","updateBookmarkedStarted","updateBookmarkedCompleted","updateBookmarkedFailed","handleSearchQuery","val","startFetchingComments","completeFetchingComments","startAddingComment","startRemovingComment","meta","touched","initial","opt","app","appName","appLogoImage","appLogo","skin","routerTransition","footer","customizer","REACT_APP_CUSTOMIZER","scrollTop","availabilityUserNameService","getRoles","getPermissionGroups","getRolePermissionGroups","getScreens","updateUserStatus","getUsersListByFiltersService","getUserByAutoComplete","vehicleIds","vehicleIdState","getVehicle","getVehiclesList","vehicleStatus","getVehiclesListByMembership","isLicenseValid","getSelectedVehicle","selectedVehicles","isPartialFetchingListVehicles","isFetchingListVehicles","isFetchingExecution","isManualTransitExecution","isChangingExecutionUnit","errorFetchingExecution","errorChangingExecutionUnit","getWorkplansExecution","workplansExecutionsLocations","workplansExecutionsLocationsSelectors","workplansExecutionsGeofences","workGeofenceArea","executionStatusLabel","executionStatusLabelInfo","progress","visited","progressLabel","pending","sequenceCompliance","sequenceCountValid","sequenceCountInvalid","sequenceCountPending","allById","allOrder","isFetchingVisits","isFetchingAllVisits","errorFetchingVisits","errorFetchingAllVisits","workplansReport","locationsById","workplansComments","workplanIdState","isFetchingLocationsList","isAssigningGeofence","errorFetchingLocationsList","errorAssigningGeofence","workplansPersistConfig","getWorkplan","estimatedTotalDistance","hasAutogeneratedGeofence","getWorkplansList","workplanStatus","getWorkplansListByMembership","getSelectedWorkplan","selectedWorkplans","isPartialFetchingListWorkplans","isFetchingListWorkplans","isFetchingLocationsListWorkplans","workplansSelectorsExecutions","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","routeEdit","deleteSchedule","contractIdState","getOrganizationContract","getOrganizationContractsList","getSelectedOrganizationContract","selectedOrganizationContracts","isPartialFetchingListOrganizationContracts","isFetchingListOrganizationContracts","templateIdState","getContractTemplate","getContractTemplatesList","getSelectedContractTemplate","selectedContractTemplates","isPartialFetchingListContractTemplates","isFetchingListContractTemplates","OfficesDropdown","appendAddOffice","isMainOffice","selectedOffice","setSelectedOffice","UncontrolledTooltip","SlidingPaneEditOffice","closeSlidingPaneEditOffice","mapHomeCenter","customerId1","initialLatitude","initialLongitude","initialLocationClassIconName","setLatitude","setLongitude","updateEditingLocation","locationClassesSelectors","closeSlidingPaneFunction","LocationClassesDropdownInput","customerId2","workplanEdit","getDeviceAction","deviceMetricId","getDeviceMetric","getImage","reportId","getReport","startFetchingLocationClasses","completeFetchingLocationClasses","failFetchingLocationClasses","createPathComponent","ctx","_c","clusterProps","spiderLegPolylineOptions","pmIgnore","weight","opacity","removeOutsideVisibleBounds","chunkedLoading","iconCreateFunction","cluster","childCount","getChildCount","DivIcon","Point","clusterEvents","entries","propName","prop","markerClusterGroup","clearLayers","eventAsProp","clusterEvent","Children","isValidElement","leaflet","mapLayer","addLayer","instance","startFetchingJob","completeFetchingJob","failFetchingJob","ColorPicker","displayColorPicker","setDisplayColorPicker","reactCSS","margin","borderRadius","background","swatch","padding","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","UnitsDropdown","ScheduleDropdown","showScheduleInformation","NoticeTypeDropdownInput","CategoriesDropdownInput","ThemeDropdown","importCustomersService","RadioButtonsInput","radioButton","boolean","maintenanceLineIds","maintenanceLineIdState","getMaintenanceLine","getMaintenanceLinesList","maintenanceLineStatus","getMaintenanceLinesListByMembership","MaintenanceLinesByOdometer","maintenanceNoticeTypeId","getSelectedMaintenanceLine","selectedMaintenanceLines","isPartialFetchingListMaintenanceLines","isFetchingListMaintenanceLines","moduleIdState","dirty","getModule","getModulesList","device","deviceStatus","getSelectedModule","selectedModules","isFetchingModule","isAddingModule","isEditingModule","isRemovingModule","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","getSimsListDropdownService","importSIMsService","getSimsListByFiltersService","updateSimStatusService","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","completeFetchingJobsReport","entitiesByUser","orderByUser","failFetchingJobsReport","fillForm","listAllUserAnswersForm","routeCommentIdState","isFetchingComments","errorFetchingComments","getRoutesComment","routeCheckpointId","typesRoutes","getRouteCheckpointsList","getRouteCheckpoint","getRouteCheckpointsListByRoute","getFetchingListRouteCheckpointsErrors","ButtonIconDropdown","iconSelected","buttonIcons","iconFixed","onlyIconDropDown","tooltipPlacement","setIsOpen","tooltipOptionsOpen","setTooltipOptionsOpen","activeIcon","setActiveIcon","renderIconItem","buttonIcon","DropdownItem","tooltipmessage","prevState","toggleTooltip","ButtonDropdown","DropdownToggle","caret","DropdownMenu","ButtonTypes","SlidingPaneManualHourmeterAdjustment","handleAction","useWebtrackServiceOnAction","newHourMeter","newHourmeter","ManualHourmeterAdjustment","buttonType","useBoolean","setTrue","setFalse","useGetUnitAssets","setAssets","setIsFetching","SlidingPaneShareUnitLocation","isSlidingPaneOpen","isLinkCreated","setIsLinkCreated","durations","clipboard","writeText","receivers","durationId","RotatedMarker","rotationAngle","rotationOrigin","setRotationAngle","setRotationOrigin","SlidingPaneUnitHistoricalPositionsReport","columnInfo","borderStyle","borderColor","getArrowImage","showHistoricalPositions","setMapPositionToPositionsBounds","changeSetMapPositionToUnitsBounds","extraColumns","defaultMetricName","defaultMetricUnit","formatToTwoDecimals","ignitionValue","hasIgnitionInput","fetchInterval","changeSize","viewTable","changeViewTable","search","setSearch","changeRerender","historicalPositionsOnMapBounds","setHistoricalPositionsOnMapBounds","dropDownUnit","displayObjects","cleanup","clearInterval","zoomMapToPositions","selectedPositionId","consoleEvents","showUnitHistoryMarkers","groupPositionsIntoPraked","showUnitHistoryParkedMarkers","showUnitHeatMap","useInterval","setInterval","reportDataSource","dataSets","orderBy","headingArrows","ignition","isIgnitionOn","distanceAllPositions","showUnitHistoryOnlyNormalPositionsMarkers","lineWidth","showUnitHistoryConsoleEventMarkers","ReportViewerButton","channelName","useEmbbededChannel","reportPath","saveUnitImage","deleteUnitImage","SlidingPaneUnitImages","addImageInitial","isLoadingUnitImages","setIsLoadingUnitImages","activeSlideImage","setActiveSlideImage","addImage","setAddImage","imageUrl","setUploadImage","saveUnitImageAsync","defaultImageValues","unitImageSave","imageTypeId","isDefault","deleteUnitImageAsync","unitImageDelete","slideId","Form","ImageUploader","cropShape","showGrid","aspect","onSuccessChangeFunction","onFailureChangeFunction","otherValues","onChangeImage","functionAfterUpload","filesPath","submitting","useGetUnitScripts","scriptsChats","setData","isFetchingScripts","useInsertUnitScript","execute","submittingSave","SlidingPaneUnitSendScripts","closeSlidingPaneSendScripts","useRerender","authUserId","newScript","fetchScriptsInterval","containerRef","firstLoad","setFirstLoad","executeSave","setExecuteSave","scriptToSave","setScriptToSave","secondary","REACT_APP_SECONDARY_COLOR","getScriptStatus","getStatusStyles","Badge","scrollHeight","sentDate","scriptDate","isProcessed","scriptTypeDescription","deviceActionDescription","Divider","scriptText","UnitFuel","measureId","measureTypeId","metricDescription","pathname","measurementUnitId","numberValue","UnitTemperature","showHistTemperature","setShowHistTemperature","showTable","setShowTable","isOpenDateRangeForm","setIsOpenDateRangeForm","isOpenSensorForm","setIsOpenSensorForm","setSensorId","setMeasureId","controlSensor","watchSensor","defaultValues","useGetUnitTemperatureHistory","formValuesSensor","formValuesDateRange","Dropdown","isDefaultPrevented","measurementUnitName","ControlChart","metricValue","upperLimit","lowerLimit","titleTooltip","bulletRadius","maxValue","minValue","SlidingPaneUnitInformation","setIsTrajectoryDisable","isFollowUnitPositionEnabled","setIsFollowUnitPositionEnabled","handleRecenterMapPosition","fetchInformationInterval","showAddImageSlidingPane","setShowAddImageSlidingPane","showHistPositionsReportSlidingPane","setShowHistPositionsReportSlidingPane","downtimeBinnacleSlideOpen","openDowntimeBinnacleSlide","showShareUnitLocationSlidingPane","setShowShareUnitLocationSlidingPane","showSendScriptsSlidingPane","setShowSendScriptsSlidingPane","showChangeStatusSlidingPane","setShowChangeStatusPane","showUnitImagesSlidingPane","setShowUnitImagesSlidingPane","previewDriverImagesSlideOpen","openPreviewDriverImagesSlide","entityBinnacleSlideOpen","openEntityBinnacleSlide","isFetchingUnitData","setIsFetchingUnitData","isOpenModal","setIsOpenModal","shareWhatsAppLink","appMapEmbedLink","setAppMapEmbedLink","closeModal","copyLocationLinkToClipboard","intlLastEvent","userPermissions","permissionState","ViewMetricsMonitor","showACCState","showAppVersion","showBackupBattery","showBattery","showCellNumber","showCoverTamperState","showDoorState","showGSMSignalLevel","showICCID","showIsCharging","showMainVoltage","showMCC","showMNC","showPadlockAuthorizationType","showPadlockState","showPLMN","showSatellites","showTrailerID","showDriverID","showSolarVolage","showSimInformation","showDeviceInformation","showVehicleInformation","showAssetInformation","currentStatus","battery","useInActive","useInPeople","hidden","mainVoltage","sizeIcon","useInVehicles","isCharging","customChartTooltip","isSelectable","solarVoltage","backupBattery","doorState","coverTamperState","padlockState","padlockAuthorizationType","satellites","linealChart","gsmSignalLevel","plmn","mcc","mnc","cellNumber","trailerId","appVersion","useInAppCollapse","informationType","simCellularNumber","cellularProviderName","serialNumber","deviceImei","devicePropertyTypeId","vehicleMakerName","vehicleModelName","chasis","motor","availableIndicators","unitTypeId","indicator","unitIndicators","unitAssetInformation","assetTypeId","assetData","followPositionButtonState","setFollowPositionButtonState","copyLatLong","wazeLink","whatsappLink","encodeURIComponent","googleMapsLink","useGoogleMaps","isEmpty","driverPhoneNumber","driverTotalFiles","lastCommunicationDate","ManualOdometerAdjustment","privateCode2","requireUserConfirmation","requireParameters","param","inputType","deviceActionParameterId","parameterName","parameterComments","doAction","driverBloodType","driverLicenseNumber","driverLicenseType","driverLicenseExpireDate","driverUseGlasses","driverBloodSugarProblems","SlidingPaneStartUnitDowntime","SlidingPaneDowntimeBinnacle","closeSlidingPaneDowntimeBinnacle","SlidingPanePreviewDriverImages","closeSlidingPanePreviewDriverImages","SlidingPaneEntityBinnacle","entityName","closeSlidingPaneEntityBinnacle","Modal","centered","ModalHeader","overflow","href","rel","allowFullScreen","ModalFooter","useLocation","selectedUnitIds","useSlidingPaneUnitInformation","usePermanentPopover","initialShowSlidingPanelUnitInformationOpen","trackUnitNewWindowActive","selectedUnitState","fetchPositionInterval","showUnitInformationSlidingPane","setShowUnitInformationSlidingPane","setMapPositionToUnitsBounds","zoomMapToUnit","firstUnit","initialUnitInformation","trayectoryPolyline","setTrayectoryPolyline","trajectoryPositions","setTrajectoryPositions","trajectoryParkedPositionsMarkers","setTrajectoryParkedPositionsMarkers","isTrajectoryDisable","trayectoryFetched","setTrayectoryFetched","sort","antPolyline","antPath","dashArray","pulseColor","hardwareAccelerated","prevPositions","alias","l","isVisible","isDataReady","isTextButton","buttonClicked","setButtonClicked","channel","BroadcastChannel","isReportViewerOpen","setIsReportViewerOpen","isActive","isReportOpen","postReportData","infoHeader","tableHeaderColor","audit","partnerLogo","ds","datasets","postMessage","reportDetail","TabsContent","Card","CardBody","TabContent","tabContent","TabPane","vertical","checkbox","align","Tabs","toggleTab","TabsCardContent","paddingLeft","dependencies","setRerender","setValue","SlidingPaneEditFileName","closeSlidingPaneEditFileName","isImg","editFileName","CardImg","fileId","onSubmit","breakpoints","700","FileGallery","FilePreview","onClickImage","deleteFile","editFileNameSlideOpen","openEditFileNameSlide","objectFit","marginBottom","paddingTop","paddingBottom","textOverflow","wordWrap","maxHeight","usePartialMembership","startFetchingCurrencies","completeFetchingCurrencies","failFetchingCurrencies","additionalActions","additionalOnError","setResponse","setError","res","newRes","es","alertsEs","oldEs","vehicleFueli18n","workplansi18n","routesi18n","fileUploadi18n","mapi18n","operatorsi18n","organizationsi18n","divisionsi18n","subdivisionsi18n","agentsi18n","serviceClassesi18n","modulesi18n","vehiclesi18n","assetsi18n","usersi18n","simsi18n","locationi18n","driveri18n","sensorsi18n","unitsi18n","schedulesi18n","vehicleMaintenancei18n","maintenanceLinesi18n","paymentMethodsi18n","formsi18n","geofencesi18n","jobsi18n","safeDriveri18n","dashboardi18n","trackingUnitsi18n","reportsi18n","peoplei18n","notificationsi18n","telemetryi18n","operationsi18n","groupsi18n","consolei18n","contractsi18n","customersi18n","entitiesi18n","contractTemplatesi18n","quotationsi18n","officesi18n","optimizationsi18n","businessPartneri18n","protocolsi18n","newObj","replaceUnit","en","alertsEn","oldEn","notificationi18n","menuMessages","messagesEs","userMessagesEs","messagesEn","userMessagesEn","Context","createContext","IntlProviderWrapper","localStorageLang","messages","setMessages","loadCldr","numberingSystems","gregorian","numbers","timeZoneNames","weekData","messageEsGrid","messageEsDateTimePicker","Provider","switchLanguage","lang","defaultLocale","startFetchingTimeZones","completeFetchingTimeZones","failFetchingTimeZones","getBrandsList","getBrand","isFetchingListBrands","haveBrandsBeenFetched","countryId","countryIds","getCountriesList","getCountry","isFetchingListCountries","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","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","webpackContext","req","webpackContextResolve","__webpack_require__","exports","trackingUnitsCreate","trackingUnitsEdit","trackingUnitsDelete","viewUnitMap","readDowntimeReasons","addDowntimeReasons","editDowntimeReasons","removeDowntimeReasons","changeToInactive","changeToPlaced","changeToActivated","changeToRemoved","changeToCanceled","cellularProvider","getFuelTanksAndSealTypes","getVehiclesListDropdownService","getBrandsAndModelsService","saveBrandService","saveModelService","deleteBrandService","deleteModelService","importVehiclesService","getRouteExecutionsReportService","getRouteExecutionService","getRouteExecutionsMonitorService","getRouteReportService","shareRouteExecutionService","manualTransitRouteExecutionService","startRouteExecutionService","setIsExecutingAction","newRouteStatus","pauseRouteExecutionService","finalizeRouteExecutionService","completeRouteExecutionService","cancelRouteExecutionService","removeRouteExecutionService","getUnitsAssetsService","getAvailableSensorsService","getFuelTanksService","getAssetsTemperatureAreas","getAssetTypes","pinActive","setPin","pills","tab","IconTag","IconFeather","active","checkboxComponent","usePin","getModulesDropdown","importModulesService","updateModuleStatusService","getModulesListByFiltersService","saveWorkplanAssignmentByScheduleService","saveWorkplanAssignmentByDateTimeService","geofencesAssign","operatorAdd","operatorEdit","operatorDelete","organizationAdd","organizationEdit","organizationDelete","agentAdd","agentEdit","agentDelete","deleteDivision","subdivisionAdd","subdivisionEdit","subdivisionDelete","editForms","reportForms","reportAnswerForms","addOptimizations","editOptimizations","deleteOptimizations","forceUseMapquestMaps","forceUseGoogleMaps","forceUseHereMaps","forceUseBingMaps","mapquestConsumerKey","osmmap","gmRoadmap","gmHybrid","gmSatellite","gmTerrain","gmTraffic","bing","bing_satelite","bing_hibrido","here_layer","here_satelite_layer","mqOsm","mqHybrid","mqSatellite","mqDark","mqLight","useMapquestMaps","useBingMaps","useHereMaps","baseMapLayers","OpenStreetMap","TileLayer","attribution","hybridLayer","satelliteLayer","darkLayer","lightLayer","gridLayer","googleMutant","addGoogleLayer","bing_api_key","bingMapsApiKey","BingLayer","hereMapsAppId","hereMapsAppCode","tileLayer","app_id","app_code","layerGroup","Layers","TableTimePicker","getValue","strictMode","enabled","floatLabelType","toDate","TrajectoryToolbar","trajectoryToolbar","postion","startFetchingPaymentMethods","completeFetchingPaymentMethods","failFetchingPaymentMethods","AppCollapse","accordion","titleKey","contentKey","blockContent","borderCard","defaultActive","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","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","appendAddSchedule","showFrequency","showExecution","filterValidNextRun","selector","hasPermission","selectedSchedule","unfilteredSchedules","closeShiftPane","closeSchedulePane","isOpenTriggerPane","am4core","am4themes_animated","dataColor","axisRanges","fillOpacity","showFullChart","customColorTooltip","domRefId","tensionX","chart","chartIsReady","setChartIsReady","useLayoutEffect","dispose","am4charts","preloader","dateAxis","xAxes","dateFormats","setKey","tooltipDateFormat","baseInterval","timeUnit","valueAxis1","yAxes","stroke","strokeWidth","strokeOpacity","strokeDasharray","inside","fill","verticalCenter","rangeAR","series1","dataFields","valueY","dateX","bullet","bullets","series2","bullet2","series3","bullet3","circle","propertyFields","yAxis","getFillFromObject","events","tooltipDataItem","dataContext","legend","scrollbarX","bottomAxesContainer","reportMileage","reportHourMeters","reportHourOpportunityCharge","reportRunningTime","reportByUnitStopSummary","reportByUnitScriptsHistory","reportConsolidatedStopSummary","reportConsolidatedUnitActivity","reportConsolidatedEventActivity","reportParkedGeofence","reportScheduledReports","reportSystemCommunicationsDiag","reportSystemNotifications","reportSystemApiConsumption","reportConsolidatedSummary","reportSystemUserHistory","valueSec","onBlurInput","timeZoneId","getTimeZone","getTimeZonesList","isFetchingListTimeZones","haveTimezonesBeenFetched","resetDropdown","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","targetRange","getSelection","newContentState","Modifier","insertText","moveSelectionToEnd","insertWildcardKey","wrapperStyle","toolbarStyle","editorStyle","localization","onEditorStateChange","newEditorState","preserveSelectionOnBlur","useGetDriverImages","update","driverImages","isFetchingDriverImages","responseSparePart","newSparePart","confirmedSparePart","sparePartIdState","getSparePart","getSparePartsList","getSparePartsListByMembership","haveSparePartsBeenFetched","useGetDowntimeBinnacle","downtimeBinnacle","isFetchingDowntimeBinnacle","binnacle","initialDateRange","setIsReportOpen","currentDate","startDateRange","endDateRange","editContract","listContractVersions","consolidateContract","organizationFormTypeId","selectFirst","formSelectors","isSelectedFirst","setIsSelectedFirst","workmanshipIdState","getWorkmanship","getWorkmanshipsListByMembership","haveWorkmanshipsBeenFetched","deleteSensor","measurementHistory","locationSensor","viewCalibrationTable","addUser","editUser","removeUser","changePasswordUser","loadRolesPermissions","editUserPermissions","loadUserPermissions","suspendUser","reactivateUser","role1000","role1001","role1002","role1003","role1005","role1009","role1012","role1015","role1016","role1020","role1023","customerAccessLevel","divisionAccessLevel","organizationAccessLevel","systemAccessLevel","agentAccessLevel","operatorAccessLevel","gpsAccessLevel","SlidingPaneAddEditContact","contactSelectors","initialValues","initialValuesRedux","reduxContacts","contactStatus","unfilteredContacts","pattern","phoneNumber","birthDate","identification","nacionality","homeAddress","isShared","contactIdAux","createContact","contactIn","getOperatorContactsService","getOperatorStandardPricesService","priorities","variant","executeGetDriverImages","setExecuteGetDriverImages","fileTitle","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","reactivateModule","reactivateSim","assetAdd","assetEdit","assetDelete","editDrivers","editPeople","editUsers","assignUnitsToUser","rolesPermissionsUsers","addCustomers","editCustomers","removeCustomers","editOptimization","editQuotations","followUpQuotations","webPageQuotations","sendingDiscountQuotations","jobTypes","jobType","GeofencesDropdownInput","subGeofence","AbilityContext","createContextualCan","Consumer","insertBinnacleCommentService","useGetBinnacle","binnacleList","isFetchingBinnacle","getBinnacleService","auditBinnacle","fullBinnacleSorted","AuditDate","useInsertBinnacleComment","newComment","updateBinnacle","setUpdateBinnacle","valuesToSave","setValuesToSave","getBinnacleType","binnacleType","binnacleCategoryId","resolveEntityIntlLookUp","i18nLookup","resolveUnitsIntlLookUp","formatBinnacleLog","binnacleLog","i18NLookup","i18nDescription","i18NDescription","binnacleComment","resolveEntityIntlDescription","CardText","massAssignment","addPerson","editPerson","removePerson","sensorConfiguration","addOffices","editOffices","removeOffices","addContract","deleteContract","addTemplate","deleteTemplate","listQuote","editQuote","addQuote","deleteQuote","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","createOffice","GoogleLocationsDropdownInput","userCountryCode","countryCode","countrySelectors","userCountriesIds","setGoogleLocation","getLatLngFromGoogle","geocodeByAddress","onChangeFinalGoogleLocation","place_id","REACT_APP_GOOGLE_ICON","selectProps","loadingMessage","autocompletionRequest","componentRestrictions","noticeTypeOptions","noticeTypeId2","noticeTypeName","DropdownNotices","noticeType","DropDownCategories","Categorieselectors","categoryActions","connect","frequency","oneTimeDate","plus","oneTimeTime","local","recurrenceRange","sunday","utility","monday","tuesday","wednesday","thursday","friday","saturday","monthlyDay","frequencyDaily","frequencyWeekly","frequencyMonthly","frequencyDailyInterval","frequencyWeeklyInterval","isMonthlyRelative","relativeMonth","weekDaysList","frequencyDayType","stateProps","dispatchProps","ownProps","innerSelected","changeInnerSelected","shiftDays","setShiftDays","currentSchedule","scheduleShifts","daysToAdd","validDays","newDay","currentDay","newDayStartTime","newDayEndTime","currentDayStartTime","currentDayEndTime","errorDays","totalDays","shiftDay","startime","scheduleActions","saveShift","getScheduleTypes","getFrequency","getRelativeMonth","getWeekDaysList","getWeeklyFrequency","schedulePrivateCode","frequencyMonthlyInterval","noEndDate","selectedScheduleType","selectedFrequency","toISODate","toISOTime","valuesToDispatch","add","saveTrigger","themes","setThemes","fixedThemes","getExecution","setDowntime","useGetDowntimeReasons","downtimeReasons","isFetchingDowntimeReasons","mainStates","subMainStateId","temperatureHistory","paymentMethodId","getPaymentMethod","getPaymentMethodsList","isFetchingListPaymentMethods","havePaymentMethodsBeenFetched","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","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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I+3I,EAAca,UAAU54I,IAAI/I,SAAS+2H,EAAUhuH,IACtE,MAAQxH,EACRw1H,EAAUhuH,KAAO+3I,EAAcW,SAAS14I,GACxC,MAAQm5I,EACRnrB,EAAUhuH,KAAO+3I,EAAcK,QAAQp4I,GACvC,GACA+qB,EACA,MAAQquH,EACR,KAEOC,EAAc,SAACrsB,GAC1B,OAAQA,GACN,KAAK,EACH,MAAO,SACT,KAAK,EACH,MAAO,MACT,KAAK,EACH,MAAO,QACT,KAAK,EACH,MAAO,cACT,KAAK,EACH,MAAO,SACT,KAAK,EACH,MAAO,MAET,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,iBACT,KAAK,EACH,MAAO,QACT,KAAK,EACH,MAAO,SACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,MACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,cACT,KAAK,GACH,MAAO,QACT,KAAK,GACH,MAAO,OACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,SACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,SACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,cACT,KAAK,GACH,MAAO,cACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,gBACT,KAAK,GACH,MAAO,OACT,KAAK,IACH,MAAO,UAEX,MAAO,WAGIssB,EAAoB,SAACnvH,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,iBAC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","file":"static/js/main.3eef1eb0.chunk.js","sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Reducer Auth */\n/* -------------------------------------------------------------------------- */\n// Este reducer contiene toda la informaciĆ³n del usuario en sesiĆ³n.\n\nimport jwtDecode from 'jwt-decode';\nimport { combineReducers } from 'redux';\nimport camelcaseKeys from 'camelcase-keys';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as types from '../../types/auth';\nimport { tsNullKeyword } from '@babel/types';\n\nconst token = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return action.payload.token;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return action.payload.newToken;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return action.payload.tokenRefreshFailCount && tokenRefreshFailCount >= 2 ? null : state;\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst tokenRefreshFailCount = (state = null, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_COMPLETED: {\n return 0;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return state + 1;\n }\n default: {\n return state;\n }\n }\n};\n\nconst user = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return camelcaseKeys(jwtDecode(action.payload.token));\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return camelcaseKeys(jwtDecode(action.payload.newToken));\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED:\n return { ...state, ...action.payload };\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED:\n return { ...state, ...action.payload };\n case types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED: {\n const mapOptions = { ...action.payload };\n console.log({ mapOptions });\n\n return {\n ...state,\n enableLocationClustering: mapOptions.enableLocationClustering ? 1 : 0,\n locationMapLabelAlwaysOn: mapOptions.locationMapLabelAlwaysOn ? 1 : 0,\n activateUnitTrackMode: mapOptions.activateUnitTrackMode ? 1 : 0,\n unitMapLabelAlwaysOn: mapOptions.unitMapLabelAlwaysOn ? 1 : 0,\n unitsLabelContent: mapOptions.unitsLabelContent,\n zoomLevelToStartClustering: mapOptions.zoomLevelToStartClustering\n };\n }\n\n case types.PROFILE_UPDATE_PICTURE_COMPLETED: {\n const newImage = { ...action.payload };\n return {\n ...state,\n imageName: newImage.imageName,\n userImageUrl: newImage.userImageUrl\n };\n }\n\n case types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED: {\n const homeScreenId = action.payload;\n return {\n ...state,\n homeScreenId: homeScreenId\n };\n }\n\n case types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED: {\n const mapEntitiesFilterTab = action.payload;\n return {\n ...state,\n mapEntitiesFilterTab: mapEntitiesFilterTab\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst membership = (state = {}, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.AUTHENTICATION_SET_MEMBERSHIP: {\n const membership = action.payload;\n return membership;\n }\n default: {\n return state;\n }\n }\n};\n\nconst navigationOptions = (state = { productId: 1 }, action) => {\n switch (action.type) {\n case types.PROFILE_CHANGE_PRODUCT_COMPLETED: {\n const productId = action.payload;\n return {\n ...state,\n productId\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst isAuthenticating = (state = false, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return true;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return false;\n }\n case types.AUTHENTICATION_FAILED: {\n return false;\n }\n case types.AUTHENTICATION_USER_INFORMATION_STARTED: {\n return true;\n }\n case types.AUTHENTICATION_USER_INFORMATION_COMPLETED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfileGeneralInformation = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED: {\n return true;\n }\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED:\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingMapSettingsConfiguration = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED: {\n return true;\n }\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED:\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfileMapOptions = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_MAP_OPTIONS_STARTED: {\n return true;\n }\n\n case types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED:\n case types.PROFILE_UPDATE_MAP_OPTIONS_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfilePassword = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_PASSWORD_STARTED: {\n return true;\n }\n\n case types.PROFILE_UPDATE_PASSWORD_COMPLETED:\n case types.PROFILE_UPDATE_PASSWORD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRefreshing = (state = false, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_STARTED: {\n return true;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return false;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst refreshingError = (state = null, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_STARTED: {\n return null;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return null;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return action.payload.error;\n }\n default: {\n return state;\n }\n }\n};\n\nconst error = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return null;\n }\n case types.AUTHENTICATION_FAILED_CLEAR: {\n return null;\n }\n case types.AUTHENTICATION_FAILED: {\n return action.payload.error;\n }\n default: {\n return state;\n }\n }\n};\n\nconst 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\nexport const getAuthUserCountryIdsForGoogleSearch = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.countriesForGoogleSearch\n ? getOwnState(state).user.countriesForGoogleSearch\n : null\n : null;\n\nexport const getAuthUserMapEntitiesFilterTab = (state) =>\n getOwnState(state).user ? Number(getOwnState(state).user.mapEntitiesFilterTab) : null;\n\nexport const getAuthUserMapGroupIdActive = (state) =>\n getOwnState(state).user ? getOwnState(state).user.mapGroupIdActive : null;\n\n/**\n * Get auth user map center\n * @param {*} state State from Redux\n * @returns {LatLngExpression}\n */\nexport const getAuthUserMapHomeCenter = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.homeLatitude && getOwnState(state).user.homeLongitude\n ? [getOwnState(state).user.homeLatitude, getOwnState(state).user.homeLongitude]\n : [14.62, -90.53]\n : [14.62, -90.53];\nexport const getAuthUserMapHomeZoom = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.homeZoom\n ? getOwnState(state).user.homeZoom\n : 12\n : 12;\nexport const isAuthenticated = (state) => getAuthToken(state) != null;\nexport const getAuthUserPermissions = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user?.permissions == ''\n ? []\n : getOwnState(state).user?.permissions.split(',')\n : [];\n\nexport const getAuthUserOrganizationId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.organizationId\n ? getOwnState(state).user.organizationId\n : null\n : null;\n\nexport const getAuthUserDivisionId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.divisionId\n ? getOwnState(state).user.divisionId\n : null\n : null;\n\nexport const getAuthUserSubdivisionId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.subdivisionId\n ? getOwnState(state).user.subdivisionId\n : null\n : null;\n\nexport const getAuthUserAccessLevelId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.accessLevelId\n ? getOwnState(state).user.accessLevelId\n : null\n : null;\n\nexport const getAuthUserHomeScreenId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user?.homeScreenId\n ? parseInt(getOwnState(state).user?.homeScreenId)\n : null\n : null;\n\nexport const getNavigationProduct = (state) =>\n getOwnState(state).navigationOptions\n ? getOwnState(state).navigationOptions?.productId\n ? parseInt(getOwnState(state).navigationOptions?.productId)\n : null\n : null;\n\nexport const getAuthUserMembershipFilters = (state, { filterOperatorId, filterOrganizationId }) => {\n const {\n accessLevelId,\n operatorId: userOperatorId,\n organizationId: userOrganizationId\n } = getAuthUserForMembership(state);\n\n if ([9, 11, 13, 15].includes(parseInt(accessLevelId))) {\n if (filterOperatorId && !filterOrganizationId)\n return {\n operatorId: filterOperatorId,\n organizationId: null\n };\n else if (!filterOperatorId && filterOrganizationId)\n return {\n operatorId: organizationSelectors.getOrganization(state, filterOrganizationId)?.operatorId,\n organizationId: filterOrganizationId\n };\n else if (!filterOperatorId && !filterOrganizationId) {\n return {\n //NOTA: Anteriormente se tenia los valores quemados del usuario\n operatorId: null,\n organizationId: null\n };\n } else\n return {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n };\n } else\n return {\n allowNullOrganizationId: true,\n operatorId: null,\n organizationId: null\n };\n};\n\nexport const getAuthUserOperatorId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.operatorId\n ? getOwnState(state).user.operatorId\n : null\n : null;\nexport const getAuthUserHasPermissionsAny = (state, permissions = []) =>\n permissions.some((userPer) => getAuthUserPermissions(state).includes(userPer));\n\nexport const getAuthUserHasPermissionByAccessLevels = (state, accessLevels = []) =>\n accessLevels.includes(parseInt(getAuthUser(state).accessLevelId));\n\nexport const isAuthUserSystemOrOperator = (state) =>\n [9, 13, 15].includes(parseInt(getAuthUser(state).accessLevelId));\n\nexport const getAuthUserHasPermissionsEvery = (state, permissions = []) =>\n permissions.every((userPer) => getAuthUserPermissions(state).includes(userPer));\n\n//Systems\n// -------------------------------------------------------------------\n// | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n// -------------------------------------------------------------------\n// | distance | km | km | mi |\n// | capacity | gal | lt | gal |\n// | temperature | C | C | F |\n// | distance2 | m | m | pies |\n// | speed | km/h | km/h | mph |\n// | fuel | km/gal | km/l | mpg |\n// | fuel2 | g/h | l/h | g/h |\n// -------------------------------------------------------------------\n//\n// IMPORTANTE: La base de datos utiliza Metric System 2\n// 1-> Centroamericano\n// 2-> Metrico Decimal\n// 3-> U.S\n\nexport const getAuthSystems = (state) => {\n const distance = getOwnState(state)?.user?.distanceSystem;\n const capacity = getOwnState(state)?.user?.capacitySystem;\n\n return {\n distance,\n capacity,\n volume: getOwnState(state)?.user?.volumeSystem,\n temperature: getOwnState(state)?.user?.temperatureSystem,\n distance2: getOwnState(state)?.user?.distance2System,\n speed: getOwnState(state)?.user?.speedSystem,\n fuel: getOwnState(state)?.user?.fuelSystem,\n fuel2: getOwnState(state)?.user?.fuel2System,\n performance: `${distance}/${capacity}`\n };\n};\n\nexport const getParsers = (state) => ({\n /* -------------------------------------------------------------------------- */\n /* Distance */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Metros -> Sistema mĆ©trico del usuario (Kilometros o Millas)\n */\n convertMetersToAuthUserDistanceSystem: (meters) =>\n meters / (getAuthUser(state)?.metricSystemId == 3 ? 1609 : 1000),\n /**\n * Parser de Kilometros -> Sistema mĆ©trico del usuario (Kilometros o Millas)\n */\n convertKilometersToAuthUserDistanceSystem: (kilometers) =>\n kilometers / (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n /**\n * Parser de Sistema mĆ©trico del usuario (Kilometros o Millas) -> Metros\n */\n convertAuthUserDistanceSystemToMeters: (authUserDistanceSystem) =>\n authUserDistanceSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1609 : 1000),\n\n /* Pasar de sistema mĆ©trico del usuario (Kilometros o Millas) -> Kilometros */\n convertAuthUserDistanceSystemToKilometers: (authUserDistanceSystem) =>\n authUserDistanceSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Capacity */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | capacity | gal | lt | gal |\n // -------------------------------------------------------------------\n /**\n * Parser de Galones -> Sistema de capacidad del usuario (Galones o Litros)\n */\n convertGalonsToAuthUserCapacitySystem: (gal) =>\n gal * (getAuthUser(state)?.metricSystemId == 2 ? 3.78541 : 1),\n /**\n * Parser de Sistema de capacidad del usuario (Galones o Litros) -> Galones\n */\n convertAuthUserCapacitySystemToGalons: (authUserCapacitySystem) =>\n authUserCapacitySystem / (getAuthUser(state)?.metricSystemId == 2 ? 3.78541 : 1),\n /**\n * Parser de Litros -> Sistema de capacidad del usuario (Galones o Litros)\n */\n convertLitersToAuthUserCapacitySystem: (lt) =>\n lt / (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.78541),\n /**\n * Parser de Sistema de capacidad del usuario (Galones o Litros) -> Litros\n */\n convertAuthUserCapacitySystemToLiters: (authUserCapacitySystem) =>\n authUserCapacitySystem * (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.78541),\n\n /* -------------------------------------------------------------------------- */\n /* Volume */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de mĀ³ -> Sistema de volumen del usuario (mĀ³ o ydĀ³)\n */\n convertCubicMetersToAuthUserVolumeSystem: (cubicMeters) =>\n cubicMeters / (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1),\n /**\n * Parser de Sistema de volumen del usuario (mĀ³ o ydĀ³) -> mĀ³\n */\n convertAuthUserVolumeSystemToCubicMeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1),\n /**\n * Parser de Sistema de volumen del usuario (mĀ³ o ydĀ³) -> cmĀ³\n */\n convertAuthUserVolumeSystemToCubicCentimeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1) * 1000000,\n\n /**\n * Parser de metros cubicos a centimetros cubicos (mĀ³) -> cmĀ³\n */\n convertAuthUserVolumeSystemToCubicCentimeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * 1000000,\n\n /* -------------------------------------------------------------------------- */\n /* Temperature */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Celsius -> Sistema de temperatura del usuario (Celsius o Fahrenheit)\n */\n convertCelsiusToAuthUserTemperatureSystem: (c) =>\n getAuthUser(state)?.metricSystemId == 3 ? (c * 9) / 5 + 32 : c,\n /**\n * Parser de Sistema de temperatura del usuario (Celsius o Fahrenheit) -> Celsius\n */\n convertAuthUserTemperatureSystemToCelsius: (authUserTemperatureSystem) =>\n getAuthUser(state)?.metricSystemId == 3\n ? (authUserTemperatureSystem - 32) * (5 / 9)\n : authUserTemperatureSystem,\n\n /* -------------------------------------------------------------------------- */\n /* Distance2 */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Metros -> Sistema mĆ©trico del usuario (Metros o Pies)\n */\n convertMetersToAuthUserDistance2System: (meters) =>\n meters * (getAuthUser(state)?.metricSystemId == 3 ? 3.281 : 1),\n /**\n * Parser de Sistema mĆ©trico del usuario (Metros o Pies) -> Metros\n */\n convertAuthUserDistance2SystemToMeters: (authUserDistance2System) =>\n authUserDistance2System / (getAuthUser(state)?.metricSystemId == 3 ? 3.281 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Speed */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de km/h -> Sistema de velocidad del usuario (km/h o mph)\n */\n convertKilometersPerHourToAuthUserSpeedSystem: (kilometersPerHour) =>\n kilometersPerHour / (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n /**\n * Parser de Sistema de velocidad del usuario (km/h o mph) -> km/h\n */\n convertAuthUserSpeedSystemToKilometersPerHour: (authUserSpeedSystem) =>\n authUserSpeedSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Fuel */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | fuel | km/gal | km/l | mpg |\n // -------------------------------------------------------------------\n /**\n * Parser de km/gal -> Sistema de capacidad del usuario (km/gal o km/l o mpg)\n */\n convertKilometersPerGalonToAuthUserFuelSystem: (kmPerGal) =>\n getAuthUser(state)?.metricSystemId == 2\n ? kmPerGal / 3.7854\n : getAuthUser(state)?.metricSystemId == 3\n ? kmPerGal / 1.609\n : kmPerGal,\n /**\n * Parser de Sistema de capacidad del usuario (km/gal o km/l o mpg) -> km/gal\n */\n convertAuthUserFuelSystemToKilometersPerGalon: (authUserFuelSystem) =>\n getAuthUser(state)?.metricSystemId == 2 //km/lt\n ? authUserFuelSystem * 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? authUserFuelSystem * 1.609\n : authUserFuelSystem,\n /**\n * Parser de km/gal -> Sistema de capacidad del usuario (km/gal o km/l o mpg)\n */\n convertKilometersPerLiterToAuthUserFuelSystem: (kmPerLiter) =>\n getAuthUser(state)?.metricSystemId == 1 //km/gal\n ? kmPerLiter * 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? (kmPerLiter * 3.7854) / 1.609\n : kmPerLiter,\n /**\n * Parser de Sistema de capacidad del usuario (km/gal o km/l o mpg) -> km/gal\n */\n convertAuthUserFuelSystemToKilometersPerLiter: (authUserFuelSystem) =>\n getAuthUser(state)?.metricSystemId == 1 //km/gal\n ? authUserFuelSystem / 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? (authUserFuelSystem / 3.7854) * 1.609\n : authUserFuelSystem,\n /* -------------------------------------------------------------------------- */\n /* Fuel2 */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | fuel2 | g/h | l/h | g/h |\n // -------------------------------------------------------------------\n /**\n * Parser de g/h -> Sistema de capacidad del usuario (g/h o l/h)\n */\n convertGalonsPerHourToAuthUserFuel2System: (galPerHour) =>\n galPerHour * (getAuthUser(state)?.metricSystemId == 2 ? 3.7854 : 1),\n /**\n * Parser de Sistema de capacidad del usuario (g/h o l/h) -> g/h\n */\n convertAuthUserFuel2SystemToGalonsPerHour: (authUserFuel2System) =>\n authUserFuel2System / (getAuthUser(state)?.metricSystemId == 2 ? 3.7854 : 1),\n /**\n * Parser de g/h -> Sistema de capacidad del usuario (g/h o l/h)\n */\n convertLitersPerHourToAuthUserFuel2System: (litersPerHour) =>\n litersPerHour / (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.7854),\n /**\n * Parser de Sistema de capacidad del usuario (g/h o l/h) -> g/h\n */\n convertAuthUserFuel2SystemToLitersPerHour: (authUserFuel2System) =>\n authUserFuel2System * (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.7854)\n});\n\n//Status of sagas\nexport const getIsRefreshingToken = (state) => getOwnState(state).isRefreshing;\n\n//Errors\nexport const getRefreshingError = (state) => getOwnState(state).refreshingError;\n\n//Errors\nexport const getTokenRefreshFailCount = (state) => getOwnState(state).tokenRefreshFailCount;\n","import React from \"react\";\nimport { useIntl } from \"react-intl\";\n\n// 'intl' service singleton reference\nlet intl;\n\nexport function IntlGlobalProvider({ children }) {\n intl = useIntl(); // Keep the 'intl' service reference\n return children;\n}\n\n// Getter function to expose the read-only 'intl' service\nexport function appIntl() {\n return intl;\n}\n","/* -------------------------------------------------------------------------- */\n/* Tipos del reductor Auth */\n/* -------------------------------------------------------------------------- */\n\nexport const AUTHENTICATION_STARTED = 'AUTHENTICATION_STARTED';\nexport const AUTHENTICATION_COMPLETED = 'AUTHENTICATION_COMPLETED';\nexport const AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED';\n\nexport const AUTHENTICATION_FAILED_CLEAR = 'AUTHENTICATION_FAILED_CLEAR';\nexport const AUTHENTICATION_IDENTITY_CLEARED = 'AUTHENTICATION_IDENTITY_CLEARED';\n\nexport const AUTHENTICATION_SET_MEMBERSHIP = 'AUTHENTICATION_SET_MEMBERSHIP';\n\nexport const AUTHENTICATION_USER_INFORMATION_STARTED = 'AUTHENTICATION_USER_INFORMATION_STARTED';\nexport const AUTHENTICATION_USER_INFORMATION_COMPLETED =\n 'AUTHENTICATION_USER_INFORMATION_COMPLETED';\n\nexport const TOKEN_REFRESH_STARTED = 'TOKEN_REFRESH_STARTED';\nexport const TOKEN_REFRESH_FORCE_STARTED = 'TOKEN_REFRESH_FORCE_STARTED';\nexport const TOKEN_REFRESH_COMPLETED = 'TOKEN_REFRESH_COMPLETED';\nexport const TOKEN_REFRESH_FAILED = 'TOKEN_REFRESH_FAILED';\n\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_STARTED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_STARTED';\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED';\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_FAILED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_FAILED';\n\nexport const PROFILE_UPDATE_PASSWORD_STARTED = 'PROFILE_UPDATE_PASSWORD_STARTED';\nexport const PROFILE_UPDATE_PASSWORD_COMPLETED = 'PROFILE_UPDATE_PASSWORD_COMPLETED';\nexport const PROFILE_UPDATE_PASSWORD_FAILED = 'PROFILE_UPDATE_PASSWORD_FAILED';\n\nexport const PROFILE_UPDATE_PICTURE_STARTED = 'PROFILE_UPDATE_PICTURE_STARTED';\nexport const PROFILE_UPDATE_PICTURE_COMPLETED = 'PROFILE_UPDATE_PICTURE_COMPLETED';\nexport const PROFILE_UPDATE_PICTURE_FAILED = 'PROFILE_UPDATE_PICTURE_FAILED';\n\nexport const PROFILE_UPDATE_MAP_OPTIONS_STARTED = 'PROFILE_UPDATE_MAP_OPTIONS_STARTED';\nexport const PROFILE_UPDATE_MAP_OPTIONS_COMPLETED = 'PROFILE_UPDATE_MAP_OPTIONS_COMPLETED';\nexport const PROFILE_UPDATE_MAP_OPTIONS_FAILED = 'PROFILE_UPDATE_MAP_OPTIONS_FAILED';\n\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED';\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED';\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED';\n\nexport const PROFILE_UPDATE_HOME_SCREEN_STARTED = 'PROFILE_UPDATE_HOME_SCREEN_STARTED';\nexport const PROFILE_UPDATE_HOME_SCREEN_COMPLETED = 'PROFILE_UPDATE_HOME_SCREEN_COMPLETED';\nexport const PROFILE_UPDATE_HOME_SCREEN_FAILED = 'PROFILE_UPDATE_HOME_SCREEN_FAILED';\n\nexport const PROFILE_CHANGE_PRODUCT_STARTED = 'PROFILE_CHANGE_PRODUCT_STARTED';\nexport const PROFILE_CHANGE_PRODUCT_COMPLETED = 'PROFILE_CHANGE_PRODUCT_COMPLETED';\nexport const PROFILE_CHANGE_PRODUCT_FAILED = 'PROFILE_CHANGE_PRODUCT_FAILED';\n\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED';\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED';\nexport const PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED =\n 'PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED';\n","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_FETCH_STARTED = 'UNIT_FETCH_STARTED';\nexport const UNIT_FETCH_COMPLETED = 'UNIT_FETCH_COMPLETED';\nexport const UNIT_FETCH_FAILED = 'UNIT_FETCH_FAILED';\n\nexport const UNIT_ADD_TO_STATE = 'UNIT_ADD_TO_STATE';\n\nexport const UNITS_LIVE_STATUS_FETCH_STARTED = 'UNITS_LIVE_STATUS_FETCH_STARTED';\nexport const UNITS_LIVE_STATUS_FETCH_COMPLETED = 'UNITS_LIVE_STATUS_FETCH_COMPLETED';\nexport const UNITS_LIVE_STATUS_FETCH_FAILED = 'UNITS_LIVE_STATUS_FETCH_FAILED';\n\nexport const UNIT_INFORMATION_FETCH_STARTED = 'UNIT_INFORMATION_FETCH_STARTED';\nexport const UNIT_INFORMATION_FETCH_COMPLETED = 'UNIT_INFORMATION_FETCH_COMPLETED';\nexport const UNIT_INFORMATION_FETCH_FAILED = 'UNIT_INFORMATION_FETCH_FAILED';\n\nexport const UNIT_POSITIONS_FETCH_STARTED = 'UNIT_POSITIONS_FETCH_STARTED';\nexport const UNIT_POSITIONS_FETCH_COMPLETED = 'UNIT_POSITIONS_FETCH_COMPLETED';\nexport const UNIT_POSITIONS_FETCH_FAILED = 'UNIT_POSITIONS_FETCH_FAILED';\nexport const UNIT_POSITIONS_RESET_IS_FETCHED = 'UNIT_POSITIONS_RESET_IS_FETCHED';\n\nexport const UNIT_TRAJECTORY_FETCH_STARTED = 'UNIT_TRAJECTORY_FETCH_STARTED';\nexport const UNIT_TRAJECTORY_FETCH_COMPLETED = 'UNIT_TRAJECTORY_FETCH_COMPLETED';\nexport const UNIT_TRAJECTORY_FETCH_FAILED = 'UNIT_TRAJECTORY_FETCH_FAILED';\n\nexport const UNIT_EXECUTE_DEVICE_ACTION = 'UNIT_EXECUTE_DEVICE_ACTION';\n\nexport const UNIT_ADD_STARTED = 'UNIT_ADD_STARTED';\nexport const UNIT_ADD_COMPLETED = 'UNIT_ADD_COMPLETED';\nexport const UNIT_ADD_FAILED = 'UNIT_ADD_FAILED';\n\nexport const UNIT_EDIT_STARTED = 'UNIT_EDIT_STARTED';\nexport const UNIT_EDIT_COMPLETED = 'UNIT_EDIT_COMPLETED';\nexport const UNIT_EDIT_FAILED = 'UNIT_EDIT_FAILED';\n\nexport const UNIT_ACKNOWLEDGE_STARTED = 'UNIT_ACKNOWLEDGE_STARTED';\nexport const UNIT_ACKNOWLEDGE_COMPLETED = 'UNIT_ACKNOWLEDGE_COMPLETED';\nexport const UNIT_ACKNOWLEDGE_FAILED = 'UNIT_ACKNOWLEDGE_FAILED';\n\nexport const UNIT_REMOVE_STARTED = 'UNIT_REMOVE_STARTED';\nexport const UNIT_REMOVE_COMPLETED = 'UNIT_REMOVE_COMPLETED';\nexport const UNIT_REMOVE_FAILED = 'UNIT_REMOVE_FAILED';\n\nexport const UNIT_SELECTED = 'UNIT_SELECTED';\nexport const UNITS_ALL_SELECTED = 'UNITS_ALL_SELECTED';\nexport const UNIT_DESELECTED = 'UNIT_DESELECTED';\nexport const UNITS_ALL_DESELECTED = 'UNITS_ALL_DESELECTED';\n\nexport const UNIT_SHOW_IN_MAP = 'UNIT_SHOW_IN_MAP';\nexport const UNITS_ALL_SHOW_IN_MAP = 'UNITS_ALL_SHOW_IN_MAP';\nexport const UNIT_HIDE_IN_MAP = 'UNIT_HIDE_IN_MAP';\nexport const UNITS_ALL_HIDE_IN_MAP = 'UNITS_ALL_HIDE_IN_MAP';\n\nexport const UNIT_FETCH_INTERVAL = 30000;\nexport const UNIT_ACTIVE_TRACKING_FETCH_INTERVAL = 5000;\nexport const UNIT_IDLE_SPEED = 5;\nexport const UNIT_DATA_LIMIT_FOR_CLUSTERING = 1500;\n\nexport const SET_DATE_RANGE = 'SET_DATE_RANGE';\n\nexport const UNITS_ACTIVE_STARTED = 'UNITS_ACTIVE_STARTED';\nexport const UNITS_ACTIVE_COMPLETED = 'UNITS_ACTIVE_COMPLETED';\nexport const UNITS_ACTIVE_FAILED = 'UNITS_ACTIVE_FAILED';\n\nexport const UNITS_ASSIGN_DRIVER_STARTED = 'UNITS_ASSIGN_DRIVER_STARTED';\nexport const UNITS_ASSIGN_DRIVER_COMPLETED = 'UNITS_ASSIGN_DRIVER_COMPLETED';\n\nexport const UNIT_CREATE_SHARE_LINK_STARTED = 'UNIT_CREATE_SHARE_LINK_STARTED';\nexport const UNIT_CREATE_SHARE_LINK_COMPLETED = 'UNIT_CREATE_SHARE_LINK_COMPLETED';\nexport const UNIT_CREATE_SHARE_LINK_FAILED = 'UNIT_CREATE_SHARE_LINK_FAILED';\n\nexport const UNIT_CLEAR_SHARE_LINK = 'UNIT_CLEAR_SHARE_LINK';\n\nexport const UNIT_CHANGE_STATUS_STARTED = 'UNIT_CHANGE_STATUS_STARTED';\nexport const UNIT_CHANGE_STATUS_COMPLETED = 'UNIT_CHANGE_STATUS_COMPLETED';\n\nexport const UNIT_RESTORE_STATUS_STARTED = 'UNIT_RESTORE_STATUS_STARTED';\nexport const UNIT_RESTORE_STATUS_COMPLETED = 'UNIT_RESTORE_STATUS_COMPLETED';\nexport const UNIT_RESTORE_STATUS_FAILED = 'UNIT_RESTORE_STATUS_FAILED';\n\nexport const UNIT_START_DOWNTIME_STARTED = 'UNIT_START_DOWNTIME_STARTED';\nexport const UNIT_START_DOWNTIME_COMPLETED = 'UNIT_START_DOWNTIME_COMPLETED';\nexport const UNIT_START_DOWNTIME_FAILED = 'UNIT_START_DOWNTIME_FAILED';\n\nexport const UNIT_END_DOWNTIME_STARTED = 'UNIT_END_DOWNTIME_STARTED';\nexport const UNIT_END_DOWNTIME_COMPLETED = 'UNIT_END_DOWNTIME_COMPLETED';\nexport const UNIT_END_DOWNTIME_FAILED = 'UNIT_END_DOWNTIME_FAILED';\n\nexport const UNIT_UPDATE_DEVICE_STARTED = 'UNIT_DEVICE_ASSIGNMENT_STARTED';\nexport const UNIT_UPDATE_DEVICE_COMPLETED = 'UNIT_DEVICE_ASSIGNMENT_COMPLETED';\nexport const UNIT_UPDATE_DEVICE_FAILED = 'UNIT_DEVICE_ASSIGNMENT_FAILED';\n\nexport const UNIT_UPDATE_SIM_STARTED = 'UNIT_UPDATE_SIM_STARTED';\nexport const UNIT_UPDATE_SIM_COMPLETED = 'UNIT_UPDATE_SIM_COMPLETED';\nexport const UNIT_UPDATE_SIM_FAILED = 'UNIT_UPDATE_SIM_FAILED';\n\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED';\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED';\nexport const UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_FAILED =\n 'UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_FAILED';\n// Interfaces\nexport interface UnitMainState {\n id: number;\n intl: string;\n color: string;\n textColor: string;\n tooltip: string;\n shortIntl: string;\n}\nexport interface UnitsMainState {\n [key: string]: UnitMainState;\n}\n\nexport interface ReduxUnit extends Omit, 'isCharging'> {\n isSelected: boolean;\n isShownInMap: boolean;\n unitId: number;\n unitPublicId: string;\n unitStatus: number;\n unitStatusName: string;\n unitTypeId: number;\n unitName: string;\n alias: string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId?: number;\n subdivisionId?: number;\n deviceId: number;\n propertyTypeId: number;\n propertyTypeDescription: string;\n deviceIdentifier: string;\n serialNumber: string;\n brandId: number;\n brandName: string;\n deviceModelId: number;\n deviceModelName: string;\n deviceConfigurationId: number;\n deviceConfigurationName: string;\n driverId: number;\n vehicleId: number;\n vehicleName: string;\n licensePlate: string;\n simCardId: number;\n imsi: string;\n cellularNumber: string | number;\n mobileOperatorId: number;\n mobileOperatorName: string;\n comments: string;\n contractDate: string;\n contractNumber: string;\n lastPaymentDate: string;\n periodicity: number | string;\n instalationDate: string;\n privateCode: string;\n privateCode2: string;\n themeId: number;\n serviceClassId: number;\n serviceClassName: string;\n membershipCode: number | string;\n applicationIdentity: string | number;\n scheduleId?: number;\n scheduleName: string;\n countryId: number;\n mainStateTypeId: number;\n idleSpeed: number;\n assets: string;\n offlineTime: number;\n startedTime: number;\n stoppedTime: number;\n idleTime: number;\n utcZoneId: number;\n downtimeReasonId: number;\n downtimeReasonDescription: string;\n lastCommunicationDate: string;\n isConfirmed: boolean;\n operatorName: string;\n divisionName: string;\n subdivisionName: string;\n mainVoltage: number;\n solarVoltage: number;\n battery: number;\n backupBattery: any;\n isCharging: number | boolean;\n doorState: any;\n coverTamperState: any;\n padlockState: any;\n satellites: number;\n firmwareVersion: null | any;\n gsmSignalLevel: null | any;\n hardwareVersion: null | any;\n plmn: number;\n mcc: number;\n mnc: number;\n cellNumber: number;\n iccid: number;\n trailerId: number;\n appVersion: any;\n padlockAuthorizationType: any;\n historicalPositions: any;\n simCellularNumber: any;\n cellularProviderName: any;\n assetIdentifier: any;\n trajectory: any;\n deviceImei: any;\n devicePropertyTypeId: any;\n vehicleMakerName: any;\n vehicleModelName: any;\n chasis: any;\n motor: any;\n}\n\nexport interface PartialUnit extends Partial {}\n\nexport interface GroupUnit\n extends Pick {\n groupName: string;\n}\n","import Swal, { SweetAlertIcon } from 'sweetalert2';\nimport withReactContent from 'sweetalert2-react-content';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\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, width = 500 }) => {\n Swal.fire({\n timer: timer,\n icon: 'info',\n text: message,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n width: width,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n }\n });\n};\n","// ** 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 bounds: entity.bounds\n })\n );\n else\n return put(\n geofencesActions.startPartialFetchingGeofences(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SCHEDULES:\n if (isEntityUpdated[index] === null)\n return put(schedulesActions.startFetchingSchedules());\n else\n return put(\n schedulesActions.startPartialFetchingSchedules(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_ROUTES:\n if (isEntityUpdated[index] === null)\n return put(\n routesActions.startFetchingRoutes({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n routesActions.startPartialFetchingRoutes(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SIM_CARDS:\n if (isEntityUpdated[index] === null)\n return put(\n simActions.startFetchingSims({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n simActions.startPartialFetchingSims(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n null,\n null,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_COUNTRIES:\n if (isEntityUpdated[index] === null)\n return put(countriesActions.startFetchingCountries());\n else\n return put(\n countriesActions.startPartialFetchingCountries(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_LOCATIONS:\n if (isEntityUpdated[index] === null)\n return put(\n locationActions.startFetchingLocations({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n bounds: entity?.bounds\n })\n );\n else\n return put(\n locationActions.startPartialFetchingLocations(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_OFFICES:\n if (isEntityUpdated[index] === null)\n return put(\n officeActions.startFetchingOffices({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n officeActions.startPartialFetchingOffices(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_DRIVERS:\n if (isEntityUpdated[index] === null)\n return put(\n driverActions.startFetchingDrivers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n driverActions.startPartialFetchingDrivers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_ASSETS:\n if (isEntityUpdated[index] === null)\n return put(\n assetsActions.startFetchingAssets({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n assetsActions.startPartialFetchingAssets(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SENSORS:\n if (isEntityUpdated[index] === null)\n return put(sensorsActions.startFetchingSensors());\n else return put(sensorsActions.startPartialFetchingSensors(parseInt(entityTypeId)));\n case entityTypes.ENTITY_JOBS_BACKLOG:\n if (isEntityUpdated[index] === null)\n return put(jobActions.startFetchingJobsBacklog());\n else return put(jobActions.startPartialFetchingJobsBacklog(parseInt(entityTypeId)));\n case entityTypes.ENTITY_GROUPS:\n if (isEntityUpdated[index] === null)\n return put(\n groupsActions.startFetchingGroups({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n groupsActions.startPartialFetchingGroups(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_PROTOCOLS:\n if (isEntityUpdated[index] === null)\n return put(\n protocolsActions.startFetchingProtocols({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n protocolsActions.startPartialFetchingProtocols(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n default:\n break;\n }\n }\n })\n );\n yield put(actions.completeUpdatingEntities());\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingEntities(error));\n }\n }\n}\n\nexport function* watchUpdateEntities() {\n yield takeEvery(types.ENTITIES_UPDATE_STARTED, updateEntities);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Geofences */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const geofence = new schema.Entity('geofences', {}, { idAttribute: 'geofenceId' });\nexport const geofences = new schema.Array(geofence);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport {\n deleteGeofenceService,\n getGeofencesListService,\n saveGeofenceService,\n getGeofenceByIdService\n} from '../services/geofences';\nimport * as types from '../types';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport { call, takeEvery, put, select } from 'redux-saga/effects';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGeofencesList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n bounds: filterBounds\n } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n {\n operatorId: operatorId,\n organizationId: organizationId,\n minLat: filterBounds?.minLat,\n maxLat: filterBounds?.maxLat,\n minLng: filterBounds?.minLng,\n maxLng: filterBounds?.maxLng\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { geofences },\n result //order\n } = normalize(resultData, schemas.geofences); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingGeofences(\n geofences,\n result,\n operatorId,\n organizationId,\n filterBounds?.showInMapGeofences ? filterBounds?.showInMapGeofences : false\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGeofences(error));\n }\n }\n );\n}\n\nexport function* watchFetchGeofencesList() {\n yield takeEvery(types.GEOFENCES_FETCH_STARTED, fetchGeofencesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchGeofencesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { geofences },\n result //order\n } = normalize(resultData, schemas.geofences); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingGeofences(geofences, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingGeofences(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchGeofencesList() {\n yield takeEvery(types.GEOFENCES_PARTIAL_FETCH_STARTED, partialFetchGeofencesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addGeofence(action) {\n const geofence = action.payload;\n saveGeofenceService(\n { ...geofence, geofenceId: null },\n {\n successAction: (response) => {\n const addedGeofence = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingGeofence(geofence.geofenceId, addedGeofence));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGeofence(geofence.geofenceId, error));\n }\n }\n );\n}\n\nexport function* watchAddGeofencesStarted() {\n yield takeEvery(types.GEOFENCE_ADD_STARTED, addGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editGeofence(action) {\n const geofence = action.payload;\n const oldGeofence = yield select((state) => selectors.getGeofence(state, geofence.geofenceId));\n saveGeofenceService(\n { ...geofence },\n {\n successAction: (response) => {\n const editedGeofence = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingGeofence(editedGeofence));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingGeofence(oldGeofence, error));\n }\n }\n );\n}\n\nexport function* watchEditGeofencesStarted() {\n yield takeEvery(types.GEOFENCE_EDIT_STARTED, editGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeGeofence(action) {\n const { geofenceId } = action.payload;\n const geofence = yield select((state) => selectors.getGeofence(state, geofenceId));\n deleteGeofenceService(\n { ...geofence },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingGeofence(geofenceId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingGeofence(geofenceId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveGeofenceStarted() {\n yield takeEvery(types.GEOFENCE_REMOVE_STARTED, removeGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Geofence Unit */\n/* -------------------------------------------------------------------------- */\nfunction* assignGeofenceUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(assignation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitsGeofences(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitsGeofences(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitsGeofences(error));\n }\n}\n\nexport function* watchAssignGeofenceUnit() {\n yield takeEvery(types.GEOFENCE_ASSIGN_UNIT_STARTED, assignGeofenceUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove Geofence Assignation */\n/* -------------------------------------------------------------------------- */\nfunction* removeGeofenceAssignation(action) {\n const unitGeofences = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteUnitGeofences`, {\n method: 'POST',\n body: JSON.stringify(unitGeofences),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(unitGeofences));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove All Assignments By Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* removeAllAssigmentsByGeofences(action) {\n //const unitGeofences = action.payload;\n console.log('removeAll payload', action.payload);\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteAllByGeofences`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n console.log('response', jsonResult);\n if (\n response.status <= 300 &&\n jsonResult.success /* &&\n jsonResult.data.length === unitGeofences.length */\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(action.payload));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove All Assignments By Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* removeAllAssigmentsByUnits(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteAllByUnits`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n console.log('response', jsonResult);\n if (\n response.status <= 300 &&\n jsonResult.success /* &&\n jsonResult.data.length === unitGeofences.length */\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(action.payload));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\nexport function* watchRemoveGeofenceAssignation() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_REMOVE_STARTED, removeGeofenceAssignation);\n}\n\nexport function* watchRemoveAllAssignmentsByGeofences() {\n yield takeEvery(\n types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED,\n removeAllAssigmentsByGeofences\n );\n}\n\nexport function* watchRemoveAllAssignmentsByUnits() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED, removeAllAssigmentsByUnits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Edit Geofence Assignation */\n/* -------------------------------------------------------------------------- */\nfunction* editGeofenceAssignation(action) {\n const unitGeofenceInfo = action.payload.unitGeofenceInfo;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/editUnitGeofenceNotification`, {\n method: 'POST',\n body: JSON.stringify(unitGeofenceInfo),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeEditingGeofenceAssignation(unitGeofenceInfo));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyEdited'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.editingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.editingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingGeofenceAssignation(error));\n }\n}\n\nexport function* watchEditGeofenceAssignation() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_EDIT_STARTED, editGeofenceAssignation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* GET GEOFENCE BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchGeofenceById(action) {\n const geofenceId = action.payload;\n getGeofenceByIdService(\n {\n geofenceId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingGeofence(resultData, [resultData.geofenceId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGeofence(error));\n }\n }\n );\n}\n\nexport function* watchFetchGeofenceById() {\n yield takeEvery(types.GEOFENCE_FETCH_STARTED, fetchGeofenceById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Modules */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n//Cambio de nombre porque module causaba problemas al inicializar\nexport const moduleSchema = new schema.Entity(\n \"modules\",\n {},\n { idAttribute: \"deviceId\" }\n);\nexport const modules = new schema.Array(moduleSchema);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { getModulesListService } from '../services';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModulesList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getModulesListService(\n {\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { modules },\n result //order\n } = normalize(resultData, schemas.modules); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingModules(modules, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingModules(error));\n }\n }\n );\n}\n\nexport function* watchFetchModulesList() {\n yield takeEvery(types.MODULES_FETCH_STARTED, fetchModulesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchModulesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getModulesListService(\n {\n userFetchDate: date,\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { modules },\n result //order\n } = normalize(resultData, schemas.modules); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingModules(modules, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingModules(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchModulesList() {\n yield takeEvery(types.MODULES_PARTIAL_FETCH_STARTED, partialFetchModulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addModule(action) {\n const module = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/save`, {\n method: 'POST',\n body: JSON.stringify({ ...module, deviceId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: module.identifier\n });\n const addedModule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingModule(module.deviceId, addedModule));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingModule(module.deviceId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingModule(module.deviceId, error));\n }\n}\n\nexport function* watchAddModulesStarted() {\n yield takeEvery(types.MODULE_ADD_STARTED, addModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editModule(action) {\n const module = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/save`, {\n method: 'POST',\n body: JSON.stringify({\n ...module\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedModule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingModule(editedModule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: editedModule.identifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldModule } = yield select((state) => selectors.getModule(state, module.deviceId));\n yield put(actions.failEditingModule(oldModule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldModule } = yield select((state) => selectors.getModule(state, module.deviceId));\n yield put(actions.failEditingModule(oldModule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditModulesStarted() {\n yield takeEvery(types.MODULE_EDIT_STARTED, editModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeModule(action) {\n const { module } = action.payload;\n const moduleId = module.deviceId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedModule = module;\n const response = yield call(fetch, `${API_BASE_URL}/module/delete`, {\n method: 'POST',\n body: JSON.stringify({ moduleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingModule(moduleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: deletedModule.identifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingModule(moduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingModule(moduleId, error));\n }\n}\n\nexport function* watchRemoveModuleStarted() {\n yield takeEvery(types.MODULE_REMOVE_STARTED, removeModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH MODULE */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModule(action) {\n const moduleId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/${moduleId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const module = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingModule(module));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingModule(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingModule(error));\n }\n}\n\nexport function* watchModuleFetchStarted() {\n yield takeEvery(types.MODULE_FETCH_STARTED, fetchModule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Operators */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const operator = new schema.Entity(\n \"operators\",\n {},\n { idAttribute: \"operatorId\" }\n);\nexport const operators = new schema.Array(operator);\n","/* -------------------------------------------------------------------------- */\n/* Schema Contacts */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const contact = new schema.Entity('contacts', {}, { idAttribute: 'contactId' });\nexport const contacts = new schema.Array(contact);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as contactSchemas from 'views/screens/Contacts/schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as operatorSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOperatorsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/operator/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { operators },\n result //order\n } = normalize(resultData, schemas.operators); //normalize data to byId and order\n yield put(actions.completeFetchingOperators(operators, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOperators(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOperators(error));\n }\n}\n\nexport function* watchFetchOperatorsList() {\n yield takeEvery(types.OPERATORS_FETCH_STARTED, fetchOperatorsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOperatorsList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/operator/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { operators },\n result //order\n } = normalize(resultData, schemas.operators); //normalize data to byId and order\n yield put(actions.completePartialFetchingOperators(operators, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOperators(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOperators(error));\n }\n}\n\nexport function* watchPartialFetchOperatorsList() {\n yield takeEvery(types.OPERATORS_PARTIAL_FETCH_STARTED, partialFetchOperatorsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOperator(action) {\n const operator = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/save`, {\n method: 'POST',\n body: JSON.stringify({ ...operator, operatorId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOperator = camelcaseKeys(jsonResult.data.operatorData);\n\n // const operatorContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(operatorContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeAddingOperator(operator.operatorId, addedOperator));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: operator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOperator(operator.operatorId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOperator(operator.operatorId, error));\n }\n}\n\nexport function* watchAddOperatorsStarted() {\n yield takeEvery(types.OPERATOR_ADD_STARTED, addOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOperator(action) {\n const operator = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/save`, {\n method: 'POST',\n body: JSON.stringify(operator),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOperator = camelcaseKeys(jsonResult.data.operatorData);\n\n const operatorContacts = camelcaseKeys(jsonResult.data.contacts);\n const {\n entities: { contacts },\n result //order\n } = normalize(operatorContacts, contactSchemas.contacts); //normalize data to byId and order\n yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeEditingOperator(editedOperator));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: editedOperator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOperator } = yield select((state) =>\n selectors.getOperator(state.operators, operator.operatorId)\n );\n yield put(actions.failEditingOperator(oldOperator, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldOperator } = yield select((state) =>\n selectors.getOperator(state.operators, operator.operatorId)\n );\n yield put(actions.failEditingOperator(oldOperator, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOperatorsStarted() {\n yield takeEvery(types.OPERATOR_EDIT_STARTED, editOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOperator(action) {\n const { operatorId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedOperator = yield select((state) =>\n operatorSelectors.getOperator(state, operatorId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/delete`, {\n method: 'POST',\n body: JSON.stringify({ operatorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOperator(operatorId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: deletedOperator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOperator(operatorId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOperator(operatorId, error));\n }\n}\n\nexport function* watchRemoveOperatorStarted() {\n yield takeEvery(types.OPERATOR_REMOVE_STARTED, removeOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT STANDARD PRICES */\n/* -------------------------------------------------------------------------- */\nfunction* editOperatorStandardPrices(action) {\n const standardPrices = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/saveStandardPrices`, {\n method: 'POST',\n body: JSON.stringify(standardPrices),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOperatorStandardPrices = camelcaseKeys(jsonResult.data);\n\n // console.log('editedOperator', editedOperator);\n yield put(actions.completeEditingOperatorStandardPrices(editedOperatorStandardPrices));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'operators.editStandardPricesSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n yield put(actions.failEditingOperator(standardPrices, error));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'operators.editStandardPricesFailure' })\n }\n });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failEditingOperator(standardPrices, error));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'operators.editStandardPricesFailure' })\n }\n });\n }\n}\n\nexport function* watchEditOperatorStandardPricesStarted() {\n yield takeEvery(types.OPERATOR_EDIT_STANDARD_PRICES_STARTED, editOperatorStandardPrices);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Organizations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const organization = new schema.Entity(\n \"organizations\",\n {},\n { idAttribute: \"organizationId\" }\n);\nexport const organizations = new schema.Array(organization);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as quotationActions from '../../Quotations/actions';\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as types from '../types';\nimport * as selectors from 'views/screens/Organizations/reducers';\nimport * as schemas from '../schemas';\nimport * as contactSchemas from 'views/screens/Contacts/schemas';\nimport * as organizationUsers from '../../../../redux/schemas/organizations-users';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport forEach from 'lodash/forEach';\nimport groupBy from 'lodash/groupBy';\nimport chain from 'lodash/chain';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteOrganizationService,\n getOrganizationsListService,\n saveOrganizationService\n} from '../services';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOrganizationsList(action) {\n getOrganizationsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.organizationList.map((result) => camelcaseKeys(result));\n var usersData = response.data.usersList.map((result) => camelcaseKeys(result));\n const {\n entities: { organizations },\n result //order\n } = normalize(resultData, schemas.organizations); //normalize data to byId and order\n const usersByOrganization = groupBy(usersData, 'organizationId');\n forEach(organizations, (organization) => {\n if (organization.organizationId in usersByOrganization) {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: usersByOrganization[organization.organizationId]\n };\n }\n } else {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: []\n };\n }\n }\n });\n store.dispatch(actions.completeFetchingOrganizations(organizations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingOrganizations(error));\n }\n }\n );\n}\n\nexport function* watchFetchOrganizationsList() {\n yield takeEvery(types.ORGANIZATIONS_FETCH_STARTED, fetchOrganizationsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOrganizationsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getOrganizationsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.organizationList.map((result) => camelcaseKeys(result));\n var usersData = response.data.usersList.map((result) => camelcaseKeys(result));\n const {\n entities: { organizations },\n result //order\n } = normalize(resultData, schemas.organizations); //normalize data to byId and order\n const usersByOrganization = groupBy(usersData, 'organizationId');\n forEach(organizations, (organization) => {\n if (organization.organizationId in usersByOrganization) {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: usersByOrganization[organization.organizationId]\n };\n }\n } else {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: []\n };\n }\n }\n });\n store.dispatch(actions.completeFetchingOrganizations(organizations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingOrganizations(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchOrganizationsList() {\n yield takeEvery(types.ORGANIZATIONS_PARTIAL_FETCH_STARTED, partialFetchOrganizationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganization(action) {\n const { organization, isSelected } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/save`, {\n method: 'POST',\n body: JSON.stringify({ ...organization, organizationId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOrganization = camelcaseKeys(jsonResult.data.organizationData);\n\n // const organizationContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(organizationContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(\n actions.completeAddingOrganization(organization.organizationId, addedOrganization)\n );\n\n if (organization.quotationId)\n yield put(\n quotationActions.changeQuotationOrganization(\n {\n quotationId: organization.quotationId,\n baseQuotationId: organization.baseQuotationId\n },\n {\n organizationId: addedOrganization?.organizationId,\n organizationName: addedOrganization?.organizationName,\n organizationTaxNumber: addedOrganization?.taxNumber,\n organizationType: addedOrganization?.organizationType\n }\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: organization.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganization(organization.organizationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganization(organization.organizationId, error));\n }\n}\n\nexport function* watchAddOrganizationsStarted() {\n yield takeEvery(types.ORGANIZATION_ADD_STARTED, addOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganization(action) {\n const organization = action.payload;\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state, organization.organizationId)\n );\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/save`, {\n method: 'POST',\n body: JSON.stringify(organization),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOrganization = camelcaseKeys(jsonResult.data.organizationData);\n\n // const organizationContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(organizationContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeEditingOrganization(editedOrganization));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: editedOrganization.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n yield put(actions.failEditingOrganization(oldOrganization, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failEditingOrganization(oldOrganization, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOrganizationsStarted() {\n yield takeEvery(types.ORGANIZATION_EDIT_STARTED, editOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SAVE CONSOLIDABLE EVENTS */\n/* -------------------------------------------------------------------------- */\nfunction* saveConsolidableEvents(action) {\n const { organization, consolidableEvents } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organization/SaveConsolidableEvents`, {\n method: 'POST',\n body: JSON.stringify({ organizationId: organization.organizationId, consolidableEvents }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeSavingConsolidableEvents(organization.organizationId, consolidableEvents)\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'organizations.consolidableEventsSavingSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state.organizations, organization.organizationId)\n );\n yield put(actions.failSavingConsolidableEvents(oldOrganization, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state.organizations, organization.organizationId)\n );\n yield put(actions.failSavingConsolidableEvents(oldOrganization, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSaveConsolidableEventsStarted() {\n yield takeEvery(types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED, saveConsolidableEvents);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganization(action) {\n const { organizationId } = action.payload;\n const organization = yield select((state) => selectors.getOrganization(state, organizationId));\n deleteOrganizationService(\n { ...organization },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingOrganization(organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingOrganization(organizationId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveOrganizationStarted() {\n yield takeEvery(types.ORGANIZATION_REMOVE_STARTED, removeOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CODE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { organizationId, code } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/validateRegistrationCode`, {\n method: 'POST',\n body: JSON.stringify({ code, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.RegistrationCodeStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchRegistrationCodeStarted() {\n yield takeEvery(types.ORGANIZATION_CODE_CHECK_STARTED, checkRegistrationCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CODE ASSIGN */\n/* -------------------------------------------------------------------------- */\nfunction* assigCode(action) {\n const {\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/assignCode`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeAssigningCode(\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n )\n );\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssigningCode(error));\n }\n}\n\nexport function* watchCodeAssignStarted() {\n yield takeEvery(types.ORGANIZATION_CODE_ASSIGN_STARTED, assigCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/saveDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify({ ...downtimeReason, reasonId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedDowntimeReason = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingOrganizationDowntimeReason(\n downtimeReason.reasonId,\n addedDowntimeReason\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchAddOrganizationDowntimeReasonsStarted() {\n yield takeEvery(types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED, addOrganizationDowntimeReason);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/saveDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify(downtimeReason),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedDowntimeReason = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingOrganizationDowntimeReason(editedDowntimeReason));\n\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchEditOrganizationDowntimeReasonsStarted() {\n yield takeEvery(types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED, editOrganizationDowntimeReason);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/deleteDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify(downtimeReason),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOrganizationDowntimeReason(downtimeReason.reasonId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchRemoveOrganizationDowntimeReasonsStarted() {\n yield takeEvery(\n types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED,\n removeOrganizationDowntimeReason\n );\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Service Classes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const serviceClass = new schema.Entity(\n \"serviceClasses\",\n {},\n { idAttribute: \"serviceClassId\" }\n);\nexport const serviceClasses = new schema.Array(serviceClass);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchServiceClassesList(action) {\n const { filters, isDropdown, isWebPage } = action.payload;\n let urlGet = `${API_BASE_URL}/serviceClass`;\n if (isDropdown) {\n urlGet = `${API_BASE_URL}/serviceClass/allStatus`;\n }\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, urlGet, {\n method: 'POST',\n body: JSON.stringify({ operatorId: isWebPage ? filters?.operatorId : null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { serviceClasses },\n result //order\n } = normalize(resultData, schemas.serviceClasses); //normalize data to byId and order\n yield put(actions.completeFetchingServiceClasses(serviceClasses, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingServiceClasses(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingServiceClasses(error));\n }\n}\n\nexport function* watchFetchServiceClassesList() {\n yield takeEvery(types.SERVICECLASSES_FETCH_STARTED, fetchServiceClassesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addServiceClass(action) {\n const serviceClass = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/save`, {\n method: 'POST',\n body: JSON.stringify({ ...serviceClass, serviceClassId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedServiceClass = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingServiceClass(serviceClass.serviceClassId, addedServiceClass)\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: addedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingServiceClass(serviceClass.serviceClassId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingServiceClass(serviceClass.serviceClassId, error));\n }\n}\n\nexport function* watchAddServiceClassesStarted() {\n yield takeEvery(types.SERVICECLASS_ADD_STARTED, addServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editServiceClass(action) {\n const serviceClass = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/save`, {\n method: 'POST',\n body: JSON.stringify(serviceClass),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedServiceClass = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingServiceClass(editedServiceClass));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: editedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const oldServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClass.serviceClassId)\n );\n yield put(actions.failEditingServiceClass(oldServiceClass, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClass.serviceClassId)\n );\n yield put(actions.failEditingServiceClass(oldServiceClass, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditServiceClassesStarted() {\n yield takeEvery(types.SERVICECLASS_EDIT_STARTED, editServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeServiceClass(action) {\n const { serviceClassId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClassId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/delete`, {\n method: 'POST',\n body: JSON.stringify({ serviceClassId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingServiceClass(serviceClassId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: deletedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingServiceClass(serviceClassId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingServiceClass(serviceClassId, error));\n }\n}\n\nexport function* watchRemoveServiceClassStarted() {\n yield takeEvery(types.SERVICECLASS_REMOVE_STARTED, removeServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH SERVICE CLASS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchServiceClass(action) {\n const serviceClassId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/${serviceClassId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const serviceClass = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingServiceClass(serviceClass));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingServiceClass(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingServiceClass(error));\n }\n}\n\nexport function* watchServiceClassFetchStarted() {\n yield takeEvery(types.SERVICECLASS_FETCH_STARTED, fetchServiceClass);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Subdivisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const subdivision = new schema.Entity(\n \"subdivisions\",\n {},\n { idAttribute: \"subdivisionId\" }\n);\nexport const subdivisions = new schema.Array(subdivision);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSubdivisionsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { subdivisions },\n result //order\n } = normalize(resultData, schemas.subdivisions); //normalize data to byId and order\n yield put(\n actions.completeFetchingSubdivisions(subdivisions, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSubdivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSubdivisions(error));\n }\n}\n\nexport function* watchFetchSubdivisionsList() {\n yield takeEvery(types.SUBDIVISIONS_FETCH_STARTED, fetchSubdivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSubdivisionsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { subdivisions },\n result //order\n } = normalize(resultData, schemas.subdivisions); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingSubdivisions(\n subdivisions,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSubdivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSubdivisions(error));\n }\n}\n\nexport function* watchPartialFetchSubdivisionsList() {\n yield takeEvery(types.SUBDIVISIONS_PARTIAL_FETCH_STARTED, partialFetchSubdivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSubdivision(action) {\n const subdivision = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/save`, {\n method: 'POST',\n body: JSON.stringify({ ...subdivision, subdivisionId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSubdivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSubdivision(subdivision.subdivisionId, addedSubdivision));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: subdivision.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSubdivision(subdivision.subdivisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSubdivision(subdivision.subdivisionId, error));\n }\n}\n\nexport function* watchAddSubdivisionsStarted() {\n yield takeEvery(types.SUBDIVISION_ADD_STARTED, addSubdivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSubdivision(action) {\n const subdivision = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/save`, {\n method: 'POST',\n body: JSON.stringify(subdivision),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSubdivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSubdivision(editedSubdivision));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: editedSubdivision.subdivisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const oldSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivision.subdivisionId)\n );\n yield put(actions.failEditingSubdivision(oldSubdivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivision.subdivisionId)\n );\n yield put(actions.failEditingSubdivision(oldSubdivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSubdivisionsStarted() {\n yield takeEvery(types.SUBDIVISION_EDIT_STARTED, editSubdivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSubdivision(action) {\n const { subdivisionId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivisionId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/delete`, {\n method: 'POST',\n body: JSON.stringify({ subdivisionId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingSubdivision(subdivisionId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: deletedSubdivision.subdivisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSubdivision(subdivisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSubdivision(subdivisionId, error));\n }\n}\n\nexport function* watchRemoveSubdivisionStarted() {\n yield takeEvery(types.SUBDIVISION_REMOVE_STARTED, removeSubdivision);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Units */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const unit = new schema.Entity('units', {}, { idAttribute: 'unitId' });\nexport const units = new schema.Array(unit);\n","/* -------------------------------------------------------------------------- */\n/* Schema Device Metrics */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const deviceMetric = new schema.Entity(\n 'deviceMetrics',\n {},\n { idAttribute: 'deviceMetricId' }\n);\nexport const deviceMetrics = new schema.Array(deviceMetric);\n","/* -------------------------------------------------------------------------- */\n/* Schema Device Actions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const deviceAction = new schema.Entity(\n 'deviceActions',\n {},\n { idAttribute: 'deviceActionId' }\n);\nexport const deviceActions = new schema.Array(deviceAction);\n","/* -------------------------------------------------------------------------- */\n/* Schema Groups */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const group = new schema.Entity('groups', {}, { idAttribute: 'groupId' });\nexport const groups = new schema.Array(group);\n","/* -------------------------------------------------------------------------- */\n/* Schema Reports */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const report = new schema.Entity('reports', {}, { idAttribute: 'reportId' });\nexport const reports = new schema.Array(report);\n","/* -------------------------------------------------------------------------- */\n/* Schema Images */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const image = new schema.Entity('images', {}, { idAttribute: 'imageId' });\nexport const images = new schema.Array(image);\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensors */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensor = new schema.Entity('sensors', {}, { idAttribute: 'sensorId' });\nexport const sensors = new schema.Array(sensor);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\nimport { ENTITY_UNITS } from '../../Entities/constants';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as deviceMetricsSchemas from '../schemas/deviceMetrics';\nimport * as deviceActionsSchemas from '../schemas/deviceActions';\nimport * as groupsSchemas from '../schemas/groups';\nimport * as reportsSchemas from '../schemas/reports';\nimport * as imagesSchemas from '../schemas/images';\nimport * as sensorsSchemas from '../schemas/sensors';\nimport * as types from '../types';\nimport {\n getUnitsListService,\n getUnitsLiveStatusListService,\n getUnitInformationService,\n executeDeviceActionService,\n getUnitHistoricalPositionsReportService,\n acknowledgeUnitEventService,\n updateDeviceService,\n updateSimCardService,\n getUnitByIdService,\n getUnitTrajectoryService\n} from '../services';\nimport { camelize } from 'utility/Utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUnitsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(actions.completeFetchingUnits(units, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnits(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitsList() {\n yield takeEvery(types.UNITS_FETCH_STARTED, fetchUnitsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchUnitsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUnitsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingUnits(units, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingUnits(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchUnitsList() {\n yield takeEvery(types.UNITS_PARTIAL_FETCH_STARTED, partialFetchUnitsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIVE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitsLiveStatusList(action) {\n const operatorId = yield select(entitySelectors.getUserUpdateByEntityOperatorId, ENTITY_UNITS);\n const organizationId = yield select(\n entitySelectors.getUserUpdateByEntityOrganizationId,\n ENTITY_UNITS\n );\n const userFetchDate = yield select(selectors.getUnitLiveFetchDate, organizationId);\n\n getUnitsLiveStatusListService(\n { operatorId, organizationId, userFetchDate },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(actions.completeFetchingUnitsLiveStatus(units, result, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitsLiveStatus(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitsLiveStatusList() {\n yield takeEvery(types.UNITS_LIVE_STATUS_FETCH_STARTED, fetchUnitsLiveStatusList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH INFORMATION */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitInformation(action) {\n const { unitId } = action.payload;\n\n getUnitInformationService(\n { unitId },\n {\n successAction: (response) => {\n const resultData = response.data;\n //Unit data Live Status\n const unitData = camelcaseKeys(resultData.unitData);\n //Unit device metrics\n const unitMetrics = resultData.unitMetrics.map((result) => camelcaseKeys(result));\n const {\n entities: { deviceMetrics: deviceMetricsEntities },\n result: deviceMetricsOrder //order\n } = normalize(unitMetrics, deviceMetricsSchemas.deviceMetrics); //normalize data to byId and order\n\n //Unit device actions\n const unitActions = resultData.unitActions.map((result) => camelcaseKeys(result));\n const {\n entities: { deviceActions: deviceActionsEntities },\n result: deviceActionsOrder //order\n } = normalize(unitActions, deviceActionsSchemas.deviceActions); //normalize data to byId and order\n\n //Unit groups\n const groupsData = resultData.groupsData.map((result) => camelcaseKeys(result));\n const {\n entities: { groups: groupsEntities },\n result: groupsOrder //order\n } = normalize(groupsData, groupsSchemas.groups); //normalize data to byId and order\n\n //Unit Reports\n const unitReports = resultData.unitReports.map((result) => camelcaseKeys(result));\n const {\n entities: { reports: reportsEntities },\n result: reportsOrder //order\n } = normalize(unitReports, reportsSchemas.reports); //normalize data to byId and order\n\n //Unit Images\n const unitImages = resultData.unitImages.map((result) => camelcaseKeys(result));\n const {\n entities: { images: imagesEntities },\n result: imagesOrder //order\n } = normalize(unitImages, imagesSchemas.images); //normalize data to byId and order\n\n //Unit Sensors\n const unitSensorMeasures = resultData.unitSensorMeasures.map((result) =>\n camelcaseKeys(result)\n );\n const {\n entities: { sensors: sensorsEntities },\n result: sensorsOrder //order\n } = normalize(unitSensorMeasures, sensorsSchemas.sensors); //normalize data to byId and order\n\n store.dispatch(\n actions.completeFetchingUnitInformation(\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitInformation(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitInformationStarted() {\n yield takeEvery(types.UNIT_INFORMATION_FETCH_STARTED, fetchUnitInformation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIVE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitHistoricalPositionsReport(action) {\n const { unitId, reportType, startDate, endDate, idleSpeed } = action.payload;\n\n getUnitHistoricalPositionsReportService(\n { unitId, reportType, startDate, endDate, idleSpeed },\n {\n successAction: (response) => {\n const distance = response.data.distance;\n const parkedPositions = response.data?.parkedPositions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `parkedPosition-${i}`\n }));\n const polyline = response.data?.polyline?.map((result) => camelcaseKeys(result));\n const positions = response.data?.positions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `position-${i}`\n }));\n store.dispatch(\n actions.completeFetchingUnitPositions(\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitPositions(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitHistoricalPositionsStarted() {\n yield takeEvery(types.UNIT_POSITIONS_FETCH_STARTED, fetchUnitHistoricalPositionsReport);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH TRAJECTORY */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitTrajectory(action) {\n const { unitId, limit } = action.payload;\n\n getUnitTrajectoryService(\n { unitId, limit },\n {\n successAction: (response) => {\n const distance = response.data.distance;\n const parkedPositions = response.data?.parkedPositions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `parkedPosition-${i}`\n }));\n const polyline = response.data?.polyline?.map((result) => camelcaseKeys(result));\n const positions = response.data?.positions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `position-${i}`\n }));\n store.dispatch(\n actions.completeFetchingUnitTrajectory(\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitTrajectory(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitTrajectoryStarted() {\n yield takeEvery(types.UNIT_TRAJECTORY_FETCH_STARTED, fetchUnitTrajectory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EXECUTE DEVICE ACTION */\n/* -------------------------------------------------------------------------- */\nfunction* executeDeviceAction(action) {\n const { unitId, deviceActionId, parameters } = action.payload;\n\n executeDeviceActionService({\n unitId,\n deviceActionId,\n parameters\n });\n}\n\nexport function* watchExecuteDeviceAction() {\n yield takeEvery(types.UNIT_EXECUTE_DEVICE_ACTION, executeDeviceAction);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addUnit(action) {\n const unit = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/save`, {\n method: 'POST',\n body: JSON.stringify({ ...unit, unitId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedUnit = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingUnit(unit.unitId, addedUnit));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'units.unit'\n }),\n name: unit.unitName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingUnit(unit.unitId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingUnit(unit.unitId, error));\n }\n}\n\nexport function* watchAddUnitsStarted() {\n yield takeEvery(types.UNIT_ADD_STARTED, addUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editUnit(action) {\n const unit = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/save`, {\n method: 'POST',\n body: JSON.stringify(unit),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingUnit(editedUnit));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'units.unit'\n }),\n name: unit.unitName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldUnit } = yield select((state) => selectors.getUnit(state.units, unit.unitId));\n yield put(actions.failEditingUnit(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n\n //store.dispatch(actions.startFetchingUnits());\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldUnit } = yield select((state) => selectors.getUnit(state.units, unit.unitId));\n yield put(actions.failEditingUnit(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditUnitsStarted() {\n yield takeEvery(types.UNIT_EDIT_STARTED, editUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UNIT ACKNOWLEDGE */\n/* -------------------------------------------------------------------------- */\nfunction* acknowledgeUnitEvent(action) {\n const { unitId } = action.payload;\n acknowledgeUnitEventService(\n { unitId },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAcknowledgeUnitEvent(unitId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAcknowledgeUnitEvent(error));\n }\n }\n );\n}\n\nexport function* watchAcknowledgeUnitEvent() {\n yield takeEvery(types.UNIT_ACKNOWLEDGE_STARTED, acknowledgeUnitEvent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeUnit(action) {\n const unitBody = action.payload;\n const units = unitBody.units;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/delete`, {\n method: 'POST',\n body: JSON.stringify({ units }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingUnit(unitBody.units, unitBody.unitsName));\n alerts.showSuccessDisabledMessage({\n object: appIntl().formatMessage({\n id: unitBody.units.length > 1 ? 'units.units' : 'units.unit'\n }),\n multiple: unitBody.units.length > 1,\n altText: true,\n name: unitBody.unitsName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingUnit(unitBody.units, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingUnit(unitBody.units, error));\n }\n}\n\nexport function* watchRemoveUnitStarted() {\n yield takeEvery(types.UNIT_REMOVE_STARTED, removeUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ACTIVE UNITS */\n/* -------------------------------------------------------------------------- */\nfunction* activeUnits(action) {\n const units = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/updateUnitStatus`, {\n method: 'POST',\n body: JSON.stringify(units),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeActivingUnits(units));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'units.unitsWereSuccessfullyActived'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'units.unitsActivationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failActivingUnits(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'units.unitsActivationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failActivingUnits(error));\n }\n}\n\nexport function* watchActiveUnits() {\n yield takeEvery(types.UNITS_ACTIVE_STARTED, activeUnits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN DRIVER */\n/* -------------------------------------------------------------------------- */\nfunction* assignDriver(action) {\n const units = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/assignDriver`, {\n method: 'POST',\n body: JSON.stringify(units),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAssigningDriverUnits(units));\n units[0].driverName && units[0].driverName !== ''\n ? alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: units.length > 1 ? 'drivers.drivers' : 'drivers.driver'\n }),\n name: units.length > 1 ? '' : units[0].driverName,\n plural: units.length > 1\n })\n : alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'drivers.driver'\n })\n });\n\n /* store.dispatch(actions.startFetchingUnits()); */\n store.dispatch(actions.startFetchingUnitsLiveStatus());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignDriverUnitsStarted() {\n yield takeEvery(types.UNITS_ASSIGN_DRIVER_STARTED, assignDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* START UNIT DOWNTIME */\n/* -------------------------------------------------------------------------- */\nfunction* startUnitDowntime(action) {\n const { unitId, reasonId } = action.payload;\n try {\n //const { unit } = yield select((state) => selectors.getUnit(state.units, unitId));\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/startDowntime`, {\n method: 'POST',\n body: JSON.stringify({ unitId, reasonId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeStartDowntimeUnit(\n unitId,\n editedUnit.reasonId,\n editedUnit.reasonDescription\n )\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'units.startDowntimeSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.startDowntimeFailure' }) }\n });\n yield put(actions.failStartDowntimeUnit(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.startDowntimeFailure' }) }\n });\n yield put(actions.failStartDowntimeUnit(error));\n }\n}\n\nexport function* watchStartUnitDowntimeStarted() {\n yield takeEvery(types.UNIT_START_DOWNTIME_STARTED, startUnitDowntime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* END UNIT DOWNTIME */\n/* -------------------------------------------------------------------------- */\nfunction* endUnitDowntime(action) {\n const { unitId } = action.payload;\n try {\n //const { unit } = yield select((state) => selectors.getUnit(state.units, unitId));\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/endDowntime`, {\n method: 'POST',\n body: JSON.stringify({ unitId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeEndDowntimeUnit(unitId, editedUnit.mainStateId, editedUnit.mainStateDate)\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'units.endDowntimeSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.endDowntimeFailure' }) }\n });\n yield put(actions.failEndDowntimeUnit(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.endDowntimeFailure' }) }\n });\n yield put(actions.failEndDowntimeUnit(error));\n }\n}\n\nexport function* watchEndUnitDowntimeStarted() {\n yield takeEvery(types.UNIT_END_DOWNTIME_STARTED, endUnitDowntime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CREATE SHARED LINK */\n/* -------------------------------------------------------------------------- */\nfunction* createSharedLink(action) {\n const { unitId, unitName, emails, ttl } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/unit/shareUnitLocationLink`, {\n method: 'POST',\n body: JSON.stringify({ unitId, unitName, emails, ttl }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const sharedLink = jsonResult.data;\n yield put(actions.completeCreatingShareLink(sharedLink));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'common.sharedLinkCreatedSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'common.sharedLinkCreatingFailure' })\n }\n });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchCreateSharedLinkUnitStarted() {\n yield takeEvery(types.UNIT_CREATE_SHARE_LINK_STARTED, createSharedLink);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE DEVICE */\n/* -------------------------------------------------------------------------- */\nfunction* updateDevice(action) {\n const requestData = action.payload;\n const oldUnitId = requestData.unitId;\n const additionalOnSuccess = requestData.additionalOnSuccess;\n updateDeviceService(requestData, {\n successAction(response) {\n const [data] = camelize(response?.data);\n store.dispatch(actions.completeUpdateDevice(data));\n if (typeof additionalOnSuccess === 'function') additionalOnSuccess();\n },\n errorAction(error) {\n store.dispatch(actions.failUpdateDevice(oldUnitId, error.toString()));\n }\n });\n}\n\nexport function* watchUpdateDevice() {\n yield takeEvery(types.UNIT_UPDATE_DEVICE_STARTED, updateDevice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE SIM */\n/* -------------------------------------------------------------------------- */\nfunction* updateSim(action) {\n const requestData = action.payload;\n const oldUnitId = requestData.unitId;\n const additionalOnSuccess = requestData?.additionalOnSuccess;\n\n updateSimCardService(requestData, {\n successAction(response) {\n const [data] = camelize(response?.data);\n store.dispatch(actions.completeUpdateSim(data));\n if (typeof additionalOnSuccess === 'function') additionalOnSuccess();\n },\n errorAction(error) {\n store.dispatch(actions.failUpdateSim(oldUnitId, error?.toString() ?? ''));\n }\n });\n}\n\nexport function* watchUpdateSim() {\n yield takeEvery(types.UNIT_UPDATE_SIM_STARTED, updateSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* GET UNIT BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchUnitById(action) {\n const unitId = action.payload;\n getUnitByIdService(\n {\n unitId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingUnit(resultData, [resultData.unitId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnit(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitById() {\n yield takeEvery(types.UNIT_FETCH_STARTED, fetchUnitById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Schedules */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const schedule = new schema.Entity('schedules', {}, { idAttribute: 'scheduleId' });\nexport const schedules = new schema.Array(schedule);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as scheduleSelectors from '../reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport * as utility from '../../../../utility/Utils';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { addSchedulesDescription } from '../utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSchedulesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { schedules },\n result //order\n } = normalize(resultData, schemas.schedules); //normalize data to byId and order\n yield put(actions.completeFetchingSchedules(schedules, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSchedules(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSchedules(error));\n }\n}\n\nexport function* watchFetchSchedulesList() {\n yield takeEvery(types.SCHEDULES_FETCH_STARTED, fetchSchedulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSchedulesList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { schedules },\n result //order\n } = normalize(resultData, schemas.schedules); //normalize data to byId and order\n yield put(actions.completePartialFetchingSchedules(schedules, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSchedules(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSchedules(error));\n }\n}\n\nexport function* watchPartialFetchSchedulesList() {\n yield takeEvery(types.SCHEDULES_PARTIAL_FETCH_STARTED, partialFetchSchedulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSchedule(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveTrigger`, {\n method: 'POST',\n body: JSON.stringify({ ...schedule, scheduleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSchedule(schedule.scheduleId, addedSchedule));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: schedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n}\n\nexport function* watchAddSchedulesStarted() {\n yield takeEvery(types.SCHEDULE_ADD_STARTED, addSchedule);\n}\n\nexport function* completeAddingSchedule({ payload }) {\n const { oldId, schedule } = payload;\n yield put(actions.startFetchingSchedules());\n}\n\nexport function* watchAddSchedulesCompleted() {\n yield takeEvery(types.SCHEDULE_ADD_COMPLETED, addSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSchedule(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveTrigger`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSchedule(editedSchedule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: editedSchedule.scheduleName\n });\n yield put(actions.startFetchingSchedules());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingSchedule(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingSchedule(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSchedulesStarted() {\n yield takeEvery(types.SCHEDULE_EDIT_STARTED, editSchedule);\n}\n\n// added in order to resolve problem of not refreshing the schedule list after editing a schedule\nfunction* completeEditSchedule(action) {\n const schedule = action.payload;\n yield put(actions.startFetchingSchedules());\n}\n\nexport function* watchCompleteEditSchedule() {\n yield takeEvery(types.SCHEDULE_EDIT_COMPLETED, completeEditSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD SHIFT */\n/* -------------------------------------------------------------------------- */\nfunction* addShift(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveShift`, {\n method: 'POST',\n body: JSON.stringify({ ...schedule, scheduleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSchedule(schedule.scheduleId, addedSchedule));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: schedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n}\n\nexport function* watchAddShiftStarted() {\n yield takeEvery(types.SCHEDULE_SHIFT_ADD_STARTED, addShift);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT SHIFT */\n/* -------------------------------------------------------------------------- */\nfunction* editScheduleShift(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveShift`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingShift(editedSchedule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: editedSchedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingShift(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingShift(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSchedulesShiftStarted() {\n yield takeEvery(types.SCHEDULE_SHIFT_EDIT_STARTED, editScheduleShift);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSchedule(action) {\n const { scheduleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/delete`, {\n method: 'POST',\n body: JSON.stringify({ scheduleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const scheduleDeleted = yield select(scheduleSelectors.getSchedule, scheduleId);\n yield put(actions.completeRemovingSchedule(scheduleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: scheduleDeleted?.scheduleName\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'schedules.scheduleDeleteMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSchedule(scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'schedules.scheduleDeleteMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSchedule(scheduleId, error));\n }\n}\n\nexport function* watchRemoveScheduleStarted() {\n yield takeEvery(types.SCHEDULE_REMOVE_STARTED, removeSchedule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema bookmarks */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const bookmark = new schema.Entity(\n \"bookmarks\",\n {},\n { idAttribute: \"id\" }\n);\nexport const bookmarks = new schema.Array(bookmark);\n","/* eslint-disable semi */\n/* -------------------------------------------------------------------------- */\n/* Saga Auth */\n/* -------------------------------------------------------------------------- */\n\nimport camelcaseKeys from 'camelcase-keys';\nimport jwtDecode from 'jwt-decode';\nimport { normalize } from 'normalizr';\nimport { call, delay, put, select, takeEvery } from 'redux-saga/effects';\nimport sidebarOptions, * as sidebar from '../../../navigation/vertical';\nimport outsideSidebarOptions, * as outsideSidebar from '../../../navigation/outside-sidebar';\nimport * as actions from '../../actions/auth';\nimport * as navbarActions from '../../actions/navbar';\nimport * as selectors from '../../reducers/auth';\nimport * as navbarSelectors from '../../reducers/navbar';\nimport * as schemas from '../../schemas/bookmarks';\nimport * as types from '../../types/auth';\nimport * as navbarTypes from '../../types/navbar';\nimport * as alerts from '../../utils/alerts';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport TOKEN_LIFE_TIME from '../settings/tokenLifeTime';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { getTokenRefreshFailCount } from '../../reducers/auth';\n\nfunction* login(action) {\n try {\n let timerInterval;\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/account/login`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n // alerts.closeLoading();\n if (response.status <= 300) {\n const { token } = yield response.json();\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n let userData = camelcaseKeys(jwtDecode(token));\n yield localStorage.setItem('userData', JSON.stringify(userData));\n\n // alerts.showSuccessMessage({\n // success: `Bienvenido ${userData.username}`,\n // timer: 2000,\n // });\n\n // yield put(reset(\"login\"));\n ////////////////////////////////////////\n yield put(actions.completeLogin(token));\n // Obtener informacion adicional del usuario\n // yield put(actions.authenticationUserInformationStarted());\n } else {\n yield put(\n actions.failLogin(\n 'El nombre de usuario y contraseƱa introducidos no coinciden con nuestros registros. RevĆ­salos e intĆ©ntalo de nuevo.'\n )\n );\n\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage:\n 'El nombre de usuario y contraseƱa introducidos no coinciden con nuestros registros. RevĆ­salos e intĆ©ntalo de nuevo.'\n }\n });\n }\n } catch (error) {\n yield put(actions.failLogin('FallĆ³ la autentitaciĆ³n.'));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage:\n 'El nombre de usuario y contraseƱa introducidos no coinciden con nuestros registros. RevĆ­salos e intĆ©ntalo de nuevo.'\n }\n });\n }\n}\n\nexport function* watchLoginStarted() {\n yield takeEvery(types.AUTHENTICATION_STARTED, login);\n}\n\nfunction* userInformationRequest(action) {\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n const userId = yield select(selectors.getAuthUserID);\n\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n\n const responseSuperAdmin = yield call(fetch, `${API_BASE_URL}/superAdmins/${userId}/`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `JWT ${token}`\n }\n });\n\n if (responseSuperAdmin.status <= 300) {\n const jsonResultUser = yield responseSuperAdmin.json();\n yield put(actions.authenticationUserInformationCompleted(jsonResultUser));\n } else {\n const responseRestaurantAdmin = yield call(\n fetch,\n `${API_BASE_URL}/restaurantAdmins/${userId}/`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `JWT ${token}`\n }\n }\n );\n\n if (responseRestaurantAdmin.status <= 300) {\n const jsonResultUser = yield responseRestaurantAdmin.json();\n yield put(actions.authenticationUserInformationCompleted(jsonResultUser));\n } else {\n yield put(actions.logout());\n }\n }\n }\n } catch (error) {\n yield put(actions.logout());\n yield put(actions.failRefreshToken('FallĆ³ la conexiĆ³n'));\n }\n}\n\nexport function* watchUserInformationRequest() {\n yield takeEvery(types.AUTHENTICATION_USER_INFORMATION_STARTED, userInformationRequest);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REFRESH TOKEN */\n/* -------------------------------------------------------------------------- */\nfunction* refreshToken(action) {\n const tokenRefreshFailCount = yield select(getTokenRefreshFailCount);\n try {\n const isAuth = yield select((state) => state.auth.token != null);\n const token = yield select((state) => state.auth.token);\n\n const expiration = yield select((state) => state.auth.user.exp);\n const now = parseInt(new Date().getTime() / 1000);\n\n if (expiration - now < TOKEN_LIFE_TIME / 2) {\n const response = yield call(fetch, `${API_BASE_URL}/account/refresh-token`, {\n method: 'POST',\n body: JSON.stringify({ token }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n if (response.status === 200) {\n const { token } = yield response.json();\n yield put(actions.completeRefreshToken(token));\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n yield localStorage.setItem('userData', JSON.stringify(camelcaseKeys(jwtDecode(token))));\n } else {\n if (tokenRefreshFailCount && tokenRefreshFailCount >= 2) yield put(actions.logout());\n const { non_field_errors } = yield response.json();\n yield put(actions.failRefreshToken({ ...non_field_errors[0], tokenRefreshFailCount }));\n yield delay(200);\n }\n }\n } catch (error) {\n if (tokenRefreshFailCount && tokenRefreshFailCount >= 2) yield put(actions.logout());\n\n yield put(actions.failRefreshToken('FallĆ³ la conexiĆ³n'));\n }\n}\n\nexport function* watchRefreshTokenStarted() {\n yield takeEvery(types.TOKEN_REFRESH_STARTED, refreshToken);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FORCE REFRESH TOKEN WHEN PROFILE UPDATED */\n/* -------------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------------- */\n/* REFRESH TOKEN */\n/* -------------------------------------------------------------------------- */\nfunction* forceRefreshToken(action) {\n const token = yield select((state) => state.auth.token);\n\n try {\n const response = yield call(fetch, `${API_BASE_URL}/account/refresh-token`, {\n method: 'POST',\n body: JSON.stringify({ token }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n if (response.status === 200) {\n const { token } = yield response.json();\n yield put(actions.completeRefreshToken(token));\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n yield localStorage.setItem('userData', JSON.stringify(camelcaseKeys(jwtDecode(token))));\n } else {\n // yield put(actions.logout());\n // const { non_field_errors } = yield response.json();\n // yield put(actions.failRefreshToken(non_field_errors[0]));\n // yield delay(200);\n }\n } catch (error) {\n // yield put(actions.logout());\n // yield put(actions.failRefreshToken('FallĆ³ la conexiĆ³n'));\n }\n}\n\nexport function* watchForceRefreshToken() {\n yield takeEvery(\n [\n types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED,\n types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED,\n types.PROFILE_UPDATE_PASSWORD_COMPLETED,\n types.PROFILE_UPDATE_PICTURE_COMPLETED,\n types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED,\n types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED,\n types.TOKEN_REFRESH_FORCE_STARTED,\n types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED\n ],\n forceRefreshToken\n );\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH BOOKMARKS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUserBookmarks(action) {\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/account/userSettings`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const bookmarkSetting = jsonResult.data.filter(\n (setting) => camelcaseKeys(setting).settingId == 19\n );\n const bookmarkSettingValue =\n bookmarkSetting.length == 1 ? camelcaseKeys(bookmarkSetting[0]).settingValue : '';\n const bookmarkIds =\n (bookmarkSettingValue ?? '') != '' ? bookmarkSettingValue.split(',') : [];\n const optionsSuggestions = [\n ...sidebar.getOptions(sidebarOptions),\n ...sidebar.getOptions(outsideSidebarOptions)\n ];\n const {\n entities: {\n bookmarks //byId\n },\n result //order\n } = normalize(optionsSuggestions, schemas.bookmarks); //normalize data to byId and order\n let userBookmarks = bookmarkIds.map((id) => {\n bookmarks[id] = {\n ...bookmarks[id],\n isBookmarked: true\n };\n return {\n ...bookmarks[id]\n };\n });\n let newSuggestions = result.map((id) => bookmarks[id]);\n\n yield put(navbarActions.completeFetchingBookmarks(userBookmarks, newSuggestions));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.failFetchingBookmarks());\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.failFetchingBookmarks());\n }\n}\n\nexport function* watchFetchUserBookmarksStarted() {\n yield takeEvery(navbarTypes.GET_BOOKMARKS_FETCH_STARTED, fetchUserBookmarks);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD USER BOOKMARK */\n/* -------------------------------------------------------------------------- */\nfunction* updateUserBookmarks(action) {\n // const id = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n const userBookmarks = yield select(navbarSelectors.getUserBookmarks);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n const userBookmarksSettingsValue = userBookmarks.map((ub) => ub.id).toString();\n const response = yield call(fetch, `${API_BASE_URL}/account/saveUserSettings`, {\n method: 'POST',\n body: JSON.stringify({\n settingId: 19,\n settingValue: userBookmarksSettingsValue\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n // const updateUserSettings = camelcaseKeys(jsonResult.data);\n yield put(navbarActions.updateBookmarkedCompleted());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.updateBookmarkedFailed());\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.updateBookmarkedFailed());\n }\n}\n\nexport function* watchUpdateUserBookmarkssStarted() {\n yield takeEvery(navbarTypes.UPDATE_BOOKMARKED_STARTED, updateUserBookmarks);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE GENERAL INFORMATION */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfileGeneralInformation(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n yield delay(2000);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveProfile`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileGeneralInformation(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileGeneralInformation(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileGeneralInformation(error));\n }\n}\n\nexport function* watchUpdateProfileGeneralInformationStarted() {\n yield takeEvery(\n types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED,\n updateProfileGeneralInformation\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE MAP SETTINGS CONFIG */\n/* -------------------------------------------------------------------------- */\nfunction* updateMapProfileSettings(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/account/saveUserSettingsMap`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMapSettingsConfiguration(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapSettingsConfiguration(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapSettingsConfiguration(error));\n }\n}\n\nexport function* watchUpdateMapProfileSettingsStarted() {\n yield takeEvery(\n types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED,\n updateMapProfileSettings\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE MAP OPTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfileMapOptions(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveMapOptions`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.mapOptions.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileMapOptions(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileMapOptions(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileMapOptions(error));\n }\n}\n\nexport function* watchUpdateProfileMapOptionsStarted() {\n yield takeEvery(types.PROFILE_UPDATE_MAP_OPTIONS_STARTED, updateProfileMapOptions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE PASSWORD */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfilePassword(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/password`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changePassword.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfilePassword(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfilePassword(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfilePassword(error));\n }\n}\n\nexport function* watchUpdateProfilePasswordStarted() {\n yield takeEvery(types.PROFILE_UPDATE_PASSWORD_STARTED, updateProfilePassword);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE HOME SCREEN */\n/* -------------------------------------------------------------------------- */\nfunction* updateHomeScreen(action) {\n const homeScreenId = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/homeScreen`, {\n method: 'POST',\n body: JSON.stringify({\n homeScreenId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileHomeScreen(homeScreenId));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileHomeScreen(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileHomeScreen(error));\n }\n}\n\nexport function* watchUpdateProfileHomeScreenStarted() {\n yield takeEvery(types.PROFILE_UPDATE_HOME_SCREEN_STARTED, updateHomeScreen);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PRODUCT */\n/* -------------------------------------------------------------------------- */\nfunction* changeProduct(action) {\n const serviceId = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n /*const response = yield call(fetch, `${API_BASE_URL}/profile/service`, {\n method: 'POST',\n body: JSON.stringify({\n homeScreenId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });*/\n // alerts.closeLoading();\n //const jsonResult = yield response.json();\n //if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changeProduct.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeChangingProduct(serviceId));\n /*} else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeActualService.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileActualService(error));\n }*/\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeProduct.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangingProduct(error));\n }\n}\n\nexport function* watchChangeProductStarted() {\n yield takeEvery(types.PROFILE_CHANGE_PRODUCT_STARTED, changeProduct);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PINNED TAB */\n/* -------------------------------------------------------------------------- */\n\nfunction* updateMapFilterTabPinned(action) {\n const mapEntitiesFilterTab = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveMapFilterTabPinned`, {\n method: 'POST',\n body: JSON.stringify({\n mapEntitiesFilterTab: mapEntitiesFilterTab\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: `profile.mapOptions.pinnedTabSuccessMessage${mapEntitiesFilterTab}`\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMapFilterTabPinned(mapEntitiesFilterTab));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.pinnedTabFailMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapFilterTabPinned(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.pinnedTabFailMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapFilterTabPinned(error));\n }\n}\n\nexport function* watchUpdateMapFilterTabPinnedStarted() {\n yield takeEvery(types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED, updateMapFilterTabPinned);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const route = new schema.Entity('routes', {}, { idAttribute: 'routeId' });\nexport const routes = new schema.Array(route);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Route Checkpoints */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const routeCheckpoint = new schema.Entity(\n 'routeCheckpoints',\n {},\n { idAttribute: (value) => `${value.routeId}-${value.checkpointId}` }\n);\nexport const routeCheckpoints = new schema.Array(routeCheckpoint);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routes';\nimport * as types from '../../types/routes';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routes';\nimport * as schemasRouteCheckpoints from '../../schemas/routeCheckpoints';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\n\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport {\n getRoutesListService,\n saveRouteService,\n deleteRouteService,\n deleteRoutesService\n} from '../../services/routes';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getRoutesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { routes },\n result //order\n } = normalize(resultData, schemas.routes); //normalize data to byId and order\n store.dispatch(actions.completeFetchingRoutes(routes, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingRoutes(error));\n }\n }\n );\n}\n\nexport function* watchFetchRoutesList() {\n yield takeEvery(types.ROUTES_FETCH_STARTED, fetchRoutesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchRoutesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getRoutesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { routes },\n result //order\n } = normalize(resultData, schemas.routes); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingRoutes(routes, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingRoutes(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchRoutesList() {\n yield takeEvery(types.ROUTES_PARTIAL_FETCH_STARTED, partialFetchRoutesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addRoute(action) {\n const route = action.payload;\n\n saveRouteService(\n { ...route, route: { ...route.route, routeId: null } },\n {\n successAction: async (response) => {\n const addedRoute = camelcaseKeys(response.data.routeData);\n const addedCheckpoints = response.data.checkpointList\n .map((result) => camelcaseKeys(result))\n .map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const routeGroupId = response.data.routeGroupId;\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(addedCheckpoints, schemasRouteCheckpoints.routeCheckpoints); //normalize data to byId and order\n store.dispatch(\n actions.completeAddingRoute(route.route.routeId, {\n route: { ...addedRoute, routeGroupId },\n checkpoints: { entities: routeCheckpoints, order: result }\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(actions.failAddingRoute(route.route.routeId, error));\n }\n },\n true\n );\n}\n\nexport function* watchAddRoutesStarted() {\n yield takeEvery(types.ROUTE_ADD_STARTED, addRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editRoute(action) {\n const route = action.payload;\n const { oldRoute } = yield select(selectors.getRoute, route.route.routeId);\n\n saveRouteService(\n route,\n {\n successAction: async (response) => {\n const editedRoute = camelcaseKeys(response.data.routeData);\n const editedCheckpoints = response.data.checkpointList\n .map((result) => camelcaseKeys(result))\n .map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const routeGroupId = response.data.routeGroupId;\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(editedCheckpoints, schemasRouteCheckpoints.routeCheckpoints); //normalize data to byId and order\n store.dispatch(\n actions.completeEditingRoute({\n route: { ...editedRoute, routeGroupId },\n checkpoints: { entities: routeCheckpoints, order: result }\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(actions.failEditingRoute(oldRoute, error));\n }\n },\n false\n );\n}\n\nexport function* watchEditRoutesStarted() {\n yield takeEvery(types.ROUTE_EDIT_STARTED, editRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeRoute(action) {\n const { routeId } = action.payload;\n const routeDeleted = yield select(selectors.getRoute, routeId);\n\n deleteRouteService(\n { routeId, routeName: routeDeleted?.routeName },\n {\n successAction: async (response) => {\n store.dispatch(actions.completeRemovingRoute(routeId));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingRoute(routeId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveRouteStarted() {\n yield takeEvery(types.ROUTE_REMOVE_STARTED, removeRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeRoutes(action) {\n const { routeIds } = action.payload;\n\n deleteRoutesService(\n { routeIds },\n {\n successAction: async (response) => {\n store.dispatch(\n actions.completeRemovingRoutes(routeIds.split(',').map((routeId) => parseInt(routeId)))\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failRemovingRoutes(\n routeIds.split(',').map((routeId) => parseInt(routeId)),\n error\n )\n );\n }\n }\n );\n}\n\nexport function* watchRemoveRoutesStarted() {\n yield takeEvery(types.ROUTES_REMOVE_STARTED, removeRoutes);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy Route */\n/* -------------------------------------------------------------------------- */\nfunction* copyRoute(action) {\n const route = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/copyRoute`, {\n method: 'POST',\n body: JSON.stringify(route),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeCopyRoute(\n route.routeId,\n jsonResult.data.newRouteId,\n route.newRouteName,\n route.organizationId,\n route.divisionId,\n route.subdivisionId\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.copySuccessful'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.copyError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyRoute(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.copyError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyRoute(error));\n }\n}\n\nexport function* watchCopyRouteStarted() {\n yield takeEvery(types.ROUTE_COPY_STARTED, copyRoute);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from 'views/../redux/sagas/settings/apibaseurl.js';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from 'views/../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { appIntl } from 'views/../utility/context/IntlGlobalProvider';\nimport * as alerts from 'views/../redux/utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchContactsList(action) {\n const { query, selected } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contact/getDropdown`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n },\n body: JSON.stringify({ selected: selected })\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contacts },\n result //order\n } = normalize(resultData, schemas.contacts); //normalize data to byId and order\n yield put(actions.completeFetchingContacts(contacts, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContacts(error));\n }\n }\n } catch (err) {\n const error: any = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContacts(error));\n }\n}\n\nexport function* watchFetchContactsList() {\n yield takeEvery(types.CONTACTS_FETCH_STARTED, fetchContactsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addContact(action) {\n const contact = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/save`, {\n method: 'POST',\n body: JSON.stringify({ ...contact, contactId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedContact = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingContact(contact.contactId, addedContact));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contacts.contact'\n }),\n name: contact.contactName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContact(contact.contactId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContact(contact.contactId, error));\n }\n}\n\nexport function* watchAddContactsStarted() {\n yield takeEvery(types.CONTACT_ADD_STARTED, addContact);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editContact(action) {\n const contact = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/save`, {\n method: 'POST',\n body: JSON.stringify(contact),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedContact = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingContact(editedContact));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contacts.contact'\n }),\n name: contact.contactName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldContact } = yield select((state) =>\n selectors.getContact(state.contacts, contact.contactId)\n );\n yield put(actions.failEditingContact(oldContact, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n const oldContact = yield select((state) => selectors.getContact(state, contact.contactId));\n yield put(actions.failEditingContact(oldContact, error));\n }\n}\n\nexport function* watchEditContactsStarted() {\n yield takeEvery(types.CONTACT_EDIT_STARTED, editContact);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeContact(action) {\n const contactBody = action.payload;\n const contacts = contactBody.contacts;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/delete`, {\n method: 'POST',\n body: JSON.stringify({ contacts }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingContact(contactBody.contacts, contactBody.contactsName));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: contactBody.contacts.length > 1 ? 'contacts.contacts2' : 'contacts.contact'\n }),\n name: contactBody.contactsName,\n multiple: contactBody.contacts.length > 1\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContact(contactBody.contacts, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContact(contactBody.contacts, error));\n }\n}\n\nexport function* watchRemoveContactsStarted() {\n yield takeEvery(types.CONTACT_REMOVE_STARTED, removeContact);\n}\n","import { 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","import * as types from '../../types/routesComments';\n\nexport const startFetchingComments = (routeAssignmentId) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED,\n payload: { routeAssignmentId }\n});\nexport const completeFetchingComments = (entities, order) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingComments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_COMMENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_STARTED,\n payload: comment\n});\nexport const completeAddingComment = (oldId, comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_COMPLETED,\n payload: { oldId, comment }\n});\nexport const failAddingComment = (oldId, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED,\n payload: comment\n});\nexport const completeEditingComment = (comment) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED,\n payload: comment\n});\nexport const failEditingComment = (oldComment, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_EDIT_FAILED,\n payload: {\n oldComment,\n error\n }\n});\n\nexport const startRemovingComment = (routeCommentId) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED,\n payload: {\n routeCommentId\n }\n});\nexport const completeRemovingComment = (routeCommentId) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED,\n payload: {\n routeCommentId\n }\n});\nexport const failRemovingComment = (routeCommentId, error) => ({\n type: types.ROUTES_EXECUTION_COMMENT_REMOVE_FAILED,\n payload: {\n routeCommentId,\n error\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const comment = new schema.Entity('comments', {}, { idAttribute: 'routeCommentId' });\nexport const comments = new schema.Array(comment);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routesComments';\nimport * as types from '../../types/routesComments';\nimport * as selectors from '../../reducers/routesComments';\nimport * as schemas from '../../schemas/routesComments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteCommentService,\n getRouteCommentsListService,\n saveCommentService\n} from '../../services/routesComments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCommentsList(action) {\n const { routeAssignmentId } = action.payload;\n\n getRouteCommentsListService(\n { routeAssignmentId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { comments },\n result //order\n } = normalize(resultData, schemas.comments); //normalize data to byId and order\n store.dispatch(actions.completeFetchingComments(comments, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingComments(error));\n }\n }\n );\n}\n\nexport function* watchFetchCommentsList() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED, fetchCommentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addComment(action) {\n const comment = action.payload;\n saveCommentService(\n { ...comment, routeCommentId: null },\n {\n successAction: (response) => {\n const addedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingComment(comment.routeCommentId, addedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingComment(comment.routeCommentId, error));\n }\n }\n );\n}\n\nexport function* watchAddCommentsStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_ADD_STARTED, addComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editComment(action) {\n const comment = action.payload;\n const { oldComment } = yield select((state) =>\n selectors.getRoutesComment(state, comment.routeCommentId)\n );\n saveCommentService(\n { ...comment },\n {\n successAction: (response) => {\n const editedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingComment(editedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingComment(oldComment, error));\n }\n }\n );\n}\n\nexport function* watchEditCommentsStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED, editComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeComment(action) {\n const { routeCommentId } = action.payload;\n const deletedComment = yield select((state) => selectors.getRoutesComment(state, routeCommentId));\n deleteCommentService(\n { ...deletedComment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingComment(routeCommentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingComment(routeCommentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveCommentStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED, removeComment);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const routeExecution = new schema.Entity(\n 'routesExecutions',\n {},\n { idAttribute: 'routeAssignmentId' }\n);\nexport const routesExecutions = new schema.Array(routeExecution);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/routesExecutions';\nimport * as types from '../../types/routesExecutions';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routesExecutions';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n changeToAlternateRouteService,\n saveRouteExecutionService\n} from '../../services/routeExecution';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST EXECUTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesExecutions(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/route/getExecutions`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n const { scheduledBySchedule } = camelcaseKeys(jsonResult.data.scheduledBySchedule);\n const { totalNotShown } = camelcaseKeys(jsonResult.data.totalNotShown);\n const resultData = jsonResult.data.routesList.map((result) => camelcaseKeys(result));\n const {\n entities: { routesExecutions },\n result //order\n } = normalize(resultData, schemas.routesExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingRoutesExecutions(routesExecutions, result, {\n ...indicators,\n scheduledBySchedule,\n totalNotShown\n })\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchMonitorMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchMonitorMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesExecutions(error));\n }\n}\n\nexport function* watchFetchRoutesExecutions() {\n yield takeEvery(types.ROUTES_EXECUTIONS_FETCH_STARTED, fetchRoutesExecutions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editRouteExecution(action) {\n const routeExecution = action.payload;\n const oldRouteExecution = yield select((state) =>\n selectors.getRoutesExecution(state, routeExecution.routeAssignmentId)\n );\n saveRouteExecutionService(\n {\n ...routeExecution,\n routeAssignmentId: oldRouteExecution.routeAssignmentId,\n unitName: oldRouteExecution.unitName\n },\n {\n successAction: (response) => {\n const editedRouteExecution = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditRouteExecution({ ...routeExecution, ...editedRouteExecution })\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditRouteExecution(error));\n }\n }\n );\n}\n\nexport function* watchEditRouteExecutionStarted() {\n yield takeEvery(types.ROUTE_EXECUTION_EDIT_STARTED, editRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* changeToAlternateRoute(action) {\n const { routeAssignmentId, routeId, reason } = action.payload;\n changeToAlternateRouteService(\n { routeAssignmentId, routeId, reason },\n {\n successAction: (response) => {\n if (response.success)\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.successfullyChangeAlternateRoute'\n })\n });\n store.dispatch(actions.completeChangeToAlternateRoute(routeAssignmentId, routeId, reason));\n },\n errorAction: (error) => {\n const errorTxt = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.changeAlternateRouteMessageError'\n })\n };\n alerts.showErrorAlertFailChanges({ error: errorTxt });\n store.dispatch(actions.failChangeToAlternateRoute(error));\n }\n }\n );\n}\n\nexport function* watchChangeToAlternateRouteStarted() {\n yield takeEvery(types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED, changeToAlternateRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Route Execution Unit */\n/* -------------------------------------------------------------------------- */\nfunction* assignRouteExecutionUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(assignation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitRoutesExecutions(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitRoutesExecutions(error));\n }\n}\n\nexport function* watchAsignRouteExecutionUnit() {\n yield takeEvery(types.ROUTES_EXECUTION_ASSIGN_UNIT_STARTED, assignRouteExecutionUnit);\n}\n","import * as types from '../../types/routesReport';\n\nexport const startFetchingRoutesReport = (filters = {}) => ({\n type: types.ROUTES_REPORT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutesReport = (\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n) => ({\n type: types.ROUTES_REPORT_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n }\n});\nexport const failFetchingRoutesReport = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_REPORT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/routesReport';\nimport * as types from '../../types/routesReport';\nimport * as selectors from '../../reducers/routes';\nimport * as routesExecutionsSchemas from '../../schemas/routesExecutions';\nimport * as unitsSchemas from '../../../Units/schemas';\nimport * as routesSchemas from '../../schemas/routes';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST REPORT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesReport(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/route/getReport`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const units = jsonResult.data.units.map((result) => camelcaseKeys(result));\n const {\n entities: { units: unitsEntities },\n result: unitsOrder //order\n } = normalize(units, unitsSchemas.units); //normalize data to byId and order\n\n const routes = jsonResult.data.routes.map((result) => camelcaseKeys(result));\n const {\n entities: { routes: routesEntities },\n result: routesOrder //order\n } = normalize(routes, routesSchemas.routes); //normalize data to byId and order\n\n const resultData = jsonResult.data.routeExecutions.map((result) => camelcaseKeys(result));\n const {\n entities: { routesExecutions },\n result //order\n } = normalize(resultData, routesExecutionsSchemas.routesExecutions); //normalize data to byId and order\n\n yield put(\n actions.completeFetchingRoutesReport(\n routesExecutions,\n result,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchReportMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesReport(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchReportMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesReport(error));\n }\n}\n\nexport function* watchFetchRoutesReport() {\n yield takeEvery(types.ROUTES_REPORT_FETCH_STARTED, fetchRoutesReport);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const monitoringUser = new schema.Entity('monitoringUsers', {}, { idAttribute: 'userName' });\nexport const monitoringUsers = new schema.Array(monitoringUser);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as authActions from '../../../../redux/actions/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as entitySelectors from '../../Entities/reducers';\nimport {\n getUsersListService,\n saveUserService,\n deleteUserService,\n getUserByIdService\n} from '../services';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchMonitoringUsersList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUsersListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { monitoringUsers },\n result //order\n } = normalize(resultData, schemas.monitoringUsers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingMonitoringUsers(\n monitoringUsers,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMonitoringUsers(error));\n }\n }\n );\n}\n\nexport function* watchFetchMonitoringUsersList() {\n yield takeEvery(types.MONITORING_USERS_FETCH_STARTED, fetchMonitoringUsersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchMonitoringUsersList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUsersListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { monitoringUsers },\n result //order\n } = normalize(resultData, schemas.monitoringUsers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingMonitoringUsers(\n monitoringUsers,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingMonitoringUsers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchMonitoringUsersList() {\n yield takeEvery(types.MONITORING_USERS_PARTIAL_FETCH_STARTED, partialFetchMonitoringUsersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addMonitoringUser(action) {\n const monitoringUser = action.payload;\n saveUserService(\n { ...monitoringUser },\n {\n successAction: (response) => {\n const addedMonitoringUser = camelcaseKeys(response?.data[0]);\n store.dispatch(\n actions.completeAddingMonitoringUser(monitoringUser.userName, addedMonitoringUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingMonitoringUser(monitoringUser.userName, error));\n }\n }\n );\n}\n\nexport function* watchAddMonitoringUsersStarted() {\n yield takeEvery(types.MONITORING_USER_ADD_STARTED, addMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editMonitoringUser(action) {\n const monitoringUser = action.payload;\n const oldMonitoringUser = yield select((state) =>\n selectors.getMonitoringUser(state, monitoringUser.oldUserName)\n );\n saveUserService(\n { ...monitoringUser },\n {\n successAction: (response) => {\n const editedMonitoringUser = camelcaseKeys(response?.data[0]);\n store.dispatch(\n actions.completeEditingMonitoringUser(monitoringUser.oldUserName, editedMonitoringUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingMonitoringUser(oldMonitoringUser, error));\n }\n }\n );\n}\n\nexport function* watchEditMonitoringUsersStarted() {\n yield takeEvery(types.MONITORING_USER_EDIT_STARTED, editMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeMonitoringUser(action) {\n const { users, usersName } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/delete`, {\n method: 'POST',\n body: JSON.stringify({ users }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingMonitoringUser(users, usersName));\n\n //verificar si en la lista de usuario eliminados esta incluido el usuario logeado\n const loggedUsername = yield select(authSelectors.getAuthUsername);\n //si esta en la lista, forzamos un logout\n if (users.includes(loggedUsername)) yield put(authActions.logout());\n else\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: users.length > 1 ? 'users.users' : 'users.user'\n }),\n multiple: users.length > 1,\n name: usersName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingMonitoringUser(users, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingMonitoringUser(users, error));\n }\n}\n\nexport function* watchRemoveMonitoringUserStarted() {\n yield takeEvery(types.MONITORING_USER_REMOVE_STARTED, removeMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE USER PASSWORD */\n/* -------------------------------------------------------------------------- */\nfunction* updateMonitoringUserPassword(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/user/password`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changePassword.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMonitoringUserPassword(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMonitoringUserPassword(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMonitoringUserPassword(error));\n }\n}\n\nexport function* watchUpdateMonitoringUserPasswordStarted() {\n yield takeEvery(types.MONITORING_USER_UPDATE_PASSWORD_STARTED, updateMonitoringUserPassword);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SAVE ROLES AND PERMISSIONS */\n/* -------------------------------------------------------------------------- */\nfunction* saveRolesAndPermissions(action) {\n const rolesAndPermissions = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/user/saveRolesAndPermissions`, {\n method: 'POST',\n body: JSON.stringify(rolesAndPermissions),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSavingMonitoringUserRolesAndPermissions(rolesAndPermissions));\n alerts.showSuccessRolesAndPermissionsSavedMessage({\n name: rolesAndPermissions.userName\n });\n const userInSession = yield select(authSelectors.getAuthUser);\n if (rolesAndPermissions.userName === userInSession.username) {\n yield put(authActions.startForceRefreshToken());\n }\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSaveMonitoringUserRolesAndPermissionsStarted() {\n yield takeEvery(types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED, saveRolesAndPermissions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* assignSchedule(action) {\n const userAssignSchedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/AssignSchedule`, {\n method: 'POST',\n body: JSON.stringify(userAssignSchedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAssigningScheduleUsers(userAssignSchedule));\n alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: 'common.schedule'\n }),\n name: userAssignSchedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignScheduleUsersStarted() {\n yield takeEvery(types.USERS_ASSIGN_SCHEDULE_STARTED, assignSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UNASSIGN SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* unassignSchedule(action) {\n const userAssignSchedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/UnassignSchedule`, {\n method: 'POST',\n body: JSON.stringify(userAssignSchedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeUnassigningScheduleUsers(userAssignSchedule));\n alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'common.schedule'\n })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchUnassignScheduleUsersStarted() {\n yield takeEvery(types.USERS_UNASSIGN_SCHEDULE_STARTED, unassignSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchMonitoringUserById(action) {\n const monitoringUserId = action.payload;\n getUserByIdService(\n {\n monitoringUserId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingMonitoringUser(resultData, [resultData.userName]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMonitoringUser(error));\n }\n }\n );\n}\n\nexport function* watchFetchMonitoringUserById() {\n yield takeEvery(types.MONITORING_USER_FETCH_STARTED, fetchMonitoringUserById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplan = new schema.Entity('workplans', {}, { idAttribute: 'workplanId' });\nexport const workplans = new schema.Array(workplan);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/workplans';\nimport * as types from '../../types/workplans';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplans';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as workplanSelectors from '../../reducers/workplans';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport {\n getWorkplansListService,\n deleteWorkplanService,\n saveWorkplanService\n} from '../../services/workplans';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getWorkplansListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplans },\n result //order\n } = normalize(resultData, schemas.workplans); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingWorkplans(workplans, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplans(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansList() {\n yield takeEvery(types.WORKPLANS_FETCH_STARTED, fetchWorkplansList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchWorkplansList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getWorkplansListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplans },\n result //order\n } = normalize(resultData, schemas.workplans); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingWorkplans(workplans, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingWorkplans(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchWorkplansList() {\n yield takeEvery(types.WORKPLANS_PARTIAL_FETCH_STARTED, partialFetchWorkplansList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LOCATIONS LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplanLocationsList(action) {\n const workplanId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getLocations`, {\n method: 'POST',\n body: JSON.stringify({ workplanId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const locations = jsonResult.data.map((result) => camelcaseKeys(result));\n yield put(actions.completeFetchingWorkplanLocations(workplanId, locations));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanLocations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanLocations(error));\n }\n}\n\nexport function* watchFetchWorkplanLocationsList() {\n yield takeEvery(types.WORKPLAN_SELECTED, fetchWorkplanLocationsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkplan(action) {\n const workplan = action.payload;\n\n saveWorkplanService(\n { ...workplan, workplanId: null },\n {\n successAction: async (response) => {\n const addedWorkplan = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingWorkplan(workplan.workplanId, addedWorkplan));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failAddingWorkplan(workplan.workplanId, error));\n }\n },\n true\n );\n}\n\nexport function* watchAddWorkplansStarted() {\n yield takeEvery(types.WORKPLAN_ADD_STARTED, addWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkplan(action) {\n const workplan = action.payload;\n const { oldWorkplan } = yield select(selectors.getWorkplan, workplan.workplanId);\n\n saveWorkplanService(\n workplan,\n {\n successAction: async (response) => {\n const editedWorkplan = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingWorkplan(editedWorkplan));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failEditingWorkplan(oldWorkplan, error));\n }\n },\n false\n );\n}\n\nexport function* watchEditWorkplansStarted() {\n yield takeEvery(types.WORKPLAN_EDIT_STARTED, editWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplan(action) {\n const { workplanId } = action.payload;\n const workplanDeleted = yield select(workplanSelectors.getWorkplan, workplanId);\n\n deleteWorkplanService(\n { workplanId, workplanName: workplanDeleted?.workplanName },\n {\n successAction: async (response) => {\n store.dispatch(actions.completeRemovingWorkplan(workplanId));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingWorkplan(workplanId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanStarted() {\n yield takeEvery(types.WORKPLAN_REMOVE_STARTED, removeWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy Workplan */\n/* -------------------------------------------------------------------------- */\nfunction* copyWorkplan(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/copyWorkplan`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeCopyWorkplan(\n workplan.workplanId,\n jsonResult.data.newWorkplanId,\n workplan.newWorkplanName,\n workplan.organizationId,\n workplan.divisionId,\n workplan.subdivisionId\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.copySuccessful'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.copyError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.copyError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyWorkplan(error));\n }\n}\n\nexport function* watchCopyWorkplanStarted() {\n yield takeEvery(types.WORKPLAN_COPY_STARTED, copyWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Origin Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignOriginGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.originGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignOriginGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignOriginGeofenceWorkplan(\n workplan.workplanIds,\n workplan.originGeofenceId,\n geofence.geofenceName,\n workplan.originExitWindow,\n workplan.originValidationWindow\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignOriginGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignOriginGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignOriginGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED, assignOriginGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Work Area Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignWorkGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.workGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignWorkGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignWorkGeofenceWorkplan(\n workplan.workplanIds,\n workplan.workGeofenceId,\n geofence.geofenceName,\n workplan.workGeofenceArriveWindow,\n workplan.workGeofenceMaxTime\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignWorkGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignWorkGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignWorkGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED, assignWorkGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Destination Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignDestinationGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.destinationGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignDestinationGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignDestinationGeofenceWorkplan(\n workplan.workplanIds,\n workplan.destinationGeofenceId,\n geofence.geofenceName\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignDestinationGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignDestinationGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignDestinationGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED, assignDestinationGeofence);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplan Assignment */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const assignmentBySchedule = new schema.Entity(\n 'assignmentsBySchedule',\n {},\n { idAttribute: 'assignmentId' }\n);\nexport const assignmentsBySchedule = new schema.Array(assignmentBySchedule);\n\nexport const assignmentByDateTime = new schema.Entity(\n 'assignmentsByDateTime',\n {},\n { idAttribute: 'assignmentId' }\n);\nexport const assignmentsByDateTime = new schema.Array(assignmentByDateTime);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../../actions/workplansAssignments';\nimport * as types from '../../types/workplansAssignments';\nimport * as selectors from '../../reducers/workplansAssignments';\nimport * as schemas from '../../schemas/workplanAssignments';\nimport camelcaseKeys from 'camelcase-keys';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getWorkplansAssignmentsListService,\n saveWorkplanAssignmentByScheduleService,\n saveWorkplanAssignmentByDateTimeService,\n deleteWorkplanAssignmentService\n} from '../../services/workplansAssignments';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssignmentsList(action) {\n const { operatorId, organizationId } = action.payload;\n getWorkplansAssignmentsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultDataWS = response.data.withScheduleList.map((result) => camelcaseKeys(result));\n const resultDataWDT = response.data.withDateTimeList.map((result) => camelcaseKeys(result));\n const {\n entities: { assignmentsBySchedule },\n result: withScheduleOrder //order\n } = normalize(resultDataWS, schemas.assignmentsBySchedule); //normalize data to byId and order\n const {\n entities: { assignmentsByDateTime },\n result: withDateTimeOrder //order\n } = normalize(resultDataWDT, schemas.assignmentsByDateTime); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingAssignmentsWithSchedule(assignmentsBySchedule, withScheduleOrder)\n );\n store.dispatch(\n actions.completeFetchingAssignmentsWithDateTime(assignmentsByDateTime, withDateTimeOrder)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssignments(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansAssignmentsList() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_FETCH_STARTED, fetchAssignmentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT ASSIGNMENT BY SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignmentBySchedule(action) {\n const assignment = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanAssignmentSchedule`,\n {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...assignment\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAssignment = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAssignmentWithSchedule(editedAssignment));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'workplans.workplanAssignment'\n }),\n name: editedAssignment.workplanName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignmentByScheduleEditFailure'\n }),\n errorNumber: jsonResult.number\n };\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'bySchedule')\n );\n yield put(actions.failEditingAssignmentWithSchedule(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'workplans.assignmentByDateTimeEditFailure' }),\n errorNumber: -1\n };\n\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'bySchedule')\n );\n yield put(actions.failEditingAssignmentWithSchedule(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditWorkplanAssignmentByScheduleStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED, editAssignmentBySchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT ASSIGNMENT BY DATETIME */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignmentByDateTime(action) {\n const assignment = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanAssignmentDateTime`,\n {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...assignment\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAssignment = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAssignmentWithDateTime(editedAssignment));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'workplans.workplanAssignment'\n }),\n name: editedAssignment.workplanName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignmentByDateTimeEditFailure'\n }),\n errorNumber: jsonResult.number\n };\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'byDateTime')\n );\n yield put(actions.failEditingAssignmentWithDateTime(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'workplans.assignmentByDateTimeEditFailure' }),\n errorNumber: -1\n };\n\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'byDateTime')\n );\n yield put(actions.failEditingAssignmentWithDateTime(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditWorkplanAssignmentByDateTimeStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED, editAssignmentByDateTime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplanAssignment(action) {\n const { assignmentId, assignmentType } = action.payload;\n const assignmentDeleted = yield select(\n selectors.getWorkplansAssignment,\n assignmentId,\n assignmentType\n );\n\n deleteWorkplanAssignmentService(\n {\n assignmentId,\n assignmentName: `${assignmentDeleted?.workplanName}-${assignmentDeleted?.unitName}`\n },\n {\n successAction: async (response) => {\n assignmentType === 'bySchedule'\n ? store.dispatch(actions.completeRemovingAssignmentWithSchedule(assignmentId))\n : assignmentType === 'byDateTime'\n ? store.dispatch(actions.completeRemovingAssignmentWithDateTime(assignmentId))\n : '';\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingAssignment(assignmentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanAssignmentStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED, removeWorkplanAssignment);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplan Comments */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const comment = new schema.Entity('comments', {}, { idAttribute: 'jobCommentId' });\nexport const comments = new schema.Array(comment);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/workplan';\n\nexport const getWorkplanCommentsListService = async (\n request: any,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getComments`, request);\n};\n\nexport const saveCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'workplans.comment',\n action: request.workplanCommentId ? 'Edit' : 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveComment`, request);\n};\n\nexport const deleteCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'workplans.comment',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteComment`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/workplansComments';\nimport * as types from '../../types/workplansComments';\nimport * as selectors from '../../reducers/workplansComments';\nimport * as schemas from '../../schemas/workplansComments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteCommentService,\n getWorkplanCommentsListService,\n saveCommentService\n} from '../../services/workplansComments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCommentsList(action) {\n const { visitId, locationId } = action.payload;\n\n getWorkplanCommentsListService(\n { visitId, locationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { comments },\n result //order\n } = normalize(resultData, schemas.comments); //normalize data to byId and order\n store.dispatch(actions.completeFetchingComments(comments, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingComments(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansCommentsList() {\n yield takeEvery(types.WORKPLAN_COMMENTS_FETCH_STARTED, fetchCommentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addComment(action) {\n const comment = action.payload;\n saveCommentService(\n { ...comment, jobCommentId: null },\n {\n successAction: (response) => {\n const addedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingComment(comment.jobCommentId, addedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingComment(comment.jobCommentId, error));\n }\n }\n );\n}\n\nexport function* watchAddWorkplansCommentStarted() {\n yield takeEvery(types.WORKPLAN_COMMENT_ADD_STARTED, addComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeComment(action) {\n const { jobCommentId } = action.payload;\n const deletedComment = yield select((state) =>\n selectors.getWorkplansComment(state, jobCommentId)\n );\n deleteCommentService(\n { ...deletedComment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingComment(jobCommentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingComment(jobCommentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplansCommentStarted() {\n yield takeEvery(types.WORKPLAN_COMMENT_REMOVE_STARTED, removeComment);\n}\n","import * as types from '../../types/workplansExecutionLocations';\n\nexport const startAddingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED,\n payload: workplanExecutionLocation\n});\nexport const completeAddingWorkplanExecutionLocation = (oldId, workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED,\n payload: { oldId, workplanExecutionLocation }\n});\nexport const failAddingWorkplanExecutionLocation = (oldId, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED,\n payload: workplanExecutionLocation\n});\nexport const completeEditingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED,\n payload: workplanExecutionLocation\n});\nexport const failEditingWorkplanExecutionLocation = (oldWorkplanExecutionLocation, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED,\n payload: {\n oldWorkplanExecutionLocation,\n error\n }\n});\n\nexport const startRemovingWorkplanExecutionLocation = (\n visitId,\n locationId,\n sequenceNumber,\n applyToWorkplan\n) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED,\n payload: {\n visitId,\n locationId,\n sequenceNumber,\n applyToWorkplan\n }\n});\nexport const completeRemovingWorkplanExecutionLocation = (workplanExecutionLocationId) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED,\n payload: {\n workplanExecutionLocationId\n }\n});\nexport const failRemovingWorkplanExecutionLocation = (workplanExecutionLocationId, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED,\n payload: {\n workplanExecutionLocationId,\n error\n }\n});\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport * as actions from '../../actions/workplansExecutionLocations';\nimport * as types from '../../types/workplansExecutionLocations';\nimport * as selectors from '../../reducers/workplansExecutionLocations';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n saveWorkplanExecutionLocationService,\n deleteWorkplanExecutionLocationService\n} from '../../services/workplans';\nimport { store } from 'redux/storeConfig/store';\n\nconst getWorkplanExecutionLocationId = (workplanExecutionLocation) =>\n `${workplanExecutionLocation.visitId}-${workplanExecutionLocation.locationId}`;\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n\n saveWorkplanExecutionLocationService(workplanExecutionLocation, {\n successAction: async (response) => {\n const addedWorkplanExecutionLocation = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeAddingWorkplanExecutionLocation(\n workplanExecutionLocation.workplanExecutionLocationId,\n {\n workplanExecutionLocationId: getWorkplanExecutionLocationId(\n addedWorkplanExecutionLocation\n ),\n ...addedWorkplanExecutionLocation\n }\n )\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failAddingWorkplanExecutionLocation(workplanExecutionLocation.workplanId, error)\n );\n }\n });\n}\n\nexport function* watchAddWorkplanExecutionLocationsStarted() {\n yield takeEvery(types.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED, addWorkplanExecutionLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n const { oldWorkplanExecutionLocation } = yield select(\n selectors.getLocation,\n workplanExecutionLocation.workplanExecutionLocationId\n );\n\n saveWorkplanExecutionLocationService(workplanExecutionLocation, {\n successAction: async (response) => {\n const editedWorkplanExecutionLocation = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditingWorkplanExecutionLocation({\n workplanExecutionLocationId: getWorkplanExecutionLocationId(\n editedWorkplanExecutionLocation\n ),\n ...editedWorkplanExecutionLocation\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failEditingWorkplanExecutionLocation(oldWorkplanExecutionLocation, error)\n );\n }\n });\n}\n\nexport function* watchEditWorkplanExecutionLocationsStarted() {\n yield takeEvery(types.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED, editWorkplanExecutionLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n const workplanExecutionLocationDeleted = yield select(\n selectors.getLocation,\n getWorkplanExecutionLocationId(workplanExecutionLocation)\n );\n\n deleteWorkplanExecutionLocationService(\n { ...workplanExecutionLocation, locationName: workplanExecutionLocationDeleted?.locationName },\n {\n successAction: async (response) => {\n store.dispatch(\n actions.completeRemovingWorkplanExecutionLocation(\n getWorkplanExecutionLocationId(workplanExecutionLocation)\n )\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failRemovingWorkplanExecutionLocation(\n getWorkplanExecutionLocationId(workplanExecutionLocation),\n error\n )\n );\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanExecutionLocationStarted() {\n yield takeEvery(\n types.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED,\n removeWorkplanExecutionLocation\n );\n}\n","import * as types from '../../types/workplansExecutions';\n\nexport const startFetchingWorkplansExecutions = (filters = {}) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansExecutions = (\n entities,\n order,\n indicators,\n executionStatus,\n geographicStatus\n) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n executionStatus,\n geographicStatus\n }\n});\nexport const failFetchingWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingWorkplanExecution = (visitId) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_STARTED,\n payload: {\n visitId\n }\n});\nexport const completeFetchingWorkplanExecution = (\n workplanExecution,\n workplanExecutionLocationsEntities,\n workplanExecutionLocationsOrder\n) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_COMPLETED,\n payload: {\n workplanExecution,\n workplanExecutionLocationsEntities,\n workplanExecutionLocationsOrder\n }\n});\nexport const failFetchingWorkplanExecution = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCancelWorkplansExecutions = (visitId, unitId, assignmentId?: number) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_STARTED,\n payload: { visitId, unitId, assignmentId }\n});\nexport const completeCancelWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failCancelWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFinalizeWorkplansExecutions = (visitId, unitId, assignmentId?: number) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_STARTED,\n payload: { visitId, unitId, assignmentId }\n});\nexport const completeFinalizeWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failFinalizeWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startManualTransitWorkplansExecutions = (visitId, unitId, reason) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED,\n payload: { visitId, unitId, reason }\n});\nexport const completeManualTransitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failManualTransitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeUnitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED,\n payload: { visitId, unitId }\n});\nexport const completeChangeUnitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failChangeUnitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignUnitWorkplansExecutions = (assignation) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitWorkplansExecutions = (assignation) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplanExecution = new schema.Entity(\n 'workplansExecutions',\n {},\n { idAttribute: 'visitId' }\n);\nexport const workplansExecutions = new schema.Array(workplanExecution);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplanExecutionLocation = new schema.Entity(\n 'workplanExecutionLocations',\n {},\n { idAttribute: (value) => `${value.visitId}-${value.locationId}` }\n);\nexport const workplanExecutionLocations = new schema.Array(workplanExecutionLocation);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansExecutions';\nimport * as types from '../../types/workplansExecutions';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplansExecutions';\nimport * as schemasWorkplanExecutionLocation from '../../schemas/workplansExecutionLocations';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST EXECUTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansExecutions(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getWorkplansExecutions`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const executionStatus = camelcaseKeys(jsonResult.data.executionStatus);\n\n const geographicStatus = camelcaseKeys(jsonResult.data.geographicStatus);\n\n const resultData = jsonResult.data.workplansList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansExecutions },\n result //order\n } = normalize(resultData, schemas.workplansExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingWorkplansExecutions(\n workplansExecutions,\n result,\n indicators,\n executionStatus,\n geographicStatus\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchMonitorMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchMonitorMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansExecutions(error));\n }\n}\n\nexport function* watchFetchWorkplansExecutions() {\n yield takeEvery(types.WORKPLANS_EXECUTIONS_FETCH_STARTED, fetchWorkplansExecutions);\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH EXECUTION */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplanExecution(action) {\n try {\n const workplanExecution = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...workplanExecution })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const workplanExecution = camelcaseKeys(jsonResult.data.workplanExecution);\n\n const resultData = jsonResult.data.locationsList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplanExecutionLocations },\n result //order\n } = normalize(resultData, schemasWorkplanExecutionLocation.workplanExecutionLocations); //normalize data to byId and order\n\n yield put(\n actions.completeFetchingWorkplanExecution(\n workplanExecution,\n workplanExecutionLocations,\n result\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.fetchWorkplanExecutionError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanExecution(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.fetchWorkplanExecutionError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanExecution(error));\n }\n}\n\nexport function* watchFetchWorkplanExecution() {\n yield takeEvery(types.WORKPLAN_EXECUTION_FETCH_STARTED, fetchWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Cancel Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* cancelWorkplanExecution(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/cancelWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeCancelWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.selectedWorkplanWasCanceled'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanCancelationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanCancelationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelWorkplansExecutions(error));\n }\n}\n\nexport function* watchCancelWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_CANCEL_STARTED, cancelWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Finalize Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* finalizeWorkplanExecution(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/finalizeWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeFinalizeWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.selectedWorkplanWasFinished'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFinalizationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFinalizationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeWorkplansExecutions(error));\n }\n}\n\nexport function* watchFinalizeWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_FINALIZE_STARTED, finalizeWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Manual Transit Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* manualTransitWorkplanExecution(action) {\n const newStatus = 3;\n const { visitId, unitId, reason } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanExecutionManualTransit`,\n {\n method: 'POST',\n body: JSON.stringify({ visitId, unitId, reason }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeManualTransitWorkplansExecutions(visitId, unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessage'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitWorkplansExecutions(error));\n }\n}\n\nexport function* watchManualTransitWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED, manualTransitWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Change Workplan Execution Unit */\n/* -------------------------------------------------------------------------- */\nfunction* changeWorkplanExecutionUnit(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/changeUnit`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeChangeUnitWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.unitWasSuccessfullyChanged'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitChangeIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangeUnitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitChangeIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangeUnitWorkplansExecutions(error));\n }\n}\n\nexport function* watchChangeWorkplanExecutionUnit() {\n yield takeEvery(types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED, changeWorkplanExecutionUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Workplan Execution Unit */\n/* -------------------------------------------------------------------------- */\nconst getDatabaseErrorFromString = (text: string) => {\n const match: any = /(database\\.error\\.\\w+\\.\\w+)/.exec(text);\n let result: string | undefined = undefined;\n try {\n result = match[1];\n } catch (error) {\n result = undefined;\n }\n return result;\n};\n\nfunction* assignWorkplanExecutionUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(assignation)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitWorkplansExecutions(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const jsonErrorMessage = jsonResult.message;\n const typeJsonErrorMessage = typeof jsonResult.message;\n const errorMessage: string =\n response.status === 500\n ? getDatabaseErrorFromString(jsonResult.message) ??\n 'workplans.unitAssignmentIsNotPossibleRightNow'\n : 'workplans.unitAssignmentIsNotPossibleRightNow';\n // Validates status code is 500 server error\n const error: any = {\n errorMessage: appIntl().formatMessage({\n id: errorMessage\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitWorkplansExecutions(error));\n }\n}\n\nexport function* watchAsignWorkplanExecutionUnit() {\n yield takeEvery(types.WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED, assignWorkplanExecutionUnit);\n}\n","import * as types from '../../types/workplansReport';\n\nexport const startFetchingWorkplansReport = (filters = {}) => ({\n type: types.WORKPLANS_REPORT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansReport = (\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n) => ({\n type: types.WORKPLANS_REPORT_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n }\n});\nexport const failFetchingWorkplansReport = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_REPORT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansReport';\nimport * as types from '../../types/workplansReport';\nimport * as selectors from '../../reducers/workplans';\nimport * as workplansExecutionsSchemas from '../../schemas/workplansExecutions';\nimport * as unitsSchemas from '../../../Units/schemas';\nimport * as locationsSchemas from '../../../../../redux/schemas/locations';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST REPORT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansReport(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getReport`, {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...filters\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const units = jsonResult.data.units.map((result) => camelcaseKeys(result));\n const {\n entities: { units: unitsEntities },\n result: unitsOrder //order\n } = normalize(units, unitsSchemas.units); //normalize data to byId and order\n\n const locations = jsonResult.data.locations.map((result) => camelcaseKeys(result));\n const {\n entities: { locations: locationsEntities },\n result: locationsOrder //order\n } = normalize(locations, locationsSchemas.locations); //normalize data to byId and order\n\n const resultData = jsonResult.data.workplansList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansExecutions },\n result //order\n } = normalize(resultData, workplansExecutionsSchemas.workplansExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingWorkplansReport(\n workplansExecutions,\n result,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchReportMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansReport(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchReportMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansReport(error));\n }\n}\n\nexport function* watchFetchWorkplansReport() {\n yield takeEvery(types.WORKPLANS_REPORT_FETCH_STARTED, fetchWorkplansReport);\n}\n","import * as types from '../../types/workplansVisits';\n\nexport const startFetchingWorkplansVisits = (filters = {}) => ({\n type: types.WORKPLANS_VISITS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansVisits = (entities, order) => ({\n type: types.WORKPLANS_VISITS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingWorkplansVisits = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_VISITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingWorkplansAllVisits = (filters = {}) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansAllVisits = (entities, order) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingWorkplansAllVisits = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplansVisit = new schema.Entity(\n 'workplansVisits',\n {},\n { idAttribute: (value) => `${value.visitId}-${value.locationId}` }\n);\nexport const workplansVisits = new schema.Array(workplansVisit);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplansVisit = new schema.Entity(\n 'workplansVisits',\n {},\n { idAttribute: 'historicalVisitId' }\n);\nexport const workplansVisits = new schema.Array(workplansVisit);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansVisits';\nimport * as types from '../../types/workplansVisits';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplansVisits';\nimport * as historicalSchemas from '../../schemas/workplansHistoricalVisits';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getWorkplanAllVisitsListService,\n getWorkplanVisitsListService\n} from '../../services/workplansVisits';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST VISITS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansVisits(action) {\n const filters = action.payload;\n\n getWorkplanVisitsListService(\n { ...filters },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansVisits },\n result //order\n } = normalize(resultData, schemas.workplansVisits); //normalize data to byId and order\n store.dispatch(actions.completeFetchingWorkplansVisits(workplansVisits, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplansVisits(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansVisits() {\n yield takeEvery(types.WORKPLANS_VISITS_FETCH_STARTED, fetchWorkplansVisits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST ALL VISITS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansAllVisits(action) {\n const { visitId } = action.payload;\n getWorkplanAllVisitsListService(\n { visitId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansVisits },\n result //order\n } = normalize(resultData, historicalSchemas.workplansVisits); //normalize data to byId and order\n store.dispatch(actions.completeFetchingWorkplansAllVisits(workplansVisits, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplansAllVisits(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansAllVisits() {\n yield takeEvery(types.WORKPLANS_ALL_VISITS_FETCH_STARTED, fetchWorkplansAllVisits);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const configuration = new schema.Entity(\n \"configurations\",\n {},\n { idAttribute: \"deviceConfigurationId\" }\n);\nexport const configurations = new schema.Array(configuration);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport * as actions from '../../actions/configurations';\nimport * as types from '../../types/configurations';\nimport * as selectors from '../../reducers/configurations';\nimport * as schemas from '../../schemas/configurations';\nimport * as authSelectors from '../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchConfigurationsList(action) {\n const { brandId, modelId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (brandId && modelId) {\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/model/configurations/${brandId}/${modelId}`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { configurations },\n result //order\n } = normalize(resultData, schemas.configurations); //normalize data to byId and order\n yield put(actions.completeFetchingConfigurations(configurations, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingConfigurations(error));\n }\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingConfigurations(error));\n }\n}\n\nexport function* watchFetchConfigurationsList() {\n yield takeEvery(types.CONFIGURATIONS_FETCH_STARTED, fetchConfigurationsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const model = new schema.Entity(\n \"models\",\n {},\n { idAttribute: \"deviceModelId\" }\n);\nexport const models = new schema.Array(model);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport * as actions from '../../actions/models';\nimport * as types from '../../types/models';\nimport * as schemas from '../../schemas/models';\nimport * as authSelectors from '../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModelsList(action) {\n const { brandId } = action.payload;\n if (brandId) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/model/${brandId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { models },\n result //order\n } = normalize(resultData, schemas.models); //normalize data to byId and order\n yield put(actions.completeFetchingModels(models, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingModels(error));\n }\n }\n}\n\nexport function* watchFetchModelsList() {\n yield takeEvery(types.MODELS_FETCH_STARTED, fetchModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const brand = new schema.Entity(\n \"brands\",\n {},\n { idAttribute: \"brandId\" }\n);\nexport const brands = new schema.Array(brand);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport * as actions from '../../../actions/static-catalogs/brands';\nimport * as authSelectors from '../../../reducers/auth';\nimport * as schemas from '../../../schemas/brands';\nimport * as types from '../../../types/static-catalogs/brands';\nimport API_BASE_URL from '../../settings/apibaseurl';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchBrandsList(action) {\n const { brandId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/brand`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { brands },\n result //order\n } = normalize(resultData, schemas.brands); //normalize data to byId and order\n yield put(actions.completeFetchingBrands(brands, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingBrands(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingBrands(error));\n }\n}\n\nexport function* watchFetchBrandsList() {\n yield takeEvery(types.BRANDS_FETCH_STARTED, fetchBrandsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Currencies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const currency = new schema.Entity(\n \"currencies\",\n {},\n { idAttribute: \"currencyId\" }\n);\nexport const currencies = new schema.Array(currency);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/currencies';\nimport * as types from '../../../types/static-catalogs/currencies';\nimport * as schemas from '../../../schemas/currencies';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCurrenciesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/profile/currency`, {\n method: 'GET',\n // body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { currencies },\n result //order\n } = normalize(resultData, schemas.currencies); //normalize data to byId and order\n yield put(actions.completeFetchingCurrencies(currencies, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCurrencies(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCurrencies(error));\n }\n}\n\nexport function* watchFetchCurrenciesList() {\n yield takeEvery(types.CURRENCIES_FETCH_STARTED, fetchCurrenciesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Time Zones */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const timeZone = new schema.Entity(\n \"timeZones\",\n {},\n { idAttribute: \"zoneId\" }\n);\nexport const timeZones = new schema.Array(timeZone);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/time-zones';\nimport * as types from '../../../types/static-catalogs/time-zones';\nimport * as selectors from '../../../reducers/static-catalogs/time-zones';\nimport * as schemas from '../../../schemas/time-zones';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchTimeZonesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/profile/timeZone`, {\n method: 'GET',\n // body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { timeZones },\n result //order\n } = normalize(resultData, schemas.timeZones); //normalize data to byId and order\n yield put(actions.completeFetchingTimeZones(timeZones, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingTimeZones(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingTimeZones(error));\n }\n}\n\nexport function* watchFetchTimeZonesList() {\n yield takeEvery(types.TIME_ZONES_FETCH_STARTED, fetchTimeZonesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const provider = new schema.Entity('providers', {}, { idAttribute: 'cellProviderId' });\nexport const providers = new schema.Array(provider);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/cellular-providers';\nimport * as types from '../../../types/static-catalogs/cellular-providers';\nimport * as selectors from '../../../reducers/static-catalogs/cellular-providers';\nimport * as schemas from '../../../schemas/cellular-providers';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchProvidersList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/provider/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { providers },\n result //order\n } = normalize(resultData, schemas.providers); //normalize data to byId and order\n yield put(actions.completeFetchingProviders(providers, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n}\n\nexport function* watchFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_FETCH_STARTED, fetchProvidersList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Countries */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const country = new schema.Entity('countries', {}, { idAttribute: 'countryId' });\nexport const countries = new schema.Array(country);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/countries';\nimport * as types from '../../../types/static-catalogs/countries';\nimport * as selectors from '../../../reducers/static-catalogs/countries';\nimport * as schemas from '../../../schemas/countries';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCountriesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/country/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { countries },\n result //order\n } = normalize(resultData, schemas.countries); //normalize data to byId and order\n yield put(actions.completeFetchingCountries(countries, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCountries(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCountries(error));\n }\n}\n\nexport function* watchFetchCountriesList() {\n yield takeEvery(types.COUNTRIES_FETCH_STARTED, fetchCountriesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicle Makers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicleMaker = new schema.Entity('vehicleMakers', {}, { idAttribute: 'makerId' });\nexport const vehicleMakers = new schema.Array(vehicleMaker);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/vehicle-makers';\nimport * as types from '../../../types/static-catalogs/vehicle-makers';\nimport * as selectors from '../../../reducers/static-catalogs/vehicle-makers';\nimport * as schemas from '../../../schemas/vehicle-makers';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehicleMakersList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicleMaker/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicleMakers },\n result //order\n } = normalize(resultData, schemas.vehicleMakers); //normalize data to byId and order\n yield put(actions.completeFetchingVehicleMakers(vehicleMakers, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleMakers(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleMakers(error));\n }\n}\n\nexport function* watchFetchVehicleMakersList() {\n yield takeEvery(types.VEHICLE_MAKERS_FETCH_STARTED, fetchVehicleMakersList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicle Models */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicleModel = new schema.Entity('vehicleModels', {}, { idAttribute: 'modelId' });\nexport const vehicleModels = new schema.Array(vehicleModel);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/vehicle-models';\nimport * as types from '../../../types/static-catalogs/vehicle-models';\nimport * as selectors from '../../../reducers/static-catalogs/vehicle-models';\nimport * as schemas from '../../../schemas/vehicle-models';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehicleModelsList(action) {\n const maker = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (maker || maker === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicleModel/get`, {\n method: 'POST',\n body: JSON.stringify({ maker }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicleModels },\n result //order\n } = normalize(resultData, schemas.vehicleModels); //normalize data to byId and order\n yield put(actions.completeFetchingVehicleModels(vehicleModels, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleModels(error));\n }\n}\n\nexport function* watchFetchVehicleModelsList() {\n yield takeEvery(types.VEHICLE_MODELS_FETCH_STARTED, fetchVehicleModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Insurance Companies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const insuranceCompany = new schema.Entity(\n 'insuranceCompanies',\n {},\n { idAttribute: 'insuranceCompanyId' }\n);\nexport const insuranceCompanies = new schema.Array(insuranceCompany);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/insurance-companies';\nimport * as types from '../../../types/static-catalogs/insurance-companies';\nimport * as selectors from '../../../reducers/static-catalogs/insurance-companies';\nimport * as schemas from '../../../schemas/insurance-companies';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchInsuranceCompaniesList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/insuranceCompany/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { insuranceCompanies },\n result //order\n } = normalize(resultData, schemas.insuranceCompanies); //normalize data to byId and order\n yield put(actions.completeFetchingInsuranceCompanies(insuranceCompanies, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceCompanies(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceCompanies(error));\n }\n}\n\nexport function* watchFetchInsuranceCompaniesList() {\n yield takeEvery(types.INSURANCE_COMPANIES_FETCH_STARTED, fetchInsuranceCompaniesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Insurance Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const insuranceAgent = new schema.Entity(\n 'insuranceAgents',\n {},\n { idAttribute: 'insuranceAgentId' }\n);\nexport const insuranceAgents = new schema.Array(insuranceAgent);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/insurance-agents';\nimport * as types from '../../../types/static-catalogs/insurance-agents';\nimport * as selectors from '../../../reducers/static-catalogs/insurance-agents';\nimport * as schemas from '../../../schemas/insurance-agents';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchInsuranceAgentsList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/insuranceAgent/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { insuranceAgents },\n result //order\n } = normalize(resultData, schemas.insuranceAgents); //normalize data to byId and order\n yield put(actions.completeFetchingInsuranceAgents(insuranceAgents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceAgents(error));\n }\n}\n\nexport function* watchFetchInsuranceAgentsList() {\n yield takeEvery(types.INSURANCE_AGENTS_FETCH_STARTED, fetchInsuranceAgentsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Brands */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorBrand = new schema.Entity('sensorBrands', {}, { idAttribute: 'brandId' });\nexport const sensorBrands = new schema.Array(sensorBrand);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-brands';\nimport * as types from '../../../types/static-catalogs/sensor-brands';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-brands';\nimport * as schemas from '../../../schemas/sensor-brands';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorBrandsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorBrand/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorBrands },\n result //order\n } = normalize(resultData, schemas.sensorBrands); //normalize data to byId and order\n yield put(actions.completeFetchingSensorBrands(sensorBrands, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorBrands(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorBrands(error));\n }\n}\n\nexport function* watchFetchSensorBrandsList() {\n yield takeEvery(types.SENSOR_BRANDS_FETCH_STARTED, fetchSensorBrandsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Models */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorModel = new schema.Entity('sensorModels', {}, { idAttribute: 'sensorModelId' });\nexport const sensorModels = new schema.Array(sensorModel);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-models';\nimport * as types from '../../../types/static-catalogs/sensor-models';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-models';\nimport * as schemas from '../../../schemas/sensor-models';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorModelsList(action) {\n const brandId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorModel/get`, {\n method: 'POST',\n body: JSON.stringify({ brandId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorModels },\n result //order\n } = normalize(resultData, schemas.sensorModels); //normalize data to byId and order\n yield put(actions.completeFetchingSensorModels(sensorModels, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorModels(error));\n }\n}\n\nexport function* watchFetchSensorModelsList() {\n yield takeEvery(types.SENSOR_MODELS_FETCH_STARTED, fetchSensorModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Measures */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorMeasure = new schema.Entity('sensorMeasures', {}, { idAttribute: 'measureId' });\nexport const sensorMeasures = new schema.Array(sensorMeasure);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-measures';\nimport * as types from '../../../types/static-catalogs/sensor-measures';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-measures';\nimport * as schemas from '../../../schemas/sensor-measures';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorMeasuresList(action) {\n const { sensorId, sensorModelId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorMeasure/get`, {\n method: 'POST',\n body: JSON.stringify({ sensorId, sensorModelId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorMeasures },\n result //order\n } = normalize(resultData, schemas.sensorMeasures); //normalize data to byId and order\n yield put(actions.completeFetchingSensorMeasures(sensorMeasures, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorMeasures(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorMeasures(error));\n }\n}\n\nexport function* watchFetchSensorMeasuresList() {\n yield takeEvery(types.SENSOR_MEASURES_FETCH_STARTED, fetchSensorMeasuresList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema PaymentMethods */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const paymentMethod = new schema.Entity(\n 'paymentMethods',\n {},\n { idAttribute: 'paymentMethodId' }\n);\nexport const paymentMethods = new schema.Array(paymentMethod);\n","import { HttpWebtrack } from 'utility/http';\nimport { PaymentMethods } from '../types';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/vehicleFuel';\n\nexport const getPaymentMethods = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n return httpWebtrack.get(`${baseUrl}/paymentMethods`);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/payment-methods';\nimport * as types from '../../../types/static-catalogs/payment-methods';\nimport * as schemas from '../../../schemas/payment-methods';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\nimport { getPaymentMethods } from 'views/screens/VehicleFuel/services/paymentMethodsService';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchPaymentMethodsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const jsonResult = yield call(getPaymentMethods);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { paymentMethods },\n result //order\n } = normalize(resultData, schemas.paymentMethods); //normalize data to byId and order\n yield put(actions.completeFetchingPaymentMethods(paymentMethods, result));\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingPaymentMethods(error));\n }\n}\n\nexport function* watchFetchPaymentMethodsList() {\n yield takeEvery(types.PAYMENT_METHODS_FETCH_STARTED, fetchPaymentMethodsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Currencies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const locationClass = new schema.Entity(\n 'locationClasses',\n {},\n { idAttribute: 'locationClassId' }\n);\nexport const locationClasses = new schema.Array(locationClass);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/location-classes';\nimport * as types from '../../../types/static-catalogs/location-classes';\nimport * as schemas from '../../../schemas/location-classes';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchLocationClassesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/location/getLocationClasses`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locationClasses },\n result //order\n } = normalize(resultData, schemas.locationClasses); //normalize data to byId and order\n yield put(actions.completeFetchingLocationClasses(locationClasses, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingLocationClasses(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingLocationClasses(error));\n }\n}\n\nexport function* watchFetchLocationClassesList() {\n yield takeEvery(types.LOCATION_CLASSES_FETCH_STARTED, fetchLocationClassesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema SIMS */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sim = new schema.Entity('sims', {}, { idAttribute: 'simCardId' });\nexport const sims = new schema.Array(sim);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { getSimsListService } from '../services';\nimport { getSimByIdService } from '../services';\nimport * as simSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSimsList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload.filters;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getSimsListService(\n {\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sims },\n result //order\n } = normalize(resultData, schemas.sims); //normalize data to byId and order\n store.dispatch(actions.completeFetchingSims(sims, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingSims(error));\n }\n }\n );\n}\n\nexport function* watchFetchSimsList() {\n yield takeEvery(types.SIMS_FETCH_STARTED, fetchSimsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSimsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getSimsListService(\n {\n userFetchDate: date,\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sims },\n result //order\n } = normalize(resultData, schemas.sims); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingSims(sims, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingSims(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchSimsList() {\n yield takeEvery(types.SIMS_PARTIAL_FETCH_STARTED, partialFetchSimsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSim(action) {\n const sim = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/save`, {\n method: 'POST',\n body: JSON.stringify({ ...sim, simId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSim = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSim(sim.simId, addedSim));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: sim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSim(sim.simId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSim(sim.simId, error));\n }\n}\n\nexport function* watchAddSimsStarted() {\n yield takeEvery(types.SIM_ADD_STARTED, addSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSim(action) {\n const sim = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/save`, {\n method: 'POST',\n body: JSON.stringify(sim),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSim = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSim(editedSim));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: editedSim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSim } = yield select((state) => selectors.getSim(state.sims, sim.simId));\n yield put(actions.failEditingSim(oldSim, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldSim } = yield select((state) => selectors.getSim(state.sims, sim.simId));\n yield put(actions.failEditingSim(oldSim, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSimsStarted() {\n yield takeEvery(types.SIM_EDIT_STARTED, editSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSim(action) {\n const { simId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedSim = yield select((state) => simSelectors.getSim(state, simId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/delete`, {\n method: 'POST',\n body: JSON.stringify({ simId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingSim(simId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: deletedSim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSim(simId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSim(simId, error));\n }\n}\n\nexport function* watchRemoveSimStarted() {\n yield takeEvery(types.SIM_REMOVE_STARTED, removeSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH SIM BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchSimById(action) {\n const simId = action.payload;\n getSimByIdService(\n {\n simId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingSim(resultData, [resultData.simCardId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingSim(error));\n }\n }\n );\n}\n\nexport function* watchFetchSimById() {\n yield takeEvery(types.SIM_FETCH_STARTED, fetchSimById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicles */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicle = new schema.Entity('vehicles', {}, { idAttribute: 'vehicleId' });\nexport const vehicles = new schema.Array(vehicle);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport { getVehiclesListService } from '../services';\nimport * as types from '../types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehiclesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getVehiclesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicles },\n result //order\n } = normalize(resultData, schemas.vehicles); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingVehicles(vehicles, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingVehicles(error));\n }\n }\n );\n}\n\nexport function* watchFetchVehiclesList() {\n yield takeEvery(types.VEHICLES_FETCH_STARTED, fetchVehiclesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchVehiclesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getVehiclesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicles },\n result //order\n } = normalize(resultData, schemas.vehicles); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingVehicles(vehicles, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingVehicles(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchVehiclesList() {\n yield takeEvery(types.VEHICLES_PARTIAL_FETCH_STARTED, partialFetchVehiclesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addVehicle(action) {\n const vehicle = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/save`, {\n method: 'POST',\n body: JSON.stringify({ ...vehicle, vehicleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedVehicle = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingVehicle(vehicle.vehicleId, addedVehicle));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: vehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingVehicle(vehicle.vehicleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingVehicle(vehicle.vehicleId, error));\n }\n}\n\nexport function* watchAddVehiclesStarted() {\n yield takeEvery(types.VEHICLE_ADD_STARTED, addVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editVehicle(action) {\n const vehicle = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/save`, {\n method: 'POST',\n body: JSON.stringify({ ...vehicle }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedVehicle = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingVehicle(editedVehicle));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: editedVehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldVehicle } = yield select((state) =>\n selectors.getVehicle(state.vehicles, vehicle.vehicleId)\n );\n yield put(actions.failEditingVehicle(oldVehicle, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldVehicle } = yield select((state) =>\n selectors.getVehicle(state.vehicles, vehicle.vehicleId)\n );\n yield put(actions.failEditingVehicle(oldVehicle, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditVehiclesStarted() {\n yield takeEvery(types.VEHICLE_EDIT_STARTED, editVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeVehicle(action) {\n const { vehicleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedVehicle = yield select((state) => selectors.getVehicle(state, vehicleId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/delete`, {\n method: 'POST',\n body: JSON.stringify({ vehicleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingVehicle(vehicleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: deletedVehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingVehicle(vehicleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingVehicle(vehicleId, error));\n }\n}\n\nexport function* watchRemoveVehicleStarted() {\n yield takeEvery(types.VEHICLE_REMOVE_STARTED, removeVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* LICENSE PLATE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { vehicleId, licensePlate } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/validateLicensePlate`, {\n method: 'POST',\n body: JSON.stringify({ licensePlate, vehicleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.LicensePlateStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchLicenseCheckStarted() {\n yield takeEvery(types.VEHICLE_LICENSE_PLATE_CHECK_STARTED, checkRegistrationCode);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Assets */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const asset = new schema.Entity('assets', {}, { idAttribute: 'assetId' });\nexport const assets = new schema.Array(asset);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { getAssetsListService } from '../services';\nimport * as assetSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssetsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getAssetsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { assets },\n result //order\n } = normalize(resultData, schemas.assets); //normalize data to byId and order\n store.dispatch(actions.completeFetchingAssets(assets, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssets(error));\n }\n }\n );\n}\n\nexport function* watchFetchAssetsList() {\n yield takeEvery(types.ASSETS_FETCH_STARTED, fetchAssetsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchAssetsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getAssetsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { assets },\n result //order\n } = normalize(resultData, schemas.assets); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingAssets(assets, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingAssets(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchAssetsList() {\n yield takeEvery(types.ASSETS_PARTIAL_FETCH_STARTED, partialFetchAssetsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addAsset(action) {\n const asset = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/save`, {\n method: 'POST',\n body: JSON.stringify({ ...asset, assetId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedAsset = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingAsset(asset.assetId, addedAsset));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: asset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAsset(asset.assetId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAsset(asset.assetId, error));\n }\n}\n\nexport function* watchAddAssetsStarted() {\n yield takeEvery(types.ASSET_ADD_STARTED, addAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAsset(action) {\n const asset = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/save`, {\n method: 'POST',\n body: JSON.stringify(asset),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAsset = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAsset(editedAsset));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: editedAsset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldAsset } = yield select((state) =>\n selectors.getAsset(state.assets, asset.assetId)\n );\n yield put(actions.failEditingAsset(oldAsset, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldAsset } = yield select((state) => selectors.getAsset(state.assets, asset.assetId));\n yield put(actions.failEditingAsset(oldAsset, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditAssetsStarted() {\n yield takeEvery(types.ASSET_EDIT_STARTED, editAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAsset(action) {\n const { assetId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedAsset = yield select((state) => assetSelectors.getAsset(state, assetId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/asset/delete`, {\n method: 'POST',\n body: JSON.stringify({ assetId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingAsset(assetId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: deletedAsset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAsset(assetId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAsset(assetId, error));\n }\n}\n\nexport function* watchRemoveAssetStarted() {\n yield takeEvery(types.ASSET_REMOVE_STARTED, removeAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IDENTIFIER CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkIdentifier(action) {\n const { assetId, identifier } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/validateIdentifier`, {\n method: 'POST',\n body: JSON.stringify({ assetId, identifier }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.AssetIdentifierStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchIdentifierCheckStarted() {\n yield takeEvery(types.ASSET_IDENTIFIER_CHECK_STARTED, checkIdentifier);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SECURITY SEAL CODE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkSecuritySealCode(action) {\n const { assetId, securitySealCode } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/validateSecuritySealCode`, {\n method: 'POST',\n body: JSON.stringify({ assetId: assetId ?? null, securitySealCode }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.IsValid === 1;\n yield put(actions.completeCheckingSecuritySealCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchSecuritySealCodeCheckStarted() {\n yield takeEvery(types.ASSET_SECURITY_SEAL_CODE_CHECK_STARTED, checkSecuritySealCode);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensors */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\nexport const sensorSchema = new schema.Entity('sensors', {}, { idAttribute: 'sensorId' });\nexport const sensors = new schema.Array(sensorSchema);\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport {\n deleteSensorService,\n fuelCalibrationFinalizeService,\n fuelCalibrationStartService,\n getSensorsListService,\n saveSensorService\n} from '../services/sensors';\nimport * as types from '../types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorsList(action) {\n getSensorsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensors },\n result //order\n } = normalize(resultData, schemas.sensors); //normalize data to byId and order\n store.dispatch(actions.completeFetchingSensors(sensors, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingSensors(error));\n }\n }\n );\n}\n\nexport function* watchFetchSensorsList() {\n yield takeEvery(types.SENSORS_FETCH_STARTED, fetchSensorsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSensorsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getSensorsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensors },\n result //order\n } = normalize(resultData, schemas.sensors); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingSensors(sensors, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingSensors(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchSensorsList() {\n yield takeEvery(types.SENSORS_PARTIAL_FETCH_STARTED, partialFetchSensorsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSensor(action) {\n const sensor = action.payload;\n saveSensorService(\n { ...sensor, sensorId: null },\n {\n successAction: (response) => {\n const addedSensor = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingSensor(sensor.sensorId, addedSensor));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingSensor(sensor.sensorId, error));\n }\n }\n );\n}\n\nexport function* watchAddSensorsStarted() {\n yield takeEvery(types.SENSOR_ADD_STARTED, addSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSensor(action) {\n const sensor = action.payload;\n const oldSensor = yield select((state) => selectors.getSensor(state, sensor.sensorId));\n saveSensorService(\n { ...sensor },\n {\n successAction: (response) => {\n const editedSensor = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingSensor(editedSensor));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingSensor(oldSensor, error));\n }\n }\n );\n}\n\nexport function* watchEditSensorsStarted() {\n yield takeEvery(types.SENSOR_EDIT_STARTED, editSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSensor(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n deleteSensorService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingSensor(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingSensor(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveSensorStarted() {\n yield takeEvery(types.SENSOR_REMOVE_STARTED, removeSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IDENTIFIER CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { sensorId, identifier } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensor/validateIdentifier`, {\n method: 'POST',\n body: JSON.stringify({ identifier, sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.UniqueIdentifierStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchSensorIdentifierCheckStarted() {\n yield takeEvery(types.IDENTIFIER_CHECK_STARTED, checkRegistrationCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* START FUEL CALIBRATION */\n/* -------------------------------------------------------------------------- */\nfunction* sensorCalibrationStarted(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n fuelCalibrationStartService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.sensorCalibrationStartCompleted(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.sensorCalibrationStartFail(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchSensorCalibrationStartStarted() {\n yield takeEvery(types.START_SENSOR_CALIBRATION_STARTED, sensorCalibrationStarted);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FINALIZE FUEL CALIBRATION */\n/* -------------------------------------------------------------------------- */\nfunction* sensorCalibrationFinalized(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n fuelCalibrationFinalizeService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.sensorCalibrationFinalizeCompleted(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.sensorCalibrationFinalizeFail(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchSensorCalibrationFinalizeStarted() {\n yield takeEvery(types.FINALIZE_SENSOR_CALIBRATION_STARTED, sensorCalibrationFinalized);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n","/* -------------------------------------------------------------------------- */\n/* Schema Imported Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const importedLocation = new schema.Entity('importedLocations', {}, { idAttribute: 'id' });\nexport const importedLocations = new schema.Array(importedLocation);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as schemasImportedLocations from '../schemas/importLocations';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getLocationsListService,\n saveLocationService,\n deleteLocationService,\n importLocationsService,\n getLocationByIdService\n} from '../services/locations';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchLocationsList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n bounds: filterBounds\n } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getLocationsListService(\n {\n operatorId: operatorId,\n organizationId: organizationId,\n minLat: filterBounds?.minLat,\n maxLat: filterBounds?.maxLat,\n minLng: filterBounds?.minLng,\n maxLng: filterBounds?.maxLng,\n locationIds: filterBounds?.locationIds\n ? JSON.stringify(filterBounds?.locationIds)\n : filterBounds?.locationIds\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locations },\n result //order\n } = normalize(resultData, schemas.locations); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingLocations(\n locations,\n result,\n operatorId,\n organizationId,\n filterBounds?.showInMapLocations ? filterBounds?.showInMapLocations : false,\n filterBounds === undefined ? true : false\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingLocations(error));\n }\n }\n );\n}\n\nexport function* watchFetchLocationsList() {\n yield takeEvery(types.LOCATIONS_FETCH_STARTED, fetchLocationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchLocationsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getLocationsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locations },\n result //order\n } = normalize(resultData, schemas.locations); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingLocations(locations, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingLocations(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchLocationsList() {\n yield takeEvery(types.LOCATIONS_PARTIAL_FETCH_STARTED, partialFetchLocationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addLocation(action) {\n const location = action.payload;\n saveLocationService(\n { ...location, locationId: null },\n {\n successAction: (response) => {\n const addedLocation = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingLocation(location.locationId, addedLocation));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingLocation(location.locationId, error));\n }\n }\n );\n}\n\nexport function* watchAddLocationsStarted() {\n yield takeEvery(types.LOCATION_ADD_STARTED, addLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editLocation(action) {\n const location = action.payload;\n const { oldLocation } = yield select((state) =>\n selectors.getLocation(state, location.locationId)\n );\n saveLocationService(\n { ...location },\n {\n successAction: (response) => {\n const editedLocation = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingLocation(editedLocation));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingLocation(oldLocation, error));\n }\n }\n );\n}\n\nexport function* watchEditLocationsStarted() {\n yield takeEvery(types.LOCATION_EDIT_STARTED, editLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeLocation(action) {\n const { locationId } = action.payload;\n const location = yield select((state) => selectors.getLocation(state, locationId));\n deleteLocationService(\n { ...location },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingLocation(locationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingLocation(locationId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveLocationStarted() {\n yield takeEvery(types.LOCATION_REMOVE_STARTED, removeLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT */\n/* -------------------------------------------------------------------------- */\nfunction* importLocations(action) {\n const locations = action.payload;\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n importLocationsService(\n { ...locations },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n // Fetch locations\n store.dispatch(actions.startFetchingLocations({ operatorId, organizationId }));\n const {\n entities: { importedLocations },\n result //order\n } = normalize(resultData, schemasImportedLocations.importedLocations); //normalize data to byId and order\n // Complete import locations\n store.dispatch(actions.completeImportingLocations(importedLocations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingLocations(error));\n }\n }\n );\n}\n\nexport function* watchImportLocationsStarted() {\n yield takeEvery(types.LOCATIONS_IMPORT_STARTED, importLocations);\n}\n\n/* -------------------------------------------------------------------------- */\n/* GET LOCATION BY ID */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchLocationById(action) {\n const locationId = action.payload;\n getLocationByIdService(\n {\n locationId\n },\n {\n successAction: (response) => {\n const resultData = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingLocation(resultData, [resultData.locationId]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingLocation(error));\n }\n }\n );\n}\n\nexport function* watchFetchLocationById() {\n yield takeEvery(types.LOCATION_FETCH_STARTED, fetchLocationById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const driver = new schema.Entity('drivers', {}, { idAttribute: 'driverId' });\nexport const drivers = new schema.Array(driver);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as unitSelectors from 'views/screens/Units/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getDriversListService,\n saveDriverService,\n deleteDriverService,\n assignDriversMassivelyService\n} from '../services/drivers';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchDriversList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getDriversListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { drivers },\n result //order\n } = normalize(resultData, schemas.drivers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingDrivers(drivers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingDrivers(error));\n }\n }\n );\n}\n\nexport function* watchFetchDriversList() {\n yield takeEvery(types.DRIVERS_FETCH_STARTED, fetchDriversList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchDriversList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getDriversListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { drivers },\n result //order\n } = normalize(resultData, schemas.drivers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingDrivers(drivers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingDrivers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchDriversList() {\n yield takeEvery(types.DRIVERS_PARTIAL_FETCH_STARTED, partialFetchDriversList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addDriver(action) {\n const driver = action.payload;\n const person = action.person;\n saveDriverService(\n { ...driver, driverId: null },\n {\n successAction: (response) => {\n const addedDriver = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeAddingDriver(driver.driverId, addedDriver));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingDriver(driver.driverId, error));\n }\n },\n person\n );\n}\n\nexport function* watchAddDriversStarted() {\n yield takeEvery(types.DRIVER_ADD_STARTED, addDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editDriver(action) {\n const driver = action.payload;\n const person = action.person;\n const oldDriver = yield select((state) => selectors.getDriver(state, driver.driverId));\n saveDriverService(\n { ...driver },\n {\n successAction: (response) => {\n const editedDriver = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeEditingDriver(editedDriver));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingDriver(oldDriver, error));\n }\n },\n person\n );\n}\n\nexport function* watchEditDriversStarted() {\n yield takeEvery(types.DRIVER_EDIT_STARTED, editDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN UNASSIGN SENSOR */\n/* -------------------------------------------------------------------------- */\nfunction* assignSensor(action) {\n const sensor: any = action.payload.sensor;\n const driverId = action.payload.driverId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/driver/updateSensors`, {\n method: 'POST',\n body: JSON.stringify({ driverId: driverId, sensorId: sensor.sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeDriverAssignSensor(driverId, sensor));\n alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: 'sensors.sensor'\n }),\n name: sensor.sensorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nfunction* unassignSensor(action) {\n const sensor: any = action.payload.sensor;\n const driverId = action.payload.driverId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/driver/deleteSensor`, {\n method: 'POST',\n body: JSON.stringify({ sensorId: sensor.sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeDriverUnassignSensor(driverId, sensor));\n alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'sensors.sensor'\n }),\n name: sensor.sensorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignSensor() {\n yield takeEvery(types.DRIVER_ASSIGN_SENSOR_STARTED, assignSensor);\n}\n\nexport function* watchUnassignSensor() {\n yield takeEvery(types.DRIVER_UNASSIGN_SENSOR_STARTED, unassignSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeDriver(action) {\n const { driverId } = action.payload;\n const person = action.person;\n const driver = yield select((state) => selectors.getDriver(state, driverId));\n deleteDriverService(\n { ...driver },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingDriver(driverId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingDriver(driverId, error));\n }\n },\n person\n );\n}\n\nexport function* watchRemoveDriverStarted() {\n yield takeEvery(types.DRIVER_REMOVE_STARTED, removeDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT DATA */\n/* -------------------------------------------------------------------------- */\n\nfunction* importDriverAndUnitData(action: any) {\n const dataToImport: Array = action.payload;\n if (dataToImport?.length === 0) return;\n\n function* importDriverAndUnit({ driverId, driverPrivateCode, unitId, unitPrivateCode }) {\n const { driver, unit } = yield select((state) => ({\n driver: selectors.getDriverByIdOrPrivateCode(state, driverId, driverPrivateCode),\n unit: unitSelectors.getUnitByIdOrPrivateCode(state, unitId, unitPrivateCode)\n }));\n return { driver, unit };\n }\n const importedData =\n typeof dataToImport?.map === 'function' ? dataToImport?.map(importDriverAndUnit) : [];\n const newData: Array = [];\n for (let driverAndUnit of importedData) {\n try {\n newData.push(yield driverAndUnit);\n } catch (error) {\n console.warn(error);\n }\n }\n store.dispatch(actions.completeImportDriver(newData));\n}\n\nexport function* watchStartImportDriverAndUnit() {\n yield takeEvery(types.START_IMPORT_DRIVERS_UNITS_IMPORT, importDriverAndUnitData);\n}\n\n/* -------------------------------------------------------------------------- */\n/* MASSIVE ASSIGNMENT */\n/* -------------------------------------------------------------------------- */\nfunction* assignDriversToUnits(action: any) {\n const { driversAndUnitsIds, membership } = action.payload;\n // changed data [{driverId, unitId}, {driverId, unitId}] -> 'driverId~unitId^driverId~unitId'\n const data: string = driversAndUnitsIds\n ?.map((d: any) => [d?.driverId, d?.unitId].join('~'))\n .join('^');\n // Validate data is not empty\n if (data?.length < 1) return;\n\n assignDriversMassivelyService(\n { driversAndUnitsIds: data },\n {\n successAction: (response: any) => {\n const resultData =\n typeof response?.data?.map === 'function'\n ? response?.data?.map((result) => camelcaseKeys(result))\n : undefined;\n store.dispatch(actions.startFetchingDrivers(membership));\n store.dispatch(actions.completeMassiveDriversAssignment(response?.data));\n },\n errorAction: (response: any) => {\n store.dispatch(actions.errorMassiveDriversAssignment(response?.data));\n }\n }\n );\n}\n\nexport function* watchAssignDriversToUnits() {\n yield takeEvery(types.START_MASSIVE_DRIVERS_ASSIGNMENT, assignDriversToUnits);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema JobsBacklog */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const job = new schema.Entity('jobs', {}, { idAttribute: 'jobId' });\nexport const jobs = new schema.Array(job);\n","/* -------------------------------------------------------------------------- */\n/* Schema Imported Jobs */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const importedJob = new schema.Entity('importedJobs', {}, { idAttribute: 'id' });\nexport const importedJobs = new schema.Array(importedJob);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/backlog';\nimport * as selectors from '../../reducers/backlog';\nimport * as schemas from '../../schemas';\nimport * as schemasImportedJobs from '../../schemas/importJobs';\nimport {\n // deleteJobBacklogService,\n getJobsBacklogListService,\n saveJobBacklogService,\n deleteJobsBacklogService,\n changeJobsDueDateService,\n changeJobsMinMaxTimeService,\n changeJobsStartDateService,\n changeJobsStatusService,\n changeJobsPriorityService,\n assignJobsFilesService,\n assignJobsUsersService,\n assignJobsFormsService,\n rescheduleJobsService,\n importJobsService\n} from '../../services/jobs';\nimport * as types from '../../types/backlog';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsBacklogList(action) {\n getJobsBacklogListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completeFetchingJobsBacklog(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsBacklog(error));\n }\n }\n );\n}\n\nexport function* watchFetchJobsBacklogList() {\n yield takeEvery(types.JOBS_BACKLOG_FETCH_STARTED, fetchJobsBacklogList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchJobsBacklogList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getJobsBacklogListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingJobsBacklog(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingJobsBacklog(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchJobsBacklogList() {\n yield takeEvery(types.JOBS_BACKLOG_PARTIAL_FETCH_STARTED, partialFetchJobsBacklogList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addJobBacklog(action) {\n const jobBacklog = action.payload;\n saveJobBacklogService(\n { ...jobBacklog, jobId: null },\n {\n successAction: (response) => {\n const addedJobBacklog = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingJobBacklog(jobBacklog.jobId, addedJobBacklog));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingJobBacklog(jobBacklog.jobId, error));\n }\n }\n );\n}\n\nexport function* watchAddJobsBacklogStarted() {\n yield takeEvery(types.JOB_BACKLOG_ADD_STARTED, addJobBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editJobBacklog(action) {\n const jobBacklog = action.payload;\n const oldJobBacklog = yield select((state) => selectors.getJobBacklog(state, jobBacklog.jobId));\n saveJobBacklogService(\n { ...jobBacklog },\n {\n successAction: (response) => {\n const editedJobBacklog = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingJobBacklog(editedJobBacklog));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingJobBacklog(oldJobBacklog, error));\n }\n }\n );\n}\n\nexport function* watchEditJobsBacklogStarted() {\n yield takeEvery(types.JOB_BACKLOG_EDIT_STARTED, editJobBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeJobsBacklog(action) {\n const { jobs } = action.payload;\n // const jobBacklog = yield select((state) => selectors.getJobBacklog(state, jobId));\n deleteJobsBacklogService(\n { jobs },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingJobsBacklog(jobs));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingJobsBacklog(jobs, error));\n }\n }\n );\n}\n\nexport function* watchRemoveJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_REMOVE_STARTED, removeJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* changeStatusJobsBacklog(action) {\n const { jobs, jobStatus, comment } = action.payload;\n changeJobsStatusService(\n { jobs, jobStatus, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStatusJobs(jobs, jobStatus, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStatusJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStatusJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_STATUS_STARTED, changeStatusJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RESCHEDULE JOBS */\n/* -------------------------------------------------------------------------- */\nfunction* rescheduleJobs(action) {\n const { jobs, startDate, dueDate, comment } = action.payload;\n rescheduleJobsService(\n { jobs, startDate, dueDate, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRescheduleJobs(jobs, startDate, dueDate, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRescheduleJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchRescheduleJobsStarted() {\n yield takeEvery(types.JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED, rescheduleJobs);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PRIORITY */\n/* -------------------------------------------------------------------------- */\nfunction* changePriorityJobsBacklog(action) {\n const { jobs, jobPriority } = action.payload;\n changeJobsPriorityService(\n { jobs, jobPriority },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangePriorityJobs(jobs, jobPriority));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangePriorityJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangePriorityJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_PRIORITY_STARTED, changePriorityJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE START DATE */\n/* -------------------------------------------------------------------------- */\nfunction* changeStartDateJobsBacklog(action) {\n const { jobs, startDate } = action.payload;\n changeJobsStartDateService(\n { jobs, startDate },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStartDateJobs(jobs, startDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStartDateJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStartDateJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_START_DATE_STARTED, changeStartDateJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE DUE DATE */\n/* -------------------------------------------------------------------------- */\nfunction* changeDueDateJobsBacklog(action) {\n const { jobs, dueDate } = action.payload;\n changeJobsDueDateService(\n { jobs, dueDate },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeDueDateJobs(jobs, dueDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeDueDateJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeDueDateJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED, changeDueDateJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE MAX TIME */\n/* -------------------------------------------------------------------------- */\nfunction* changeMinMaxTimeJobsBacklog(action) {\n const { jobs, maxTime } = action.payload;\n changeJobsMinMaxTimeService(\n { jobs, maxTime },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeMinMaxTimeJobs(jobs, maxTime));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeMinMaxTimeJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeMinMaxTimeJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED, changeMinMaxTimeJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN USERS */\n/* -------------------------------------------------------------------------- */\nfunction* assignUsersJobsBacklog(action) {\n const { jobs, userNames, users } = action.payload;\n assignJobsUsersService(\n { jobs, userNames },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAssignUsersJobs(jobs, userNames, users));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignUsersJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignUsersJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_USERS_STARTED, assignUsersJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN FORMS */\n/* -------------------------------------------------------------------------- */\nfunction* assignFormsJobsBacklog(action) {\n const { jobs, formIds, forms } = action.payload;\n assignJobsFormsService(\n { jobs, formIds },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAssignFormsJobs(jobs, formIds, forms));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignFormsJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignFormsJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_FORMS_STARTED, assignFormsJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN FILES */\n/* -------------------------------------------------------------------------- */\nfunction* assignFilesJobsBacklog(action) {\n const { jobs, fileIds } = action.payload;\n assignJobsFilesService(\n { jobs, fileIds },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs: entities },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(\n actions.completeAssignFilesJobs(\n entities ??\n jobs.split(',').reduce((acc, curr) => ((acc[curr] = { files: '' }), acc), {}),\n result.length > 0 ? result : jobs.split(',')\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignFilesJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignFilesJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_FILES_STARTED, assignFilesJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT */\n/* -------------------------------------------------------------------------- */\nfunction* importJobs(action) {\n const jobs = action.payload;\n importJobsService(\n { ...jobs },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { importedJobs },\n result //order\n } = normalize(resultData, schemasImportedJobs.importedJobs); //normalize data to byId and order\n store.dispatch(actions.completeImportingJobs(importedJobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingJobs(error));\n }\n }\n );\n}\n\nexport function* watchImportJobsStarted() {\n yield takeEvery(types.JOBS_BACKLOG_IMPORT_STARTED, importJobs);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/board';\nimport * as selectors from '../../reducers/board';\nimport * as schemas from '../../schemas';\nimport { getJobsBoardListService, changeJobsStatusBoardService } from '../../services/jobs';\nimport * as types from '../../types/board';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsBoardList(action) {\n const filters = action.payload;\n getJobsBoardListService(filters, {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completeFetchingJobsBoard(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsBoard(error));\n }\n });\n}\n\nexport function* watchFetchJobsBoardList() {\n yield takeEvery(types.JOBS_BOARD_FETCH_STARTED, fetchJobsBoardList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* changeStatusJobsBoard(action) {\n const { jobs, jobStatus, comment } = action.payload;\n changeJobsStatusBoardService(\n { jobs, jobStatus, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStatusJobsBoard(jobs, jobStatus, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStatusJobsBoard(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStatusJobsBoardStarted() {\n yield takeEvery(types.JOBS_BOARD_CHANGE_STATUS_STARTED, changeStatusJobsBoard);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema JobsBacklog */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const user = new schema.Entity('users', {}, { idAttribute: 'userId' });\nexport const users = new schema.Array(user);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/report';\nimport * as selectors from '../../reducers/report';\nimport * as schemas from '../../schemas';\nimport * as schemasJobByUser from '../../schemas/jobsByUser';\nimport { getJobsReportListService } from '../../services/jobs';\nimport * as types from '../../types/report';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsReportList(action) {\n const filters = action.payload;\n getJobsReportListService(filters, {\n successAction: (response) => {\n const indicators = camelcaseKeys(response.data.indicators);\n const jobsList = response.data.jobsList.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result: orderJobs //order\n } = normalize(jobsList, schemas.jobs); //normalize data to byId and order\n const jobsByUserList = response.data.jobsByUserList.map((result) => camelcaseKeys(result));\n const {\n entities: { users: jobsByUser },\n result: orderJobsByUser //order\n } = normalize(jobsByUserList, schemasJobByUser.users); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingJobsReport(indicators, jobs, orderJobs, jobsByUser, orderJobsByUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsReport(error));\n }\n });\n}\n\nexport function* watchFetchJobsReportList() {\n yield takeEvery(types.JOBS_REPORT_FETCH_STARTED, fetchJobsReportList);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as types from '../types';\nimport * as actions from '../actions';\nimport { getJobService } from '../services/jobs';\n\nexport * from './backlog';\nexport * from './board';\nexport * from './report';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH JOB */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJob(action) {\n const { jobId } = action.payload;\n getJobService(\n { jobId },\n {\n successAction: (response) => {\n const job = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingJob(job));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJob(error));\n }\n }\n );\n}\n\nexport function* watchFetchJob() {\n yield takeEvery(types.JOB_FETCH_STARTED, fetchJob);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery, put, call } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport {\n getGroupsListService,\n getAllEntitiesInGroupService,\n saveGroupService,\n saveGroupWithEntitiesService,\n deleteGroupService,\n leaveGroupService,\n getGroupByIdService\n} from '../services/groups';\nimport * as types from '../types';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGroupsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGroupsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { groups },\n result //order\n } = normalize(resultData, schemas.groups); //normalize data to byId and order\n store.dispatch(actions.completeFetchingGroups(groups, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGroups(error));\n }\n }\n );\n}\n\nexport function* watchFetchGroupsList() {\n yield takeEvery(types.GROUPS_FETCH_STARTED, fetchGroupsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchGroupsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGroupsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { groups },\n result //order\n } = normalize(resultData, schemas.groups); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingGroups(groups, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingGroups(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchGroupsList() {\n yield takeEvery(types.GROUPS_PARTIAL_FETCH_STARTED, partialFetchGroupsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH ALL ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAllEntitiesInGroup(action) {\n const groupId = action.payload;\n getAllEntitiesInGroupService(\n { groupId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { users }\n } = normalize(resultData[0], schemas.users); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(resultData[1], schemas.locations); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(resultData[2], schemas.workplans); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(resultData[3], schemas.units); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(resultData[4], schemas.geofences); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(resultData[5], schemas.drivers); //normalize data to byId for drivers\n const entities = {\n users: users,\n locations: locations,\n workplans: workplans,\n units: units,\n geofences: geofences,\n drivers: drivers\n };\n store.dispatch(actions.completeFetchingAllEntitiesGroups(entities, groupId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAllEntitiesGroups(error));\n }\n }\n );\n}\n\nexport function* watchFetchAllEntitiesInGroup() {\n yield takeEvery(types.GROUPS_ALL_ENTITIES_FETCH_STARTED, fetchAllEntitiesInGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addGroup(action) {\n const { group, users, userInSession, additionalOnSave } = action.payload;\n saveGroupService(\n { groupName: group.groupName, owners: users.map((user) => user.userId).toString() },\n {\n successAction: (response) => {\n const addedGroup = camelcaseKeys(response?.data);\n store.dispatch(actions.completeAddingGroup(group.groupId, addedGroup));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n store.dispatch(actions.deselectAllGroups());\n store.dispatch(actions.selectGroup(addedGroup.groupId));\n if (typeof additionalOnSave === 'function') additionalOnSave();\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchAddGroupStarted() {\n yield takeEvery(types.GROUP_ADD_STARTED, addGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD WITH ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* addGroupWithEntities(action) {\n const { group, userInSession, entityType, entities, params } = action.payload;\n\n saveGroupWithEntitiesService(\n {\n groupName: group.groupName,\n owners: [userInSession.userId].toString(),\n ...params,\n entities:\n entityType === 'users'\n ? entities.map((entity) => entity.userName).toString()\n : entityType === 'locations'\n ? entities.map((entity) => entity.locationId).toString()\n : entityType === 'workplans'\n ? entities.map((entity) => entity.workplanId).toString()\n : entityType === 'units'\n ? entities.map((entity) => entity.unitId).toString()\n : entityType === 'geofences'\n ? entities.map((entity) => entity.geofenceId).toString()\n : entityType === 'drivers'\n ? entities.map((entity) => entity.driverId).toString()\n : '',\n entityType\n },\n {\n successAction: (response) => {\n const addedGroup = camelcaseKeys(response?.data);\n store.dispatch(actions.completeAddingGroupWithEntities(group.groupId, addedGroup));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGroupWithEntities(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchAddGroupWithEntitiesStarted() {\n yield takeEvery(types.GROUP_ADD_WITH_ENTITIES_STARTED, addGroupWithEntities);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editGroup(action) {\n const group = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/group/edit`, {\n method: 'POST',\n body: JSON.stringify(group),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedGroup = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingGroup(editedGroup));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldGroup } = yield select((state) =>\n selectors.getGroup(state.groups, group.groupId)\n );\n yield put(actions.failEditingGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldGroup } = yield select((state) => selectors.getGroup(state.groups, group.groupId));\n yield put(actions.failEditingGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditGroupsStarted() {\n yield takeEvery(types.GROUP_EDIT_STARTED, editGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeGroup(action) {\n const { groupId } = action.payload;\n const group = yield select((state) => selectors.getGroup(state, groupId));\n deleteGroupService(\n { ...group },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingGroup(group.groupId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveGroupStarted() {\n yield takeEvery(types.GROUP_REMOVE_STARTED, removeGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* LEAVE */\n/* -------------------------------------------------------------------------- */\nfunction* leaveGroup(action) {\n const { groupId, isAsesor, asesorUsername } = action.payload;\n const group = yield select((state) => selectors.getGroup(state, groupId));\n leaveGroupService(\n { ...group },\n {\n successAction: (response) => {\n store.dispatch(actions.completeLeavingGroup(group.groupId, isAsesor, asesorUsername));\n },\n errorAction: (error) => {\n store.dispatch(actions.failLeavingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchLeaveGroupStarted() {\n yield takeEvery(types.GROUP_LEAVE_STARTED, leaveGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT NOTIFICATIONS CONFIGURATION */\n/* -------------------------------------------------------------------------- */\nfunction* editNotificationsConfiguration(action) {\n const group = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/group/editNotificationsConfiguration`, {\n method: 'POST',\n body: JSON.stringify(group),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n //const editedGroup = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingNotificationsConfigurationGroup(group));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldGroup } = yield select((state) =>\n selectors.getGroup(state.groups, group.groupId)\n );\n yield put(actions.failEditingNotificationsConfigurationGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldUnit } = yield select((state) => selectors.getGroup(state.groups, group.groupId));\n yield put(actions.failEditingNotificationsConfigurationGroup(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditConfigurationNotificationsStarted() {\n yield takeEvery(\n types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED,\n editNotificationsConfiguration\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE ENTITIES FROM GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* removeEntitiesFromGroup(action) {\n const group: any = action.payload.group;\n const entityType = action.payload.entityType;\n const entities = action.payload.entities;\n\n const partialEntityUrl =\n entityType === 'users'\n ? 'removeUsersFromGroup'\n : entityType === 'locations'\n ? 'removeLocationsFromGroup'\n : entityType === 'workplans'\n ? 'removeWorkPlansFromGroup'\n : entityType === 'units'\n ? 'removeUnitsFromGroup'\n : entityType === 'geofences'\n ? 'removeGeofencesFromGroup'\n : entityType === 'drivers'\n ? 'removeDriversFromGroup'\n : '';\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/${partialEntityUrl}`, {\n method: 'POST',\n body: JSON.stringify({ groupId: group.groupId, entities: entities }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingEntitiesFromGroup(group.groupId, entityType, entities));\n alerts.showSuccessRemovedFromGroupMessage({\n object: appIntl().formatMessage({\n id:\n entityType === 'users'\n ? entities.length > 1\n ? 'users.users'\n : 'users.user'\n : entityType === 'locations'\n ? entities.length > 1\n ? 'locations.locations'\n : 'locations.location'\n : entityType === 'workplans'\n ? entities.length > 1\n ? 'workplans.workplans'\n : 'workplans.workplan'\n : entityType === 'units'\n ? entities.length > 1\n ? 'units.units'\n : 'units.unit'\n : entityType === 'geofences'\n ? entities.length > 1\n ? 'geofences.geofences'\n : 'geofences.geofence'\n : entityType === 'drivers'\n ? entities.length > 1\n ? 'drivers.drivers'\n : 'drivers.driver'\n : 'groups.entities'\n }),\n name: group.groupName,\n multiple: entities.length > 1,\n altText:\n entityType === 'locations' || entityType === 'units' || entityType === 'geofences'\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchRemoveEntitiesFromGroup() {\n yield takeEvery(types.GROUP_REMOVE_ENTITIES_STARTED, removeEntitiesFromGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD ENTITIES TO GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* addEntitiesToGroup(action) {\n const group: any = action.payload.group;\n const entityType = action.payload.entityType;\n const entities = action.payload.entities;\n const params = action.payload.params;\n\n const partialEntityUrl =\n entityType === 'users'\n ? 'addUsersToGroup'\n : entityType === 'locations'\n ? 'addLocationsToGroup'\n : entityType === 'workplans'\n ? 'addWorkPlansToGroup'\n : entityType === 'units'\n ? 'addUnitsToGroup'\n : entityType === 'geofences'\n ? 'addGeofencesToGroup'\n : entityType === 'drivers'\n ? 'addDriversToGroup'\n : '';\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/${partialEntityUrl}`, {\n method: 'POST',\n body: JSON.stringify({\n groupId: group.groupId,\n entities:\n entityType === 'users'\n ? entities.map((entity) => entity.userName)\n : entityType === 'locations'\n ? entities.map((entity) => entity.locationId)\n : entityType === 'workplans'\n ? entities.map((entity) => entity.workPlanId)\n : entityType === 'units'\n ? entities.map((entity) => entity.unitId)\n : entityType === 'geofences'\n ? entities.map((entity) => entity.geofenceId)\n : entityType === 'drivers'\n ? entities.map((entity) => entity.driverId)\n : [],\n ...params\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAddingEntitiesToGroup(group, entityType, entities, params));\n alerts.showSuccessAddedToGroupMessage({\n object: appIntl().formatMessage({\n id:\n entityType === 'users'\n ? entities.length > 1\n ? 'users.users'\n : 'users.user'\n : entityType === 'locations'\n ? entities.length > 1\n ? 'locations.locations'\n : 'locations.location'\n : entityType === 'workplans'\n ? entities.length > 1\n ? 'workplans.workplans'\n : 'workplans.workplan'\n : entityType === 'units'\n ? entities.length > 1\n ? 'units.units'\n : 'units.unit'\n : entityType === 'geofences'\n ? entities.length > 1\n ? 'geofences.geofences'\n : 'geofences.geofence'\n : entityType === 'drivers'\n ? entities.length > 1\n ? 'drivers.drivers'\n : 'drivers.driver'\n : 'groups.entities'\n }),\n name: group.groupName,\n multiple: entities.length > 1,\n altText:\n entityType === 'locations' || entityType === 'units' || entityType === 'geofences'\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAddEntitiesToGroup() {\n yield takeEvery(types.GROUP_ADD_ENTITIES_STARTED, addEntitiesToGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT USER PROFILE IN GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* editUserPorfileInGroup(action) {\n const { groupId, userName, userNameInSession, profileId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/editUsersProfileInGroup`, {\n method: 'POST',\n body: JSON.stringify({ groupId, profileId, users: [userName] }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeEditingUserProfileInGroup(groupId, userName, userNameInSession, profileId)\n );\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'users.user'\n }),\n name: userName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditUserProfileInGroup() {\n yield takeEvery(types.GROUP_USER_PROFILE_EDIT_STARTED, editUserPorfileInGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH GROUP BY ID */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGroupById(action) {\n const groupId = action.payload;\n getGroupByIdService(\n { groupId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { groups },\n result //order\n } = normalize(resultData, schemas.groups);\n store.dispatch(actions.completeFetchingGroup(groups, result, result[0]));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGroup(error));\n }\n }\n );\n}\n\nexport function* watchFetchGroupById() {\n yield takeEvery(types.GROUP_FETCH_STARTED, fetchGroupById);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Quotations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const quotation = new schema.Entity('quotations', {}, { idAttribute: 'quotationId' });\nexport const quotations = new schema.Array(quotation);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchQuotationsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId:\n filterOrganizationId === null || filterOrganizationId === undefined\n ? filterOrganizationId\n : organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { quotations },\n result //order\n } = normalize(resultData, schemas.quotations); //normalize data to byId and order\n yield put(\n actions.completeFetchingQuotations(quotations ?? [], result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingQuotations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingQuotations(error));\n }\n}\n\nexport function* watchFetchQuotationsList() {\n yield takeEvery(types.QUOTATIONS_FETCH_STARTED, fetchQuotationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchQuotationsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { quotations },\n result //order\n } = normalize(resultData, schemas.quotations); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingQuotations(quotations, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingQuotations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingQuotations(error));\n }\n}\n\nexport function* watchPartialFetchQuotationsList() {\n yield takeEvery(types.QUOTATIONS_PARTIAL_FETCH_STARTED, partialFetchQuotationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addQuotation(action) {\n const { quotation } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/save`, {\n method: 'POST',\n body: JSON.stringify({ ...quotation, quotationId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingQuotation(quotation.quotationId, addedQuotation));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingQuotation(quotation.quotationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingQuotation(quotation.quotationId, error));\n }\n}\n\nexport function* watchAddQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_ADD_STARTED, addQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* COPY */\n/* -------------------------------------------------------------------------- */\nfunction* copyQuotation(action) {\n const { quotation } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/copy`, {\n method: 'POST',\n body: JSON.stringify({ ...quotation, fromQuotationId: quotation.quotationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const copiedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeCopyingQuotation(copiedQuotation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'quotations.copyingQuotationSuccess' })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.copyingQuotationFailure' }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyingQuotation(quotation.quotationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.copyingQuotationFailure' }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyingQuotation(quotation.quotationId, error));\n }\n}\n\nexport function* watchCopyQuotationsStarted() {\n yield takeEvery(types.QUOTATION_COPY_STARTED, copyQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editQuotation(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/save`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingQuotation(editedQuotation));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: editedQuotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldQuotation } = yield select((state) =>\n selectors.getQuotation(state.quotations, quotation.quotationId)\n );\n yield put(actions.failEditingQuotation(oldQuotation, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldQuotation = yield select((state) =>\n selectors.getQuotation(state, quotation.quotationId)\n );\n // console.log('old', yield select((state) => selectors.getDivision(state, division.divisionId)));\n yield put(actions.failEditingQuotation(oldQuotation, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_EDIT_STARTED, editQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* APPROVE DENY MANAGEMENT */\n/* -------------------------------------------------------------------------- */\nfunction* approveDenyQuotationManagement(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/approveManagement`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeApprovingDenyingQuotationManagement(quotation));\n alerts.showSuccessApprovedDeniedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true,\n approve: quotation.approve\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.approve === 1\n ? 'quotations.approvingQuotationManagementFailure'\n : 'quotations.denyingQuotationManagementFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failApprovingDenyingQuotationManagement(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.approve === 1\n ? 'quotations.approvingQuotationManagementFailure'\n : 'quotations.denyingQuotationManagementFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failApprovingDenyingQuotationManagement(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchApproveDenyQuotationManagementStarted() {\n yield takeEvery(types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED, approveDenyQuotationManagement);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ACCEPT DENY CUSTOMER */\n/* -------------------------------------------------------------------------- */\nfunction* acceptDenyQuotationCustomer(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/acceptCustomer`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAcceptingDenyingQuotationCustomer(quotation));\n alerts.showSuccessAcceptedDeniedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true,\n accept: quotation.accept\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.accept === 1\n ? 'quotations.acceptingQuotationCustomerFailure'\n : 'quotations.denyingQuotationCustomerFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failAcceptingDenyingQuotationCustomer(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.accept === 1\n ? 'quotations.acceptingQuotationCustomerFailure'\n : 'quotations.denyingQuotationCustomerFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failAcceptingDenyingQuotationCustomer(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAcceptDenyQuotationCustomerStarted() {\n yield takeEvery(types.QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED, acceptDenyQuotationCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* scheduleQuotation(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/scheduleQuotation`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSchedulingQuotation(quotation));\n alerts.showSuccessScheduledMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.schedulingQuotationFailure' }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failSchedulingQuotation(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.schedulingQuotationFailure' }),\n errorNumber: -1\n };\n\n yield put(actions.failSchedulingQuotation(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchScheduleQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_SCHEDULE_STARTED, scheduleQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHECK SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* checkQuotationScheduling(action) {\n const { quotationId, quotationLink } = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/checkScheduling`, {\n method: 'POST',\n body: JSON.stringify({ quotationId, quotationLink }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const quotationScheduled = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeCheckingQuotationScheduling({\n quotationId,\n quotationIdDB: quotationScheduled?.quotationId,\n isScheduled: quotationScheduled?.isScheduled,\n quotationStatus: quotationScheduled?.quotationStatus,\n isTimesup: quotationScheduled?.isTimesup\n })\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'quotations.checkingQuotationSchedulingFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failCheckingQuotationScheduling(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'quotations.checkingQuotationSchedulingFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failCheckingQuotationScheduling(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchCheckQuotationSchedulingStarted() {\n yield takeEvery(types.QUOTATIONS_CHECK_SCHEDULING_STARTED, checkQuotationScheduling);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SET TIMESUP */\n/* -------------------------------------------------------------------------- */\nfunction* setTimesupQuotation(action) {\n const { quotation, showAlerts } = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/setTimesup`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSettingTimesupQuotation(quotation));\n if (showAlerts)\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'common.changesSuccess' })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'common.changesFailure' }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failSettingTimesupQuotation(error));\n if (showAlerts) alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'common.changesFailure' }),\n errorNumber: -1\n };\n\n yield put(actions.failSettingTimesupQuotation(error));\n if (showAlerts) alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSetTimesupQuotationStarted() {\n yield takeEvery(types.QUOTATIONS_SET_TIMESUP_STARTED, setTimesupQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeQuotation(action) {\n const { quotationId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedQuotation = yield select((state) => selectors.getQuotation(state, quotationId));\n const response = yield call(fetch, `${API_BASE_URL}/quotation/delete`, {\n method: 'POST',\n body: JSON.stringify({ quotationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingQuotation(quotationId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: deletedQuotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingQuotation(quotationId, error));\n }\n }\n } catch (err) {\n // console.log('err', err);\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingQuotation(quotationId, error));\n }\n}\n\nexport function* watchRemoveQuotationStarted() {\n yield takeEvery(types.QUOTATIONS_REMOVE_STARTED, removeQuotation);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Organization Contracts */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const organizationContract = new schema.Entity(\n 'organizationContracts',\n {},\n { idAttribute: 'contractId' }\n);\nexport const organizationContracts = new schema.Array(organizationContract);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOrganizationContractsList(action) {\n const { operatorId, organizationId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { organizationContracts },\n result //order\n } = normalize(resultData, schemas.organizationContracts); //normalize data to byId and order\n yield put(\n actions.completeFetchingOrganizationContracts(\n organizationContracts ?? [],\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOrganizationContracts(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOrganizationContracts(error));\n }\n}\n\nexport function* watchFetchOrganizationContractsList() {\n yield takeEvery(types.ORGANIZATION_CONTRACTS_FETCH_STARTED, fetchOrganizationContractsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOrganizationContractsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { organizationContracts },\n result //order\n } = normalize(resultData, schemas.organizationContracts); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingOrganizationContracts(\n organizationContracts,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOrganizationContracts(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOrganizationContracts(error));\n }\n}\n\nexport function* watchPartialFetchOrganizationContractsList() {\n yield takeEvery(\n types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED,\n partialFetchOrganizationContractsList\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganizationContract(action) {\n const organizationContract = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/save`, {\n method: 'POST',\n body: JSON.stringify({ ...organizationContract, contractId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOrganizationContract = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingOrganizationContract(\n organizationContract.contractId,\n addedOrganizationContract\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: organizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationContract(organizationContract.contractId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationContract(organizationContract.contractId, error));\n }\n}\n\nexport function* watchAddOrganizationContractsStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_ADD_STARTED, addOrganizationContract);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganizationContract(action) {\n const organizationContract = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/save`, {\n method: 'POST',\n body: JSON.stringify(organizationContract),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOrganizationContract = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingOrganizationContract(editedOrganizationContract));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: editedOrganizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOrganizationContract } = yield select((state) =>\n selectors.getOrganizationContract(\n state.organizationContracts,\n organizationContract.contractId\n )\n );\n yield put(actions.failEditingOrganizationContract(oldOrganizationContract, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n const oldOrganizationContract = yield select((state) =>\n selectors.getOrganizationContract(state, organizationContract.contractId)\n );\n yield put(actions.failEditingOrganizationContract(oldOrganizationContract, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOrganizationContractsStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_EDIT_STARTED, editOrganizationContract);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganizationContract(action) {\n const { contractId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedOrganizationContract = yield select((state) =>\n selectors.getOrganizationContract(state, contractId)\n );\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/delete`, {\n method: 'POST',\n body: JSON.stringify({ contractId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOrganizationContract(contractId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: deletedOrganizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationContract(contractId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationContract(contractId, error));\n }\n}\n\nexport function* watchRemoveOrganizationContractStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_REMOVE_STARTED, removeOrganizationContract);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Contract Templates */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const contractTemplate = new schema.Entity(\n 'contractTemplates',\n {},\n { idAttribute: 'templateId' }\n);\nexport const contractTemplates = new schema.Array(contractTemplate);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchContractTemplatesList(action) {\n const { operatorId, organizationId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contractTemplates },\n result //order\n } = normalize(resultData, schemas.contractTemplates); //normalize data to byId and order\n yield put(\n actions.completeFetchingContractTemplates(\n contractTemplates ?? [],\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContractTemplates(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContractTemplates(error));\n }\n}\n\nexport function* watchFetchContractTemplatesList() {\n yield takeEvery(types.CONTRACT_TEMPLATES_FETCH_STARTED, fetchContractTemplatesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchContractTemplatesList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contractTemplates },\n result //order\n } = normalize(resultData, schemas.contractTemplates); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingContractTemplates(\n contractTemplates,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingContractTemplates(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingContractTemplates(error));\n }\n}\n\nexport function* watchPartialFetchContractTemplatesList() {\n yield takeEvery(\n types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED,\n partialFetchContractTemplatesList\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addContractTemplate(action) {\n const contractTemplate = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n // console.log('division', division);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/save`, {\n method: 'POST',\n body: JSON.stringify({ ...contractTemplate, templateId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedContractTemplate = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingContractTemplate(contractTemplate.templateId, addedContractTemplate)\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.contractTemplate'\n }),\n name: contractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContractTemplate(contractTemplate.templateId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContractTemplate(contractTemplate.templateId, error));\n }\n}\n\nexport function* watchAddContractTemplatesStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_ADD_STARTED, addContractTemplate);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editContractTemplate(action) {\n const contractTemplate = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/save`, {\n method: 'POST',\n body: JSON.stringify(contractTemplate),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedContractTemplate = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingContractTemplate(editedContractTemplate));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.contractTemplate'\n }),\n name: editedContractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldContractTemplate } = yield select((state) =>\n selectors.getContractTemplate(state.contractTemplates, contractTemplate.templateId)\n );\n yield put(actions.failEditingContractTemplate(oldContractTemplate, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldContractTemplate = yield select((state) =>\n selectors.getContractTemplate(state, contractTemplate.templateId)\n );\n // console.log('old', yield select((state) => selectors.getDivision(state, division.divisionId)));\n yield put(actions.failEditingContractTemplate(oldContractTemplate, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditContractTemplatesStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_EDIT_STARTED, editContractTemplate);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeContractTemplate(action) {\n const { templateId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedContractTemplate = yield select((state) =>\n selectors.getContractTemplate(state, templateId)\n );\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/delete`, {\n method: 'POST',\n body: JSON.stringify({ templateId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingContractTemplate(templateId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.template'\n }),\n name: deletedContractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContractTemplate(templateId, error));\n }\n }\n } catch (err) {\n // console.log('err', err);\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContractTemplate(templateId, error));\n }\n}\n\nexport function* watchRemoveContractTemplateStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_REMOVE_STARTED, removeContractTemplate);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Customers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const customer = new schema.Entity('customers', {}, { idAttribute: 'customerId' });\nexport const customers = new schema.Array(customer);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { getCustomersListService, saveCustomerService, deleteCustomerService } from '../services';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCustomersList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getCustomersListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { customers },\n result //order\n } = normalize(resultData, schemas.customers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingCustomers(customers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingCustomers(error));\n }\n }\n );\n}\n\nexport function* watchFetchCustomersList() {\n yield takeEvery(types.CUSTOMERS_FETCH_STARTED, fetchCustomersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchCustomersList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getCustomersListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { customers },\n result //order\n } = normalize(resultData, schemas.customers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingCustomers(customers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingCustomers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchCustomersList() {\n yield takeEvery(types.CUSTOMERS_PARTIAL_FETCH_STARTED, partialFetchCustomersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addCustomer(action) {\n const customer = action.payload;\n saveCustomerService(\n { ...customer, customerId: null },\n {\n successAction: (response) => {\n const addedCustomer = camelcaseKeys(response.data.customer);\n const addedOffice = camelcaseKeys(response.data.office);\n store.dispatch(\n actions.completeAddingCustomer(customer.customerId, addedCustomer, addedOffice)\n );\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingCustomer(customer.customerId, error));\n }\n }\n );\n}\n\nexport function* watchAddCustomersStarted() {\n yield takeEvery(types.CUSTOMER_ADD_STARTED, addCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editCustomer(action) {\n const customer = action.payload;\n const { oldCustomer } = yield select((state) =>\n selectors.getCustomer(state, customer.customerId)\n );\n saveCustomerService(\n { ...customer },\n {\n successAction: (response) => {\n const editedCustomer = camelcaseKeys(response.data.customer);\n const editedOffice = camelcaseKeys(response.data.office);\n store.dispatch(actions.completeEditingCustomer(editedCustomer, editedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingCustomer(oldCustomer, error));\n }\n }\n );\n}\n\nexport function* watchEditCustomersStarted() {\n yield takeEvery(types.CUSTOMER_EDIT_STARTED, editCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeCustomer(action) {\n const { customerId } = action.payload;\n const customer = yield select((state) => selectors.getCustomer(state, customerId));\n deleteCustomerService(\n { ...customer },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingCustomer(customerId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingCustomer(customerId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveCustomerStarted() {\n yield takeEvery(types.CUSTOMER_REMOVE_STARTED, removeCustomer);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Customers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const office = new schema.Entity('offices', {}, { idAttribute: 'officeId' });\nexport const offices = new schema.Array(office);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/office';\n\nexport const getOfficesListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'offices.office',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveOfficeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'offices.office',\n action: request.officeId ? 'Edit' : 'Create',\n name: request.officeName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteOfficeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.officeName}`,\n object: 'offices.office',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { getOfficesListService, saveOfficeService, deleteOfficeService } from '../services';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOfficesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getOfficesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { offices },\n result //order\n } = normalize(resultData, schemas.offices); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingOffices(offices, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingOffices(error));\n }\n }\n );\n}\n\nexport function* watchFetchOfficesList() {\n yield takeEvery(types.OFFICES_FETCH_STARTED, fetchOfficesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOfficesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getOfficesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { offices },\n result //order\n } = normalize(resultData, schemas.offices); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingOffices(offices, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingOffices(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchOfficesList() {\n yield takeEvery(types.OFFICES_PARTIAL_FETCH_STARTED, partialFetchOfficesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOffice(action) {\n const office = action.payload;\n saveOfficeService(\n { ...office, officeId: null },\n {\n successAction: (response) => {\n const addedOffice = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingOffice(office.officeId, addedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingOffice(office.officeId, error));\n }\n }\n );\n}\n\nexport function* watchAddOfficesStarted() {\n yield takeEvery(types.OFFICE_ADD_STARTED, addOffice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOffice(action) {\n const office = action.payload;\n const { oldOffice } = yield select((state) => selectors.getOffice(state, office.officeId));\n saveOfficeService(\n { ...office },\n {\n successAction: (response) => {\n const editedOffice = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingOffice(editedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingOffice(oldOffice, error));\n }\n }\n );\n}\n\nexport function* watchEditOfficesStarted() {\n yield takeEvery(types.OFFICE_EDIT_STARTED, editOffice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOffice(action) {\n const { officeId } = action.payload;\n const office = yield select((state) => selectors.getOffice(state, officeId));\n deleteOfficeService(\n { ...office },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingOffice(officeId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingOffice(officeId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveOfficeStarted() {\n yield takeEvery(types.OFFICE_REMOVE_STARTED, removeOffice);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Forms */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\nimport { utils } from 'sortablejs';\nimport * as util from 'utility/Utils';\n\nconst formSchema = new schema.Entity('forms', {}, { idAttribute: 'organizationFormId' });\nexport const forms = new schema.Array(formSchema);\n\nconst sectionSchema = new schema.Entity('sections', {}, { idAttribute: 'sectionId' });\nexport const sections = new schema.Array(sectionSchema);\n\nconst questionSchema = new schema.Entity('questions', {}, { idAttribute: 'questionId' });\nexport const questions = new schema.Array(questionSchema);\n\nconst responseSchema = new schema.Entity(\n 'responses',\n { questionResponse: [questionSchema] },\n {\n idAttribute: 'responseId',\n mergeStrategy: (entityA, entityB) =>\n !util.isIterable(entityA) ? [entityA, entityB] : [...entityA, entityB]\n }\n);\nexport const responses = new schema.Array(responseSchema);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/form';\n\ninterface FormFilters {\n userFetchDate?: Date;\n}\n\nexport const getFormsListService = (request: FormFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getFormsSectionsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getSections`, request);\n};\n\nexport const getFormsQuestionsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getQuestions`, request);\n};\n\nexport const saveFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: request.organizationFormId ? 'Edit' : 'Create',\n name: request.formName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const saveExternalFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: request.organizationFormId ? 'Edit' : 'Create',\n name: request.formName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveExternal`, request);\n};\n\nexport const saveResponseFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'forms.fillFormMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'forms.fillFormErrorMessage'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveResponse`, request);\n};\n\nexport const resendResponseFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'forms.resendFormResponseMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'forms.resendFormResponseErrorMessage'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/resendResponse`, request);\n};\n\nexport const deleteFormService = (request: any, configActions: ConfigActions, person: any) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.formName}`,\n object: person && person === true ? 'people.person' : 'forms.form',\n action: 'Delete',\n genderType: person && person === true ? 'SingularFemale' : 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as utility from '../../../../utility/Utils';\nimport * as interfaces from 'utility/types';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { DateTime } from 'luxon';\nimport uniq from 'lodash/uniq';\nimport camelCase from 'lodash/camelCase';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getFormsListService,\n getFormsQuestionsListService,\n getFormsSectionsListService,\n resendResponseFormService,\n saveExternalFormService,\n saveFormService,\n saveResponseFormService\n} from '../services/forms';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchFormsList(action) {\n getFormsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { forms },\n result //order\n } = normalize(resultData, schemas.forms); //normalize data to byId and order\n store.dispatch(actions.completeFetchingForms(forms, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingForms(error));\n }\n }\n );\n}\n\nexport function* watchFetchFormsList() {\n yield takeEvery(types.FORMS_FETCH_STARTED, fetchFormsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchFormsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getFormsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { forms },\n result //order\n } = normalize(resultData, schemas.forms); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingForms(forms, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingForms(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchFormsList() {\n yield takeEvery(types.FORMS_PARTIAL_FETCH_STARTED, partialFetchFormsList);\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH SECTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSections(action) {\n const formId = action.payload;\n\n getFormsSectionsListService(\n { formId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sections },\n result //order\n } = normalize(resultData, schemas.sections); //normalize data to byId and order\n store.dispatch(actions.completeFetchingFormSections(sections, result, formId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingFormSections(error));\n }\n }\n );\n}\n\nexport function* watchFetchSections() {\n yield takeEvery(types.FORM_SECTIONS_FETCH_STARTED, fetchSections);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH QUESTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchQuestions(action) {\n const formId = action.payload;\n\n getFormsQuestionsListService(\n { formId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { questions },\n result //order\n } = normalize(resultData, schemas.questions); //normalize data to byId and order\n store.dispatch(actions.completeFetchingFormQuestions(questions, result, formId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingFormQuestions(error));\n }\n }\n );\n}\n\nexport function* watchFetchQuestions() {\n yield takeEvery(types.FORM_QUESTIONS_FETCH_STARTED, fetchQuestions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addForm(action) {\n const form = action.payload;\n saveFormService(\n { ...form, organizationFormId: null },\n {\n successAction: (response) => {\n const addedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingForm(form.organizationFormId, addedForm));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingForm(form.organizationFormId, error));\n }\n }\n );\n}\n\nexport function* watchAddFormsStarted() {\n yield takeEvery(types.FORM_ADD_STARTED, addForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editForm(action) {\n const form = action.payload;\n const { oldForm } = yield select((state) => selectors.getForm(state, form.organizationFormId));\n saveFormService(\n { ...form },\n {\n successAction: (response) => {\n const editedForm = camelcaseKeys(response?.data);\n store.dispatch(actions.completeEditingForm({ ...editedForm, questions: [] }));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingForm(oldForm, error));\n }\n }\n );\n}\n\nexport function* watchEditFormsStarted() {\n yield takeEvery(types.FORM_EDIT_STARTED, editForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD EXTERNAL */\n/* -------------------------------------------------------------------------- */\nfunction* addFormExternal(action) {\n const form = action.payload;\n saveExternalFormService(\n { ...form, organizationFormId: null },\n {\n successAction: (response) => {\n const addedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingForm(form.organizationFormId, addedForm));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingForm(form.organizationFormId, error));\n }\n }\n );\n}\n\nexport function* watchAddExternalFormsStarted() {\n yield takeEvery(types.FORM_EXTERNAL_ADD_STARTED, addFormExternal);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT EXTERNAL */\n/* -------------------------------------------------------------------------- */\nfunction* editFormExternal(action) {\n const form = action.payload;\n const { oldForm } = yield select((state) => selectors.getForm(state, form.organizationFormId));\n saveExternalFormService(\n { ...form },\n {\n successAction: (response) => {\n const editedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingForm({ ...editedForm, questions: [] }));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingForm(oldForm, error));\n }\n }\n );\n}\n\nexport function* watchEditExternalFormsStarted() {\n yield takeEvery(types.FORM_EXTERNAL_EDIT_STARTED, editFormExternal);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeForm(action) {\n const { formId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedForm = yield select((state) => selectors.getForm(state, formId));\n const response = yield call(fetch, `${API_BASE_URL}/form/delete`, {\n method: 'POST',\n body: JSON.stringify({ formId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingForm(formId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'forms.form'\n }),\n name: deletedForm.organizationFormName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingForm(formId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingForm(formId, error));\n }\n}\n\nexport function* watchRemoveFormStarted() {\n yield takeEvery(types.FORM_REMOVE_STARTED, removeForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Save responses */\n/* -------------------------------------------------------------------------- */\nfunction* saveResponse(action) {\n const formResponse = action.payload;\n saveResponseFormService(\n { ...formResponse },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAddingResponse());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingResponse());\n }\n }\n );\n}\n\nexport function* watchResponseAddedStarted() {\n yield takeEvery(types.FORM_RESPONSE_SAVE_STARTED, saveResponse);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Get responses */\n/* -------------------------------------------------------------------------- */\nfunction* getResponses(action) {\n const payload = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/form/getResponses`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...payload })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const {\n success,\n data: { definition, answers }\n } = jsonResult;\n const camelDefinition = camelcaseKeys(definition);\n const {\n entities: { responses },\n result\n }: { entities: any; result: any[] } = normalize(camelDefinition, schemas.responses);\n const finalObject = {};\n uniq(result).forEach((answer) => {\n const {\n entities: { questions },\n result\n }: { entities: any; result: any[] } = normalize(responses[answer], schemas.questions);\n finalObject[answer] = {\n questions: questions,\n result: result\n };\n });\n yield put(\n actions.completeFetchingResponse(finalObject, uniq(result), payload.organizationFormId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingResponse(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // yield put(actions.failFetchingForm(error));\n }\n}\n\nexport function* watchResponseFetchStarted() {\n yield takeEvery(types.FORM_RESPONSE_FETCH_STARTED, getResponses);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Resend responses */\n/* -------------------------------------------------------------------------- */\nfunction* resendResponse(action) {\n const { organizationFormId, responseIds } = action.payload;\n resendResponseFormService(\n { organizationFormId, responseIds },\n {\n successAction: (response) => {\n store.dispatch(actions.completeResendingResponse(organizationFormId, responseIds));\n },\n errorAction: (error) => {\n store.dispatch(actions.failResendingResponse(organizationFormId, responseIds));\n }\n }\n );\n}\n\nexport function* watchResponseResendStarted() {\n yield takeEvery(types.FORM_RESPONSE_RESEND_STARTED, resendResponse);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Categories */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const category = new schema.Entity('categories', {}, { idAttribute: 'categoryId' });\nexport const categories = new schema.Array(category);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveCategoryDTO, DeleteCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveCategory = (request: SaveCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.categoryName}`,\n object: 'vehicleMaintenance.category',\n action: `${request.categoryId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/categories`, request);\n};\n\nexport const deleteCategory = (request: DeleteCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.categoryName}`,\n object: 'vehicleMaintenance.category',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteCategory/${request.categoryId}`);\n};\n\nexport const getCategoryList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/categories`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/categories';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/categories';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteCategory,\n getCategoryList,\n saveCategory\n} from 'views/screens/vehicleMaintenance/services/categoriesService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { DeleteCategoryDTO, SaveCategoryDTO } from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCategoriesList(action) {\n try {\n const jsonResult = yield call(getCategoryList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { categories },\n result //order\n } = normalize(resultData, schemas.categories); //normalize data to byId and order\n yield put(actions.completeFetchingCategories(categories, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCategories(error));\n }\n}\n\nexport function* watchFetchCategoriesList() {\n yield takeEvery(types.CATEGORIES_FETCH_STARTED, fetchCategoriesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchCategoriesList(action) {}\n\nexport function* watchPartialFetchCategoriesList() {\n yield takeEvery(types.CATEGORIES_PARTIAL_FETCH_STARTED, partialFetchCategoriesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingCategory(addedData.categoryId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingCategory(request.tempId, e));\n }\n}\n\nexport function* watchAddCategoriesStarted() {\n yield takeEvery(types.CATEGORY_ADD_STARTED, addCategory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingCategory({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingCategory(request.categoryId, e));\n }\n}\n\nexport function* watchEditCategoriesStarted() {\n yield takeEvery(types.CATEGORY_EDIT_STARTED, editCategory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteCategory, request);\n yield put(actions.completeRemovingCategory(request.categoryId));\n } catch (e) {\n yield put(actions.failRemovingCategory(request.categoryId, e));\n }\n}\n\nexport function* watchRemoveCategoryStarted() {\n yield takeEvery(types.CATEGORY_REMOVE_STARTED, removeCategory);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Subdivisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const maintenanceLine = new schema.Entity(\n 'maintenanceLines',\n {},\n { idAttribute: 'maintenanceLineId' }\n);\nexport const maintenanceLines = new schema.Array(maintenanceLine);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/maintenanceLine';\n\nexport const getMaintenanceLinesListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'maintenanceLines.maintenanceLine',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'maintenanceLines.maintenanceLine',\n action: request.maintenanceLineId ? 'Edit' : 'Create',\n name: request.maintenanceLineName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.maintenanceLineName}`,\n object: 'maintenanceLines.maintenanceLine',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const copyMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n name: `${request.maintenanceLineName}`,\n object: 'maintenanceLines.maintenanceLine',\n action: 'Custom',\n genderType: 'SingularFemale',\n customMessage: intl.formatMessage({\n id: 'maintenanceLines.copySuccessful'\n }),\n customMessageError: intl.formatMessage({\n id: 'maintenanceLines.copyError'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/copy`, request);\n};\n\nexport const importMaintenanceLinesService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importMaintenanceLines`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getMaintenanceLinesListService,\n saveMaintenanceLineService,\n deleteMaintenanceLineService,\n copyMaintenanceLineService,\n importMaintenanceLinesService\n} from '../services';\nimport { store } from 'redux/storeConfig/store';\nimport { MaintenancePlans } from '../types';\n\nconst mapStringToObject = (range: string) => {\n const [odometer, title, description, maintenanceRangeId, maintenanceLineId] = range.split('~');\n return {\n odometer: parseInt(odometer),\n title,\n description,\n maintenanceRangeId: Number(maintenanceLineId),\n maintenanceLineId: Number(maintenanceRangeId)\n };\n};\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchMaintenanceLinesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n // @ts-ignore\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getMaintenanceLinesListService(\n { operatorId, organizationId },\n {\n successAction: (response: { data: MaintenancePlans[] }) => {\n const resultData = response.data.map((result) => {\n const r = camelcaseKeys(result);\n return {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n });\n const {\n entities: { maintenanceLines },\n result //order\n } = normalize(resultData, schemas.maintenanceLines); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingMaintenanceLines(\n maintenanceLines,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMaintenanceLines(error));\n }\n }\n );\n}\n\nexport function* watchFetchMaintenanceLinesList() {\n yield takeEvery(types.MAINTENANCE_LINES_FETCH_STARTED, fetchMaintenanceLinesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchMaintenanceLinesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n // @ts-ignore\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getMaintenanceLinesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response: { data: MaintenancePlans[] }) => {\n const resultData = response.data.map((result) => {\n const r = camelcaseKeys(result);\n return {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n });\n const {\n entities: { maintenanceLines },\n result //order\n } = normalize(resultData, schemas.maintenanceLines); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingMaintenanceLines(\n maintenanceLines,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingMaintenanceLines(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchMaintenanceLinesList() {\n yield takeEvery(types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED, partialFetchMaintenanceLinesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n saveMaintenanceLineService(\n { ...maintenanceLine, maintenanceLineId: null },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const addedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(\n actions.completeAddingMaintenanceLine(\n maintenanceLine.maintenanceLineId,\n addedMaintenanceLine\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingMaintenanceLine(maintenanceLine.maintenanceLineId, error));\n }\n }\n );\n}\n\nexport function* watchAddMaintenanceLinesStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_ADD_STARTED, addMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n const oldMaintenanceLine = yield select((state) =>\n selectors.getMaintenanceLine(state, maintenanceLine.maintenanceLineId)\n );\n saveMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const editedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(actions.completeEditingMaintenanceLine(editedMaintenanceLine));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingMaintenanceLine(oldMaintenanceLine, error));\n }\n }\n );\n}\n\nexport function* watchEditMaintenanceLinesStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_EDIT_STARTED, editMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeMaintenanceLine(action) {\n const { maintenanceLineId } = action.payload;\n const maintenanceLine = yield select((state) =>\n selectors.getMaintenanceLine(state, maintenanceLineId)\n );\n deleteMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingMaintenanceLine(maintenanceLineId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingMaintenanceLine(maintenanceLineId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveMaintenanceLineStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_REMOVE_STARTED, removeMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* COPY */\n/* -------------------------------------------------------------------------- */\nfunction* copyMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n copyMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const copiedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(actions.completeCopyMaintenanceLine(copiedMaintenanceLine));\n },\n errorAction: (error) => {\n store.dispatch(actions.failCopyMaintenanceLine(error));\n }\n }\n );\n}\n\nexport function* watchCopyMaintenanceLineStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_COPY_STARTED, copyMaintenanceLine);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Notices */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const notice = new schema.Entity(\n 'notices',\n {},\n { idAttribute: (value) => `${value.unitId}-${value.noticeId}` }\n);\nexport const notices = new schema.Array(notice);\n","import { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { HttpWebtrack } from 'utility/http';\nimport { NoticeByDateRequest, NoticeByHourmeterRequest, NoticeByOdometerRequest } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { ConfigActions } from 'utility/http/http-events';\n\nexport const baseUrl = '/vehicleMaintenance';\n\nexport const saveNoticeByOdometer = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByOdometer`, request);\n};\n\nexport const saveNoticeByHourmeter = (\n request: Partial,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByHourMeter`, request);\n};\n\nexport const saveNoticeByDate = (request: NoticeByDateRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByDate`, request);\n};\n\nexport const deleteNotice = (request: { noticeId: number; unitId: number }) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteNotice/${request.noticeId}/${request.unitId}`);\n};\n\nexport const getNoticeByOdometerList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByOdometer`);\n};\n\nexport const getNoticeByDateList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByDate`);\n};\n\nexport const getNoticeByHourmeterList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByHourmeter`);\n};\n\nexport const renewNoticeByOdometer = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByOdometer`, request);\n};\n\nexport const renewNoticeByHourmeter = (request: NoticeByHourmeterRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByHourmeter`, request);\n};\n\nexport const renewNoticeByDate = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByDate`, request);\n};\n","import { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByOdometerList,\n renewNoticeByOdometer,\n saveNoticeByOdometer\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { NoticeByOdometerRequest } from 'views/screens/vehicleMaintenance/types';\nimport { getPreventiveNoticesByOdometerFormattedData } from 'views/screens/vehicleMaintenance/utils/getPreventiveNoticesByOdometerIndicators';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const intl = appIntl();\n const jsonResult = yield call(getNoticeByOdometerList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n\n // SE CALCULA EL PROGRESO Y EL LABEL PARA CADA UNO DE LOS AVISOS PREVENTIVOS\n let entitiesCop = getPreventiveNoticesByOdometerFormattedData(resultData, intl);\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_ODOMETER_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(`${addedData.unitId}-${addedData.noticeId}`, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(renewNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_REMOVE_STARTED, removeNotice);\n}\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByDate';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByDateList,\n saveNoticeByDate\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { NoticeByDateRequest } from 'views/screens/vehicleMaintenance/types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const jsonResult = yield call(getNoticeByDateList);\n const entitiesCop = jsonResult.map((result) => camelcaseKeys(result));\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_DATE_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_DATE_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(`${addedData.unitId}-${addedData.noticeId}`, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n /*\n const jsonResult = yield call(renewNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n */\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_REMOVE_STARTED, removeNotice);\n}\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByHourmeter';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByHourmeterList,\n saveNoticeByHourmeter,\n renewNoticeByHourmeter\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n NoticeByDateRequest,\n NoticeByHourmeterRequest\n} from 'views/screens/vehicleMaintenance/types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const jsonResult = yield call(getNoticeByHourmeterList);\n const entitiesCop = jsonResult.map((result) => camelcaseKeys(result));\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_HOURMETER_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n // @ts-ignore\n const jsonResult = yield call(saveNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(\n `${addedData.unitId}-${addedData.noticeId}`,\n request?.tempId ?? '',\n {\n ...request,\n ...addedData\n }\n )\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n // @ts-ignore\n const jsonResult = yield call(saveNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(renewNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_REMOVE_STARTED, removeNotice);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const provider = new schema.Entity('providers', {}, { idAttribute: 'providerId' });\nexport const providers = new schema.Array(provider);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveProviderCategoryDTO, DeleteProviderCategoryDTO } from '../types';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveProviderCategory = (request: SaveProviderCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.providerName}`,\n object: 'vehicleMaintenance.provider',\n action: `${request.providerId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/providers`, request);\n};\n\nexport const deleteProviderCategory = (request: DeleteProviderCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.providerName}`,\n object: 'vehicleMaintenance.provider',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteProvider/${request.providerId}`);\n};\n\nexport const getProviderList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/providers`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/providers';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/providers';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/providers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteProviderCategory,\n getProviderList,\n saveProviderCategory\n} from 'views/screens/vehicleMaintenance/services/providersService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n DeleteProviderCategoryDTO,\n SaveProviderCategoryDTO\n} from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchProvidersList(action) {\n try {\n const jsonResult = yield call(getProviderList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { providers },\n result //order\n } = normalize(resultData, schemas.providers); //normalize data to byId and order\n yield put(actions.completeFetchingProviders(providers, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n}\n\nexport function* watchFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_FETCH_STARTED2, fetchProvidersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchProvidersList(action) {}\n\nexport function* watchPartialFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_PARTIAL_FETCH_STARTED2, partialFetchProvidersList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveProviderCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingProvider(addedData.providerId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingProvider(request.tempId, e));\n }\n}\n\nexport function* watchAddProvidersStarted() {\n yield takeEvery(types.PROVIDER_ADD_STARTED, addProvider);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveProviderCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingProvider({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingProvider(request.providerId, e));\n }\n}\n\nexport function* watchEditProvidersStarted() {\n yield takeEvery(types.PROVIDER_EDIT_STARTED, editProvider);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteProviderCategory, request);\n yield put(actions.completeRemovingProvider(request.providerId));\n } catch (e) {\n yield put(actions.failRemovingProvider(request.providerId, e));\n }\n}\n\nexport function* watchRemoveProviderStarted() {\n yield takeEvery(types.PROVIDER_REMOVE_STARTED, removeProvider);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workmanships */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workmanship = new schema.Entity('workmanships', {}, { idAttribute: 'workmanshipId' });\nexport const workmanships = new schema.Array(workmanship);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveWorkmanshipCategoryDTO, DeleteWorkmanshipCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveWorkmanshipCategory = (request: SaveWorkmanshipCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.description}`,\n object: 'vehicleMaintenance.workmanship',\n action: `${request.workmanshipId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/workmanship`, request);\n};\n\nexport const deleteWorkmanshipCategory = (request: DeleteWorkmanshipCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.description}`,\n object: 'vehicleMaintenance.workmanship',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteWorkmanship/${request.workmanshipId}`);\n};\n\nexport const getWorkmanshipsList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/workmanship`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/workmanship';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/workmanship';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/workmanship';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteWorkmanshipCategory,\n getWorkmanshipsList,\n saveWorkmanshipCategory\n} from 'views/screens/vehicleMaintenance/services/workmanshipService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { SaveWorkmanshipCategoryDTO } from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkmanshipsList(action) {\n try {\n const jsonResult = yield call(getWorkmanshipsList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { workmanships },\n result //order\n } = normalize(resultData, schemas.workmanships); //normalize data to byId and order\n yield put(actions.completeFetchingWorkmanships(workmanships, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkmanships(error));\n }\n}\n\nexport function* watchFetchWorkmanshipsList() {\n yield takeEvery(types.WORKMANSHIPS_FETCH_STARTED, fetchWorkmanshipsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchWorkmanshipsList(action) {}\n\nexport function* watchPartialFetchWorkmanshipsList() {\n yield takeEvery(types.WORKMANSHIPS_PARTIAL_FETCH_STARTED, partialFetchWorkmanshipsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkmanship(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveWorkmanshipCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingWorkmanship(addedData.workmanshipId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingWorkmanship(request.tempId, e));\n }\n}\n\nexport function* watchAddWorkmanshipsStarted() {\n yield takeEvery(types.WORKMANSHIP_ADD_STARTED, addWorkmanship);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkmanship(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveWorkmanshipCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingWorkmanship({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingWorkmanship(request.workmanshipId, e));\n }\n}\n\nexport function* watchEditWorkmanshipsStarted() {\n yield takeEvery(types.WORKMANSHIP_EDIT_STARTED, editWorkmanship);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkmanship(action: PayloadAction<{ workmanshipId: number; description: string }>) {\n const request = action.payload;\n try {\n yield call(deleteWorkmanshipCategory, request);\n yield put(actions.completeRemovingWorkmanship(request.workmanshipId));\n } catch (e) {\n yield put(actions.failRemovingWorkmanship(request.workmanshipId, e));\n }\n}\n\nexport function* watchRemoveWorkmanshipStarted() {\n yield takeEvery(types.WORKMANSHIP_REMOVE_STARTED, removeWorkmanship);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sparePart = new schema.Entity('spareParts', {}, { idAttribute: 'sparePartId' });\nexport const spareParts = new schema.Array(sparePart);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveSparePartCategoryDTO, DeleteSparePartCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveSparePartCategory = (request: SaveSparePartCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.sparePartName}`,\n object: 'vehicleMaintenance.sparepart',\n action: `${request.sparePartId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/spareParts`, request);\n};\n\nexport const deleteSparePartCategory = (request: DeleteSparePartCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.sparePartName}`,\n object: 'vehicleMaintenance.sparepart',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteSparePart/${request.sparePartId}`);\n};\n\nexport const getSparePartList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/spareParts`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/spareParts';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/spareParts';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/spareParts';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteSparePartCategory,\n getSparePartList,\n saveSparePartCategory\n} from 'views/screens/vehicleMaintenance/services/sparePartsService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n DeleteSparePartCategoryDTO,\n SaveSparePartCategoryDTO\n} from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSparePartsList(action) {\n try {\n const jsonResult = yield call(getSparePartList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { spareParts },\n result //order\n } = normalize(resultData, schemas.spareParts); //normalize data to byId and order\n yield put(actions.completeFetchingSpareParts(spareParts, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSpareParts(error));\n }\n}\n\nexport function* watchFetchSparePartsList() {\n yield takeEvery(types.SPAREPARTS_FETCH_STARTED, fetchSparePartsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSparePartsList(action) {}\n\nexport function* watchPartialFetchSparePartsList() {\n yield takeEvery(types.SPAREPARTS_PARTIAL_FETCH_STARTED, partialFetchSparePartsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveSparePartCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingSparePart(addedData.sparePartId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingSparePart(request.tempId, e));\n }\n}\n\nexport function* watchAddSparePartsStarted() {\n yield takeEvery(types.SPAREPART_ADD_STARTED, addSparePart);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveSparePartCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingSparePart({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingSparePart(request.sparePartId, e));\n }\n}\n\nexport function* watchEditSparePartsStarted() {\n yield takeEvery(types.SPAREPART_EDIT_STARTED, editSparePart);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteSparePartCategory, request);\n yield put(actions.completeRemovingSparePart(request.sparePartId));\n } catch (e) {\n yield put(actions.failRemovingSparePart(request.sparePartId, e));\n }\n}\n\nexport function* watchRemoveSparePartStarted() {\n yield takeEvery(types.SPAREPART_REMOVE_STARTED, removeSparePart);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const protocol = new schema.Entity('protocols', {}, { idAttribute: 'protocolId' });\nexport const protocols = new schema.Array(protocol);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/protocol';\n\ninterface ProtocolAddRequest {\n protocolId: number;\n protocolName: string;\n protocolDescription: string;\n eventTypes: string;\n protocolPriority: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n}\n\ninterface ProtocolDeleteRequest {\n protocolId: number;\n protocolName: string;\n}\n\nexport const getProtocolsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveProtocolService = (request: ProtocolAddRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: request.protocolId ? 'Edit' : 'Create',\n name: request.protocolName,\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteProtocolService = (\n request: ProtocolDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: 'Delete',\n name: `${request.protocolName}`,\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport {\n deleteProtocolService,\n getProtocolsListService,\n saveProtocolService\n} from '../services/protocols';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchProtocolsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n getProtocolsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { protocols },\n result\n } = normalize(resultData, schemas.protocols);\n store.dispatch(\n actions.completeFetchingProtocols(protocols, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingProtocols(error));\n }\n }\n );\n}\n\nexport function* watchFetchProtocolsList() {\n yield takeEvery(types.PROTOCOLS_FETCH_STARTED, fetchProtocolsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\n\nfunction* partialFetchProtocolsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getProtocolsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { protocols },\n result\n } = normalize(resultData, schemas.protocols);\n store.dispatch(\n actions.completePartialFetchingProtocols(protocols, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingProtocols(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchProtocolsList() {\n yield takeEvery(types.PROTOCOLS_PARTIAL_FETCH_STARTED, partialFetchProtocolsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\n\nfunction* addProtocol(action) {\n const protocol = action.payload;\n saveProtocolService(\n {\n ...protocol,\n protocolId: null\n },\n {\n successAction: (response) => {\n const addedProtocol = camelcaseKeys(response?.data[0]);\n console.log('addedProtocol', addedProtocol);\n store.dispatch(actions.completeAddingProtocol(protocol.protocolId, addedProtocol));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingProtocol(protocol.protocolId, error));\n }\n }\n );\n}\n\nexport function* watchAddProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_ADD_STARTED, addProtocol);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\n\nfunction* editProtocol(action) {\n const protocol = action.payload;\n const oldProtocol = yield select((state) => selectors.getProtocol(state, protocol.protocolId));\n saveProtocolService(\n {\n ...protocol\n },\n {\n successAction: (response) => {\n const editedProtocol = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeEditingProtocol(editedProtocol));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingProtocol(oldProtocol, error));\n }\n }\n );\n}\n\nexport function* watchEditProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_EDIT_STARTED, editProtocol);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeProtocol(action) {\n const { protocolId } = action.payload;\n const protocol = yield select((state) => selectors.getProtocol(state, protocolId));\n deleteProtocolService(\n { ...protocol },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingProtocol(protocolId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingProtocol(protocolId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_REMOVE_STARTED, removeProtocol);\n}\n","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 watchFetchGeofenceById\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 watchFetchUnitById,\n watchFetchUnitTrajectoryStarted\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 watchUpdateMapFilterTabPinnedStarted\n} from './auth';\n\nimport {\n watchAddRoutesStarted,\n watchCopyRouteStarted,\n watchEditRoutesStarted,\n watchFetchRoutesList,\n watchPartialFetchRoutesList,\n watchRemoveRouteStarted,\n watchRemoveRoutesStarted\n} from '../../views/screens/Routes/sagas/routes';\n\nimport {\n watchAddContactsStarted,\n watchEditContactsStarted,\n watchFetchContactsList,\n watchRemoveContactsStarted\n} from 'views/screens/Contacts/sagas';\nimport { watchFetchRouteCheckpointsList } from '../../views/screens/Routes/sagas/routeCheckpoints';\nimport {\n watchEditAssignmentsStarted,\n watchFetchAssignmentsList,\n watchImportRouteAssignments,\n watchRemoveAssignmentStarted\n} from '../../views/screens/Routes/sagas/routesAssignments';\nimport {\n watchAddCommentsStarted,\n watchEditCommentsStarted,\n watchFetchCommentsList,\n watchRemoveCommentStarted\n} from '../../views/screens/Routes/sagas/routesComments';\nimport {\n watchAsignRouteExecutionUnit,\n watchChangeToAlternateRouteStarted,\n watchEditRouteExecutionStarted,\n watchFetchRoutesExecutions\n} from '../../views/screens/Routes/sagas/routesExecutions';\nimport { watchFetchRoutesReport } from '../../views/screens/Routes/sagas/routesReport';\nimport {\n watchAddMonitoringUsersStarted,\n watchAssignScheduleUsersStarted,\n watchEditMonitoringUsersStarted,\n watchFetchMonitoringUsersList,\n watchPartialFetchMonitoringUsersList,\n watchRemoveMonitoringUserStarted,\n watchSaveMonitoringUserRolesAndPermissionsStarted,\n watchUnassignScheduleUsersStarted,\n watchUpdateMonitoringUserPasswordStarted,\n watchFetchMonitoringUserById\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 watchFetchSimById\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 watchFetchLocationById\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 watchFetchGroupById\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 fork(watchUpdateMapFilterTabPinnedStarted),\n\n //Entities\n fork(watchFetchEntitiesList),\n fork(watchUpdateEntities),\n\n //Operators\n fork(watchFetchOperatorsList),\n fork(watchPartialFetchOperatorsList),\n fork(watchAddOperatorsStarted),\n fork(watchEditOperatorsStarted),\n fork(watchEditOperatorStandardPricesStarted),\n fork(watchRemoveOperatorStarted),\n\n //Organizations\n fork(watchFetchOrganizationsList),\n fork(watchPartialFetchOrganizationsList),\n fork(watchAddOrganizationsStarted),\n fork(watchEditOrganizationsStarted),\n fork(watchRemoveOrganizationStarted),\n fork(watchRegistrationCodeStarted),\n fork(watchCodeAssignStarted),\n fork(watchSaveConsolidableEventsStarted),\n fork(watchAddOrganizationDowntimeReasonsStarted),\n fork(watchEditOrganizationDowntimeReasonsStarted),\n fork(watchRemoveOrganizationDowntimeReasonsStarted),\n\n //Divisions\n fork(watchFetchDivisionsList),\n fork(watchPartialFetchDivisionsList),\n fork(watchAddDivisionsStarted),\n fork(watchEditDivisionsStarted),\n fork(watchRemoveDivisionStarted),\n\n //Subdivisions\n fork(watchFetchSubdivisionsList),\n fork(watchPartialFetchSubdivisionsList),\n fork(watchAddSubdivisionsStarted),\n fork(watchEditSubdivisionsStarted),\n fork(watchRemoveSubdivisionStarted),\n\n //Units\n fork(watchFetchUnitsList),\n fork(watchPartialFetchUnitsList),\n fork(watchFetchUnitsLiveStatusList),\n fork(watchFetchUnitInformationStarted),\n fork(watchAddUnitsStarted),\n fork(watchEditUnitsStarted),\n fork(watchRemoveUnitStarted),\n fork(watchFetchUnitHistoricalPositionsStarted),\n fork(watchExecuteDeviceAction),\n fork(watchActiveUnits),\n fork(watchAcknowledgeUnitEvent),\n fork(watchAssignDriverUnitsStarted),\n fork(watchCreateSharedLinkUnitStarted),\n fork(watchEndUnitDowntimeStarted),\n fork(watchStartUnitDowntimeStarted),\n // fork(watchUpdateDevice),\n fork(watchUpdateSim),\n fork(watchFetchUnitById),\n fork(watchFetchUnitTrajectoryStarted),\n\n //Geofences\n fork(watchFetchGeofencesList),\n fork(watchPartialFetchGeofencesList),\n fork(watchAddGeofencesStarted),\n fork(watchEditGeofencesStarted),\n fork(watchRemoveGeofenceStarted),\n fork(watchAssignGeofenceUnit),\n fork(watchRemoveGeofenceAssignation),\n fork(watchRemoveAllAssignmentsByGeofences),\n fork(watchRemoveAllAssignmentsByUnits),\n fork(watchEditGeofenceAssignation),\n fork(watchFetchGeofenceById),\n\n //Locations\n fork(watchFetchLocationsList),\n fork(watchPartialFetchLocationsList),\n fork(watchAddLocationsStarted),\n fork(watchEditLocationsStarted),\n fork(watchRemoveLocationStarted),\n fork(watchImportLocationsStarted),\n fork(watchFetchLocationById),\n\n //Drivers\n fork(watchFetchDriversList),\n fork(watchPartialFetchDriversList),\n fork(watchAddDriversStarted),\n fork(watchEditDriversStarted),\n fork(watchRemoveDriverStarted),\n fork(watchAssignSensor),\n fork(watchUnassignSensor),\n fork(watchStartImportDriverAndUnit),\n fork(watchAssignDriversToUnits),\n\n //JobsBacklog\n fork(watchFetchJobsBacklogList),\n fork(watchFetchJob),\n fork(watchAddJobsBacklogStarted),\n fork(watchEditJobsBacklogStarted),\n fork(watchPartialFetchJobsBacklogList),\n fork(watchAssignFilesJobsBacklogStarted),\n fork(watchAssignFormsJobsBacklogStarted),\n fork(watchAssignUsersJobsBacklogStarted),\n fork(watchChangeDueDateJobsBacklogStarted),\n fork(watchChangeMinMaxTimeJobsBacklogStarted),\n fork(watchChangePriorityJobsBacklogStarted),\n fork(watchChangeStartDateJobsBacklogStarted),\n fork(watchChangeStatusJobsBacklogStarted),\n fork(watchRemoveJobsBacklogStarted),\n fork(watchRescheduleJobsStarted),\n fork(watchFetchJobsBoardList),\n fork(watchChangeStatusJobsBoardStarted),\n fork(watchFetchJobsReportList),\n fork(watchImportJobsStarted),\n\n //Groups\n fork(watchFetchGroupsList),\n fork(watchPartialFetchGroupsList),\n fork(watchFetchAllEntitiesInGroup),\n fork(watchEditGroupsStarted),\n fork(watchEditConfigurationNotificationsStarted),\n fork(watchRemoveEntitiesFromGroup),\n fork(watchAddEntitiesToGroup),\n fork(watchEditUserProfileInGroup),\n fork(watchAddGroupStarted),\n fork(watchAddGroupWithEntitiesStarted),\n fork(watchRemoveGroupStarted),\n fork(watchLeaveGroupStarted),\n fork(watchFetchGroupById),\n\n //Quotations\n fork(watchFetchQuotationsList),\n fork(watchPartialFetchQuotationsList),\n fork(watchAddQuotationsStarted),\n fork(watchEditQuotationsStarted),\n fork(watchRemoveQuotationStarted),\n fork(watchCheckQuotationSchedulingStarted),\n fork(watchScheduleQuotationsStarted),\n fork(watchSetTimesupQuotationStarted),\n fork(watchApproveDenyQuotationManagementStarted),\n fork(watchAcceptDenyQuotationCustomerStarted),\n fork(watchCopyQuotationsStarted),\n\n //Organization Contracts\n fork(watchFetchOrganizationContractsList),\n fork(watchPartialFetchOrganizationContractsList),\n fork(watchAddOrganizationContractsStarted),\n fork(watchEditOrganizationContractsStarted),\n fork(watchRemoveOrganizationContractStarted),\n\n //Contract Templates\n fork(watchFetchContractTemplatesList),\n fork(watchPartialFetchContractTemplatesList),\n fork(watchAddContractTemplatesStarted),\n fork(watchEditContractTemplatesStarted),\n fork(watchRemoveContractTemplateStarted),\n\n //Customers\n fork(watchFetchCustomersList),\n fork(watchPartialFetchCustomersList),\n fork(watchAddCustomersStarted),\n fork(watchEditCustomersStarted),\n fork(watchRemoveCustomerStarted),\n\n //Offices\n fork(watchFetchOfficesList),\n fork(watchPartialFetchOfficesList),\n fork(watchAddOfficesStarted),\n fork(watchEditOfficesStarted),\n fork(watchRemoveOfficeStarted),\n\n //Categories\n fork(watchFetchCategoriesList),\n fork(watchPartialFetchCategoriesList),\n fork(watchAddCategoriesStarted),\n fork(watchEditCategoriesStarted),\n fork(watchRemoveCategoryStarted),\n\n //MaintenanceLines\n fork(watchFetchMaintenanceLinesList),\n fork(watchPartialFetchMaintenanceLinesList),\n fork(watchAddMaintenanceLinesStarted),\n fork(watchEditMaintenanceLinesStarted),\n fork(watchRemoveMaintenanceLineStarted),\n fork(watchCopyMaintenanceLineStarted),\n\n //Notices by Odometer\n fork(watchFetchNoticesList),\n fork(watchPartialFetchNoticesList),\n fork(watchAddNoticesStarted),\n fork(watchEditNoticesStarted),\n fork(watchRemoveNoticeStarted),\n fork(watchRenewNoticesStarted),\n\n //Notices by Date\n fork(watchFetchNoticesList2),\n fork(watchPartialFetchNoticesList2),\n fork(watchAddNoticesStarted2),\n fork(watchEditNoticesStarted2),\n fork(watchRemoveNoticeStarted2),\n fork(watchRenewNoticesStarted2),\n\n //Notices by hour meter\n fork(watchFetchNoticesList3),\n fork(watchPartialFetchNoticesList3),\n fork(watchAddNoticesStarted3),\n fork(watchEditNoticesStarted3),\n fork(watchRemoveNoticeStarted3),\n fork(watchRenewNoticesStarted3),\n\n //Provider\n fork(watchFetchProvidersList2),\n fork(watchPartialFetchProvidersList),\n fork(watchAddProvidersStarted),\n fork(watchEditProvidersStarted),\n fork(watchRemoveProviderStarted),\n\n //SpareParts\n fork(watchFetchSparePartsList),\n fork(watchPartialFetchSparePartsList),\n fork(watchAddSparePartsStarted),\n fork(watchEditSparePartsStarted),\n fork(watchRemoveSparePartStarted),\n\n //Workshops\n fork(watchFetchWorkmanshipsList),\n fork(watchPartialFetchWorkmanshipsList),\n fork(watchAddWorkmanshipsStarted),\n fork(watchEditWorkmanshipsStarted),\n fork(watchRemoveWorkmanshipStarted),\n\n //Routes\n fork(watchFetchRoutesList),\n fork(watchAddRoutesStarted),\n fork(watchEditRoutesStarted),\n fork(watchPartialFetchRoutesList),\n fork(watchRemoveRouteStarted),\n fork(watchRemoveRoutesStarted),\n fork(watchCopyRouteStarted),\n\n //Routes Checkponts\n fork(watchFetchRouteCheckpointsList),\n\n //Routes Executions\n fork(watchFetchRoutesExecutions),\n fork(watchAsignRouteExecutionUnit),\n fork(watchEditRouteExecutionStarted),\n fork(watchChangeToAlternateRouteStarted),\n\n //Routes Assignments\n fork(watchFetchAssignmentsList),\n fork(watchEditAssignmentsStarted),\n fork(watchRemoveAssignmentStarted),\n fork(watchImportRouteAssignments),\n\n //Routes Comments\n fork(watchFetchCommentsList),\n fork(watchAddCommentsStarted),\n fork(watchEditCommentsStarted),\n fork(watchRemoveCommentStarted),\n\n //Routes Report\n fork(watchFetchRoutesReport),\n\n //Schedules\n fork(watchFetchSchedulesList),\n fork(watchPartialFetchSchedulesList),\n fork(watchAddSchedulesStarted),\n fork(watchEditSchedulesStarted),\n fork(watchRemoveScheduleStarted),\n fork(watchEditSchedulesShiftStarted),\n fork(watchAddShiftStarted),\n\n //Service classes\n fork(watchFetchServiceClassesList),\n fork(watchAddServiceClassesStarted),\n fork(watchEditServiceClassesStarted),\n fork(watchServiceClassFetchStarted),\n fork(watchRemoveServiceClassStarted),\n\n //Agents\n fork(watchFetchAgentsList),\n fork(watchPartialFetchAgentsList),\n fork(watchAddAgentsStarted),\n fork(watchEditAgentsStarted),\n fork(watchAgentFetchStarted),\n fork(watchRemoveAgentStarted),\n\n //Modules\n fork(watchFetchModulesList),\n fork(watchPartialFetchModulesList),\n fork(watchAddModulesStarted),\n fork(watchEditModulesStarted),\n fork(watchModuleFetchStarted),\n fork(watchRemoveModuleStarted),\n\n //Brands\n fork(watchFetchBrandsList),\n\n //Workplans\n fork(watchFetchWorkplansList),\n fork(watchPartialFetchWorkplansList),\n fork(watchFetchWorkplanLocationsList),\n fork(watchAddWorkplansStarted),\n fork(watchEditWorkplansStarted),\n fork(watchRemoveWorkplanStarted),\n fork(watchCopyWorkplanStarted),\n fork(watchAssignOriginGeofenceStarted),\n fork(watchAssignWorkGeofenceStarted),\n fork(watchAssignDestinationGeofenceStarted),\n\n //Workplans Executions\n fork(watchFetchWorkplansExecutions),\n fork(watchFetchWorkplanExecution),\n fork(watchCancelWorkplanExecution),\n fork(watchFinalizeWorkplanExecution),\n fork(watchManualTransitWorkplanExecution),\n fork(watchChangeWorkplanExecutionUnit),\n fork(watchAsignWorkplanExecutionUnit),\n\n //Workplan Execution Locations\n fork(watchAddWorkplanExecutionLocationsStarted),\n fork(watchEditWorkplanExecutionLocationsStarted),\n fork(watchRemoveWorkplanExecutionLocationStarted),\n\n //Workplan Comments\n fork(watchFetchWorkplansCommentsList),\n fork(watchAddWorkplansCommentStarted),\n fork(watchRemoveWorkplansCommentStarted),\n\n //Workplan Assignments\n fork(watchFetchWorkplansAssignmentsList),\n fork(watchEditWorkplanAssignmentByScheduleStarted),\n fork(watchEditWorkplanAssignmentByDateTimeStarted),\n fork(watchRemoveWorkplanAssignmentStarted),\n\n //Workplans Visits\n fork(watchFetchWorkplansVisits),\n fork(watchFetchWorkplansAllVisits),\n\n //Workplans Report\n fork(watchFetchWorkplansReport),\n\n //Models\n fork(watchFetchModelsList),\n\n //Configurations\n fork(watchFetchConfigurationsList),\n\n //Contacts\n fork(watchFetchContactsList),\n fork(watchAddContactsStarted),\n fork(watchEditContactsStarted),\n fork(watchRemoveContactsStarted),\n\n //Monitoring Users\n fork(watchFetchMonitoringUsersList),\n fork(watchPartialFetchMonitoringUsersList),\n fork(watchAddMonitoringUsersStarted),\n fork(watchEditMonitoringUsersStarted),\n fork(watchRemoveMonitoringUserStarted),\n fork(watchUpdateMonitoringUserPasswordStarted),\n fork(watchSaveMonitoringUserRolesAndPermissionsStarted),\n fork(watchAssignScheduleUsersStarted),\n fork(watchUnassignScheduleUsersStarted),\n fork(watchFetchMonitoringUserById),\n\n //Static Catalogs\n fork(watchFetchCurrenciesList),\n fork(watchFetchPaymentMethodsList),\n fork(watchFetchTimeZonesList),\n fork(watchFetchProvidersList),\n fork(watchFetchLocationClassesList),\n fork(watchFetchSensorMeasuresList),\n\n //Sims\n fork(watchFetchSimsList),\n fork(watchPartialFetchSimsList),\n fork(watchAddSimsStarted),\n fork(watchEditSimsStarted),\n fork(watchRemoveSimStarted),\n fork(watchFetchSimById),\n\n //Countries\n fork(watchFetchCountriesList),\n\n //Vehicles\n fork(watchFetchVehiclesList),\n fork(watchPartialFetchVehiclesList),\n fork(watchAddVehiclesStarted),\n fork(watchEditVehiclesStarted),\n fork(watchLicenseCheckStarted),\n fork(watchFetchVehicleMakersList),\n fork(watchFetchVehicleModelsList),\n fork(watchFetchInsuranceCompaniesList),\n fork(watchFetchInsuranceAgentsList),\n fork(watchRemoveVehicleStarted),\n\n //Assets\n fork(watchFetchAssetsList),\n fork(watchPartialFetchAssetsList),\n fork(watchEditAssetsStarted),\n fork(watchIdentifierCheckStarted),\n fork(watchAddAssetsStarted),\n fork(watchRemoveAssetStarted),\n fork(watchSecuritySealCodeCheckStarted),\n\n //Sensors\n fork(watchFetchSensorsList),\n fork(watchPartialFetchSensorsList),\n fork(watchFetchSensorBrandsList),\n fork(watchFetchSensorModelsList),\n fork(watchSensorIdentifierCheckStarted),\n fork(watchAddSensorsStarted),\n fork(watchEditSensorsStarted),\n fork(watchRemoveSensorStarted),\n fork(watchSensorCalibrationStartStarted),\n fork(watchSensorCalibrationFinalizeStarted),\n\n //Forms\n fork(watchFetchFormsList),\n fork(watchPartialFetchFormsList),\n fork(watchFetchSections),\n fork(watchFetchQuestions),\n fork(watchAddFormsStarted),\n fork(watchEditFormsStarted),\n fork(watchAddExternalFormsStarted),\n fork(watchEditExternalFormsStarted),\n fork(watchRemoveFormStarted),\n fork(watchResponseAddedStarted),\n fork(watchResponseResendStarted),\n fork(watchResponseFetchStarted),\n\n //Protocols\n fork(watchFetchProtocolsList),\n fork(watchPartialFetchProtocolsList),\n fork(watchAddProtocolStarted),\n fork(watchEditProtocolStarted),\n fork(watchRemoveProtocolStarted)\n ]);\n}\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","/* 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","// 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 GROUP_FETCH_STARTED = 'GROUP_FETCH_STARTED';\nexport const GROUP_FETCH_COMPLETED = 'GROUP_FETCH_COMPLETED';\nexport const GROUP_FETCH_FAILED = 'GROUP_FETCH_FAILED';\n\nexport const GROUPS_PARTIAL_FETCH_STARTED = 'GROUPS_PARTIAL_FETCH_STARTED';\nexport const GROUPS_PARTIAL_FETCH_COMPLETED = 'GROUPS_PARTIAL_FETCH_COMPLETED';\nexport const GROUPS_PARTIAL_FETCH_FAILED = 'GROUPS_PARTIAL_FETCH_FAILED';\n\nexport const GROUPS_ALL_ENTITIES_FETCH_STARTED = 'GROUPS_ALL_ENTITIES_FETCH_STARTED';\nexport const GROUPS_ALL_ENTITIES_FETCH_COMPLETED = 'GROUPS_ALL_ENTITIES_FETCH_COMPLETED';\nexport const GROUPS_ALL_ENTITIES_FETCH_FAILED = 'GROUPS_ALL_ENTITIES_FETCH_FAILED';\n\nexport const GROUP_EDIT_STARTED = 'GROUP_EDIT_STARTED';\nexport const GROUP_EDIT_COMPLETED = 'GROUP_EDIT_COMPLETED';\nexport const GROUP_EDIT_FAILED = 'GROUP_EDIT_FAILED';\n\nexport const GROUP_ADD_STARTED = 'GROUP_ADD_STARTED';\nexport const GROUP_ADD_COMPLETED = 'GROUP_ADD_COMPLETED';\nexport const GROUP_ADD_FAILED = 'GROUP_ADD_FAILED';\n\nexport const GROUP_ADD_WITH_ENTITIES_STARTED = 'GROUP_ADD_WITH_ENTITIES_STARTED';\nexport const GROUP_ADD_WITH_ENTITIES_COMPLETED = 'GROUP_ADD_WITH_ENTITIES_COMPLETED';\nexport const GROUP_ADD_WITH_ENTITIES_FAILED = 'GROUP_ADD_WITH_ENTITIES_FAILED';\n\nexport const GROUP_REMOVE_STARTED = 'GROUP_REMOVE_STARTED';\nexport const GROUP_REMOVE_COMPLETED = 'GROUP_REMOVE_COMPLETED';\nexport const GROUP_REMOVE_FAILED = 'GROUP_REMOVE_FAILED';\n\nexport const GROUP_LEAVE_STARTED = 'GROUP_LEAVE_STARTED';\nexport const GROUP_LEAVE_COMPLETED = 'GROUP_LEAVE_COMPLETED';\nexport const GROUP_LEAVE_FAILED = 'GROUP_LEAVE_FAILED';\n\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED';\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED';\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED';\n\nexport const GROUP_REMOVE_ENTITIES_STARTED = 'GROUP_REMOVE_ENTITIES_STARTED';\nexport const GROUP_REMOVE_ENTITIES_COMPLETED = 'GROUP_REMOVE_ENTITIES_COMPLETED';\n\nexport const GROUP_ADD_ENTITIES_STARTED = 'GROUP_ADD_ENTITIES_STARTED';\nexport const GROUP_ADD_ENTITIES_COMPLETED = 'GROUP_ADD_ENTITIES_COMPLETED';\n\nexport const GROUP_USER_PROFILE_EDIT_STARTED = 'GROUP_USER_PROFILE_EDIT_STARTED';\nexport const GROUP_USER_PROFILE_EDIT_COMPLETED = 'GROUP_USER_PROFILE_EDIT_COMPLETED';\n\nexport const GROUP_SELECTED = 'GROUP_SELECTED';\nexport const GROUPS_ALL_SELECTED = 'GROUPS_ALL_SELECTED';\nexport const GROUP_DESELECTED = 'GROUP_DESELECTED';\nexport const GROUPS_ALL_DESELECTED = 'GROUPS_ALL_DESELECTED';\n\nexport interface ReduxGroup {\n isSelected: boolean;\n users: any;\n locations: { [key: string]: any };\n workplans: { [key: string]: any };\n units: { [key: string]: any };\n geofences: { [key: string]: any };\n drivers: { [key: string]: any };\n groupId: number;\n groupName: string;\n groupStatus: number;\n profileId: number;\n isInGroup: number;\n locationsCount: number;\n workPlansCount: number;\n userCount: number;\n unitCount: number;\n geofenceCount: number;\n driverCount: number;\n permanenceTimeUnauthorizedMeeting: number;\n notifyUnauthorizedMeeting: number;\n notifyMemberAdded: number;\n notifyMemberDeleted: number;\n notifyAdminMemberAdded: number;\n notifyAdminMemberLeave: number;\n notifyAdminMemberDeleted: number;\n notifyAdminGroupDeleted: number;\n safeDriverSpeedLimit: number;\n notifyAdminSpeedEvent: number;\n notifyAdminPhoneEvent: number;\n notifyOwnerSpeedEvent: number;\n notifyOwnerPhoneEvent: number;\n notifyRiskyDriving: number;\n notifyMemberAlertsSac: number;\n notifyAdminAlertsSac: number;\n notifyOwnerAlertsSac: number;\n applicationIdentities: any;\n}\n","// -------------------------------------------\n// | entityTypeId | Entity |\n// -------------------------------------------\n// | 1 |\tUnidad de Rastreo |\n// | 2 |\tSubdivision |\n// | 3 |\tVehiculo |\n// | 4 |\tSIM |\n// | 5 |\tModulo |\n// | 6 |\tPiloto |\n// | 7 |\tTransportista |\n// | 8 |\tNotificacion |\n// | 9 |\tAsesores |\n// | 12 |\tClases de Servicio |\n// | 13 |\tComponentes de Vehiculos |\n// | 14 |\tServicios de Vehiculos |\n// | 15 |\tMensajes de Sistema |\n// | 16 |\tLogin |\n// | 17 |\tUsuarios |\n// | 18 |\tOperador |\n// | 19 |\tDivisiĆ³n |\n// | 20 | Formularios |\n// | 30 |\tOrganizaciones |\n// | 31 |\tUsuarios |\n// | 32 |\tContactos |\n// | 33 | Planes de Trabajo |\n// | 34 | Geocercas |\n// | 35 | Horarios |\n// | 37 | Rutas |\n// | 40 |\tMarcas |\n// | 41 |\tModelos |\n// | 42 |\tConfiguraciones |\n// | 43 |\tSims |\n// | 44 |\tPaĆ­ses |\n// | 45 |\tReferencias |\n// | 46 |\tActivos |\n// | 47 |\tSensores |\n// | 48 |\tJobs |\n// | 49 |\tGrupos |\n// | 50 |\tContratos |\n// | 51 |\tClientes |\n// | 52 |\tLinea de Mantenimiento |\n// | 53 |\tPlantillas de Contratos |\n// | 54 |\tCotizaciones |\n// | 55 | Sucursales |\n// | 56 | Protocolos |\n// | 57 | ETA |\n// ---------------------------------------------\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 JOBS_BACKLOG_FETCH_STARTED = 'JOBS_BACKLOG_FETCH_STARTED';\nexport const JOBS_BACKLOG_FETCH_COMPLETED = 'JOBS_BACKLOG_FETCH_COMPLETED';\nexport const JOBS_BACKLOG_FETCH_FAILED = 'JOBS_BACKLOG_FETCH_FAILED';\n\nexport const JOBS_BACKLOG_PARTIAL_FETCH_STARTED = 'JOBS_BACKLOG_PARTIAL_FETCH_STARTED';\nexport const JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED = 'JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED';\nexport const JOBS_BACKLOG_PARTIAL_FETCH_FAILED = 'JOBS_BACKLOG_PARTIAL_FETCH_FAILED';\n\nexport const JOB_BACKLOG_ADD_STARTED = 'JOB_BACKLOG_ADD_STARTED';\nexport const JOB_BACKLOG_ADD_COMPLETED = 'JOB_BACKLOG_ADD_COMPLETED';\nexport const JOB_BACKLOG_ADD_FAILED = 'JOB_BACKLOG_ADD_FAILED';\n\nexport const JOB_BACKLOG_EDIT_STARTED = 'JOB_BACKLOG_EDIT_STARTED';\nexport const JOB_BACKLOG_EDIT_COMPLETED = 'JOB_BACKLOG_EDIT_COMPLETED';\nexport const JOB_BACKLOG_EDIT_FAILED = 'JOB_BACKLOG_EDIT_FAILED';\n\nexport const JOB_BACKLOG_SELECTED = 'JOB_BACKLOG_SELECTED';\nexport const JOBS_BACKLOG_ALL_SELECTED = 'JOBS_BACKLOG_ALL_SELECTED';\nexport const JOB_BACKLOG_DESELECTED = 'JOB_BACKLOG_DESELECTED';\nexport const JOBS_BACKLOG_ALL_DESELECTED = 'JOBS_BACKLOG_ALL_DESELECTED';\n\nexport const JOBS_BACKLOG_REMOVE_STARTED = 'JOBS_BACKLOG_REMOVE_STARTED';\nexport const JOBS_BACKLOG_REMOVE_COMPLETED = 'JOBS_BACKLOG_REMOVE_COMPLETED';\nexport const JOBS_BACKLOG_REMOVE_FAILED = 'JOBS_BACKLOG_REMOVE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_STATUS_STARTED = 'JOBS_BACKLOG_CHANGE_STATUS_STARTED';\nexport const JOBS_BACKLOG_CHANGE_STATUS_COMPLETED = 'JOBS_BACKLOG_CHANGE_STATUS_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_STATUS_FAILED = 'JOBS_BACKLOG_CHANGE_STATUS_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_STARTED = 'JOBS_BACKLOG_CHANGE_PRIORITY_STARTED';\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED = 'JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_FAILED = 'JOBS_BACKLOG_CHANGE_PRIORITY_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_STARTED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_FAILED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_START_DATE_STARTED = 'JOBS_BACKLOG_CHANGE_START_DATE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED = 'JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_START_DATE_FAILED = 'JOBS_BACKLOG_CHANGE_START_DATE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED = 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED';\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED =\n 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED = 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_USERS_STARTED = 'JOBS_BACKLOG_ASSIGN_USERS_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_USERS_COMPLETED = 'JOBS_BACKLOG_ASSIGN_USERS_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_USERS_FAILED = 'JOBS_BACKLOG_ASSIGN_USERS_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_FORMS_STARTED = 'JOBS_BACKLOG_ASSIGN_FORMS_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED = 'JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_FORMS_FAILED = 'JOBS_BACKLOG_ASSIGN_FORMS_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_FILES_STARTED = 'JOBS_BACKLOG_ASSIGN_FILES_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_FILES_COMPLETED = 'JOBS_BACKLOG_ASSIGN_FILES_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_FILES_FAILED = 'JOBS_BACKLOG_ASSIGN_FILES_FAILED';\n\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED';\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED';\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED';\n\nexport const JOBS_BACKLOG_IMPORT_STARTED = 'JOBS_BACKLOG_IMPORT_STARTED';\nexport const JOBS_BACKLOG_IMPORT_COMPLETED = 'JOBS_BACKLOG_IMPORT_COMPLETED';\nexport const JOBS_BACKLOG_IMPORT_FAILED = 'JOBS_BACKLOG_IMPORT_FAILED';\n","export const WORKPLANS_FETCH_STARTED = 'WORKPLANS_FETCH_STARTED';\nexport const WORKPLANS_FETCH_COMPLETED = 'WORKPLANS_FETCH_COMPLETED';\nexport const WORKPLANS_FETCH_FAILED = 'WORKPLANS_FETCH_FAILED';\n\nexport const WORKPLANS_PARTIAL_FETCH_STARTED = 'WORKPLANS_PARTIAL_FETCH_STARTED';\nexport const WORKPLANS_PARTIAL_FETCH_COMPLETED = 'WORKPLANS_PARTIAL_FETCH_COMPLETED';\nexport const WORKPLANS_PARTIAL_FETCH_FAILED = 'WORKPLANS_PARTIAL_FETCH_FAILED';\n\nexport const WORKPLAN_LOCATIONS_FETCH_COMPLETED = 'WORKPLAN_LOCATIONS_FETCH_COMPLETED';\nexport const WORKPLAN_LOCATIONS_FETCH_FAILED = 'WORKPLAN_LOCATIONS_FETCH_FAILED';\n\nexport const WORKPLAN_ADD_STARTED = 'WORKPLAN_ADD_STARTED';\nexport const WORKPLAN_ADD_COMPLETED = 'WORKPLAN_ADD_COMPLETED';\nexport const WORKPLAN_ADD_FAILED = 'WORKPLAN_ADD_FAILED';\n\nexport const WORKPLAN_EDIT_STARTED = 'WORKPLAN_EDIT_STARTED';\nexport const WORKPLAN_EDIT_COMPLETED = 'WORKPLAN_EDIT_COMPLETED';\nexport const WORKPLAN_EDIT_FAILED = 'WORKPLAN_EDIT_FAILED';\n\nexport const WORKPLAN_REMOVE_STARTED = 'WORKPLAN_REMOVE_STARTED';\nexport const WORKPLAN_REMOVE_COMPLETED = 'WORKPLAN_REMOVE_COMPLETED';\nexport const WORKPLAN_REMOVE_FAILED = 'WORKPLAN_REMOVE_FAILED';\n\nexport const WORKPLAN_SELECTED = 'WORKPLAN_SELECTED';\nexport const WORKPLANS_ALL_SELECTED = 'WORKPLANS_ALL_SELECTED';\nexport const WORKPLAN_DESELECTED = 'WORKPLAN_DESELECTED';\nexport const WORKPLANS_ALL_DESELECTED = 'WORKPLANS_ALL_DESELECTED';\n\nexport const WORKPLAN_COPY_STARTED = 'WORKPLAN_COPY_STARTED';\nexport const WORKPLAN_COPY_COMPLETED = 'WORKPLAN_COPY_COMPLETED';\nexport const WORKPLAN_COPY_FAILED = 'WORKPLAN_COPY_FAILED';\n\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED = 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED = 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED';\n\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED';\n\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED';\n","export const QUOTATIONS_FETCH_STARTED = 'QUOTATIONS_FETCH_STARTED';\nexport const QUOTATIONS_FETCH_COMPLETED = 'QUOTATIONS_FETCH_COMPLETED';\nexport const QUOTATIONS_FETCH_FAILED = 'QUOTATIONS_FETCH_FAILED';\n\nexport const QUOTATIONS_PARTIAL_FETCH_STARTED = 'QUOTATIONS_PARTIAL_FETCH_STARTED';\nexport const QUOTATIONS_PARTIAL_FETCH_COMPLETED = 'QUOTATIONS_PARTIAL_FETCH_COMPLETED';\nexport const QUOTATIONS_PARTIAL_FETCH_FAILED = 'QUOTATIONS_PARTIAL_FETCH_FAILED';\n\nexport const QUOTATIONS_ADD_STARTED = 'QUOTATIONS_ADD_STARTED';\nexport const QUOTATIONS_ADD_COMPLETED = 'QUOTATIONS_ADD_COMPLETED';\nexport const QUOTATIONS_ADD_FAILED = 'QUOTATIONS_ADD_FAILED';\n\nexport const QUOTATIONS_EDIT_STARTED = 'QUOTATIONS_EDIT_STARTED';\nexport const QUOTATIONS_EDIT_COMPLETED = 'QUOTATIONS_EDIT_COMPLETED';\nexport const QUOTATIONS_EDIT_FAILED = 'QUOTATIONS_EDIT_FAILED';\n\nexport const QUOTATIONS_REMOVE_STARTED = 'QUOTATIONS_REMOVE_STARTED';\nexport const QUOTATIONS_REMOVE_COMPLETED = 'QUOTATIONS_REMOVE_COMPLETED';\nexport const QUOTATIONS_REMOVE_FAILED = 'QUOTATIONS_REMOVE_FAILED';\n\nexport const QUOTATIONS_SCHEDULE_STARTED = 'QUOTATIONS_SCHEDULE_STARTED';\nexport const QUOTATIONS_SCHEDULE_COMPLETED = 'QUOTATIONS_SCHEDULE_COMPLETED';\nexport const QUOTATIONS_SCHEDULE_FAILED = 'QUOTATIONS_SCHEDULE_FAILED';\n\nexport const QUOTATIONS_CHECK_SCHEDULING_STARTED = 'QUOTATIONS_CHECK_SCHEDULING_STARTED';\nexport const QUOTATIONS_CHECK_SCHEDULING_COMPLETED = 'QUOTATIONS_CHECK_SCHEDULING_COMPLETED';\nexport const QUOTATIONS_CHECK_SCHEDULING_FAILED = 'QUOTATIONS_CHECK_SCHEDULING_FAILED';\n\nexport const QUOTATIONS_SET_TIMESUP_STARTED = 'QUOTATIONS_SET_TIMESUP_STARTED';\nexport const QUOTATIONS_SET_TIMESUP_COMPLETED = 'QUOTATIONS_SET_TIMESUP_COMPLETED';\nexport const QUOTATIONS_SET_TIMESUP_FAILED = 'QUOTATIONS_SET_TIMESUP_FAILED';\n\nexport const QUOTATIONS_SELECTED = 'QUOTATIONS_SELECTED';\nexport const QUOTATIONS_ALL_SELECTED = 'QUOTATIONS_ALL_SELECTED';\nexport const QUOTATIONS_DESELECTED = 'QUOTATIONS_DESELECTED';\nexport const QUOTATIONS_ALL_DESELECTED = 'QUOTATIONS_ALL_DESELECTED';\n\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED =\n 'QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED';\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED = 'QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED';\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED =\n 'QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED';\n\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED';\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED';\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED';\n\nexport const QUOTATION_COPY_STARTED = 'QUOTATION_COPY_STARTED';\nexport const QUOTATION_COPY_FAILED = 'QUOTATION_COPY_FAILED';\nexport const QUOTATION_COPY_COMPLETED = 'QUOTATION_COPY_COMPLETED';\n\nexport const QUOTATION_CHANGE_ORGANIZATION = 'QUOTATION_CHANGE_ORGANIZATION';\n","export const ORGANIZATIONS_FETCH_STARTED = 'ORGANIZATIONS_FETCH_STARTED';\nexport const ORGANIZATIONS_FETCH_COMPLETED = 'ORGANIZATIONS_FETCH_COMPLETED';\nexport const ORGANIZATIONS_FETCH_FAILED = 'ORGANIZATIONS_FETCH_FAILED';\n\nexport const ORGANIZATIONS_PARTIAL_FETCH_STARTED = 'ORGANIZATIONS_PARTIAL_FETCH_STARTED';\nexport const ORGANIZATIONS_PARTIAL_FETCH_COMPLETED = 'ORGANIZATIONS_PARTIAL_FETCH_COMPLETED';\nexport const ORGANIZATIONS_PARTIAL_FETCH_FAILED = 'ORGANIZATIONS_PARTIAL_FETCH_FAILED';\n\nexport const ORGANIZATION_ADD_STARTED = 'ORGANIZATION_ADD_STARTED';\nexport const ORGANIZATION_ADD_COMPLETED = 'ORGANIZATION_ADD_COMPLETED';\nexport const ORGANIZATION_ADD_FAILED = 'ORGANIZATION_ADD_FAILED';\n\nexport const ORGANIZATION_EDIT_STARTED = 'ORGANIZATION_EDIT_STARTED';\nexport const ORGANIZATION_EDIT_COMPLETED = 'ORGANIZATION_EDIT_COMPLETED';\nexport const ORGANIZATION_EDIT_FAILED = 'ORGANIZATION_EDIT_FAILED';\n\nexport const ORGANIZATION_REMOVE_STARTED = 'ORGANIZATION_REMOVE_STARTED';\nexport const ORGANIZATION_REMOVE_COMPLETED = 'ORGANIZATION_REMOVE_COMPLETED';\nexport const ORGANIZATION_REMOVE_FAILED = 'ORGANIZATION_REMOVE_FAILED';\n\nexport const ORGANIZATION_SELECTED = 'ORGANIZATION_SELECTED';\nexport const ORGANIZATIONS_ALL_SELECTED = 'ORGANIZATIONS_ALL_SELECTED';\nexport const ORGANIZATION_DESELECTED = 'ORGANIZATION_DESELECTED';\nexport const ORGANIZATIONS_ALL_DESELECTED = 'ORGANIZATIONS_ALL_DESELECTED';\n\nexport const ORGANIZATION_CODE_CHECK_STARTED = 'ORGANIZATION_CODE_CHECK_STARTED';\nexport const ORGANIZATION_CODE_CHECK_COMPLETED = 'ORGANIZATION_CODE_CHECK_COMPLETED';\nexport const ORGANIZATION_CODE_CHECK_FAILED = 'ORGANIZATION_CODE_CHECK_FAILED';\n\nexport const ORGANIZATION_CODE_ASSIGN_STARTED = 'ORGANIZATION_CODE_ASSIGN_STARTED';\nexport const ORGANIZATION_CODE_ASSIGN_COMPLETED = 'ORGANIZATION_CODE_ASSIGN_COMPLETED';\nexport const ORGANIZATION_CODE_ASSIGN_FAILED = 'ORGANIZATION_CODE_ASSIGN_FAILED';\n\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED';\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED';\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_STARTED = 'ORGANIZATION_DOWNTIME_REASON_ADD_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_FAILED = 'ORGANIZATION_DOWNTIME_REASON_ADD_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED =\n 'ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED = 'ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED';\n\nexport interface ReduxOrganization {\n isSelected: boolean;\n organizationId: number;\n organizationName: string;\n contactPhone?: string;\n organizationAddress: string;\n contactName?: string;\n userLicense?: number;\n organizationStatus: number;\n contactEmail?: string;\n privateCode?: string;\n operatorId: number;\n agentId: number;\n operatorName: string;\n themeId?: number;\n alertConsoleActive: number;\n showUsersOnChat: number;\n registrationCode?: string;\n registrationDivisionId?: number;\n registrationSubdivisionId?: number;\n registrationNotificationMails?: string;\n tradeName?: string;\n taxNumber: string;\n allowedApplications?: number;\n currentApplications: number;\n legalRepresentativeId?: number;\n legalRepresentativeName?: string;\n legalRepresentativeIdentification?: string;\n legalRepresentativeAge: number;\n legalRepresentativeNacionality?: string;\n legalRepresentativeAddress: string;\n utcZoneId?: number;\n organizationType: number;\n sacUsers: SacUser[];\n isConfirmed: boolean;\n loginextActive: number;\n loginextEffectiveVisitingTime: number;\n loginextDeliveryDelay: number;\n}\n\nexport interface SacUser {\n userId: number;\n userName: string;\n completeName: string;\n chatUserTypeId: number;\n organizationId: number;\n}\n","import { ReduxUnit } from 'views/screens/Units/types';\n\nexport const GEOFENCES_FETCH_STARTED = 'GEOFENCES_FETCH_STARTED';\nexport const GEOFENCES_FETCH_COMPLETED = 'GEOFENCES_FETCH_COMPLETED';\nexport const GEOFENCES_FETCH_FAILED = 'GEOFENCES_FETCH_FAILED';\n\nexport const GEOFENCE_FETCH_STARTED = 'GEOFENCE_FETCH_STARTED';\nexport const GEOFENCE_FETCH_COMPLETED = 'GEOFENCE_FETCH_COMPLETED';\nexport const GEOFENCE_FETCH_FAILED = 'GEOFENCE_FETCH_FAILED';\n\nexport const GEOFENCES_PARTIAL_FETCH_STARTED = 'GEOFENCES_PARTIAL_FETCH_STARTED';\nexport const GEOFENCES_PARTIAL_FETCH_COMPLETED = 'GEOFENCES_PARTIAL_FETCH_COMPLETED';\nexport const GEOFENCES_PARTIAL_FETCH_FAILED = 'GEOFENCES_PARTIAL_FETCH_FAILED';\n\nexport const GEOFENCE_ADD_STARTED = 'GEOFENCE_ADD_STARTED';\nexport const GEOFENCE_ADD_COMPLETED = 'GEOFENCE_ADD_COMPLETED';\nexport const GEOFENCE_ADD_FAILED = 'GEOFENCE_ADD_FAILED';\n\nexport const GEOFENCE_EDIT_STARTED = 'GEOFENCE_EDIT_STARTED';\nexport const GEOFENCE_EDIT_COMPLETED = 'GEOFENCE_EDIT_COMPLETED';\nexport const GEOFENCE_EDIT_FAILED = 'GEOFENCE_EDIT_FAILED';\n\nexport const GEOFENCE_REMOVE_STARTED = 'GEOFENCE_REMOVE_STARTED';\nexport const GEOFENCE_REMOVE_COMPLETED = 'GEOFENCE_REMOVE_COMPLETED';\nexport const GEOFENCE_REMOVE_FAILED = 'GEOFENCE_REMOVE_FAILED';\n\nexport const GEOFENCE_SELECTED = 'GEOFENCE_SELECTED';\nexport const GEOFENCES_ALL_SELECTED = 'GEOFENCES_ALL_SELECTED';\nexport const GEOFENCE_DESELECTED = 'GEOFENCE_DESELECTED';\nexport const GEOFENCES_ALL_DESELECTED = 'GEOFENCES_ALL_DESELECTED';\n\nexport const GEOFENCE_SHOW_IN_MAP = 'GEOFENCE_SHOW_IN_MAP';\nexport const GEOFENCES_ALL_SHOW_IN_MAP = 'GEOFENCES_ALL_SHOW_IN_MAP';\nexport const GEOFENCE_HIDE_IN_MAP = 'GEOFENCE_HIDE_IN_MAP';\nexport const GEOFENCES_ALL_HIDE_IN_MAP = 'GEOFENCES_ALL_HIDE_IN_MAP';\n\nexport const GEOFENCE_ASSIGN_UNIT_STARTED = 'GEOFENCE_ASSIGN_UNIT_STARTED';\nexport const GEOFENCE_ASSIGN_UNIT_COMPLETED = 'GEOFENCE_ASSIGN_UNIT_COMPLETED';\nexport const GEOFENCE_ASSIGN_UNIT_FAILED = 'GEOFENCE_ASSIGN_UNIT_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_STARTED = 'GEOFENCE_ASSIGNATION_REMOVE_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_COMPLETED = 'GEOFENCE_ASSIGNATION_REMOVE_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_FAILED = 'GEOFENCE_ASSIGNATION_REMOVE_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_COMPLETED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_FAILED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_COMPLETED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNIT_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_FAILED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNIT_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_EDIT_STARTED = 'GEOFENCE_ASSIGNATION_EDIT_STARTED';\nexport const GEOFENCE_ASSIGNATION_EDIT_COMPLETED = 'GEOFENCE_ASSIGNATION_EDIT_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_EDIT_FAILED = 'GEOFENCE_ASSIGNATION_EDIT_FAILED';\n\nexport interface ReduxGeofence {\n isSelected: boolean;\n isShowInMap: boolean;\n geofenceId: number;\n geofenceStatus: number;\n geofenceAddress: string;\n shape: string;\n privateCode: string;\n geofenceName: string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId?: number;\n subdivisionId?: number;\n vertexCount: number;\n color: string;\n radius: number;\n latitude: number;\n latitude2?: number;\n longitude: number;\n longitude2?: number;\n isParentGeofence?: boolean;\n isActivationGeofence: boolean;\n parentGeofenceId?: number;\n geofenceWktString: string;\n isConfirmed: boolean;\n isShownInMap: boolean;\n divisionName: string;\n subdivisionName: string;\n}\n\nexport interface Assignment extends ReduxGeofence, ReduxUnit {\n operatorName: string;\n notify: number;\n consoles: string;\n notificationEmails: string;\n}\n","export const ROUTES_EXECUTIONS_FETCH_STARTED = 'ROUTES_EXECUTIONS_FETCH_STARTED';\nexport const ROUTES_EXECUTIONS_FETCH_COMPLETED = 'ROUTES_EXECUTIONS_FETCH_COMPLETED';\nexport const ROUTES_EXECUTIONS_FETCH_FAILED = 'ROUTES_EXECUTIONS_FETCH_FAILED';\n\nexport const ROUTE_EXECUTION_EDIT_STARTED = 'ROUTE_EXECUTION_EDIT_STARTED';\nexport const ROUTE_EXECUTION_EDIT_COMPLETED = 'ROUTE_EXECUTION_EDIT_COMPLETED';\nexport const ROUTE_EXECUTION_EDIT_FAILED = 'ROUTE_EXECUTION_EDIT_FAILED';\n\nexport const ROUTES_EXECUTION_CANCEL_STARTED = 'ROUTES_EXECUTION_CANCEL_STARTED';\nexport const ROUTES_EXECUTION_CANCEL_COMPLETED = 'ROUTES_EXECUTION_CANCEL_COMPLETED';\nexport const ROUTES_EXECUTION_CANCEL_FAILED = 'ROUTES_EXECUTION_CANCEL_FAILED';\n\nexport const ROUTES_EXECUTION_FINALIZE_STARTED = 'ROUTES_EXECUTION_FINALIZE_STARTED';\nexport const ROUTES_EXECUTION_FINALIZE_COMPLETED = 'ROUTES_EXECUTION_FINALIZE_COMPLETED';\nexport const ROUTES_EXECUTION_FINALIZE_FAILED = 'ROUTES_EXECUTION_FINALIZE_FAILED';\n\nexport const ROUTES_EXECUTION_REMOVE_STARTED = 'ROUTES_EXECUTION_REMOVE_STARTED';\nexport const ROUTES_EXECUTION_REMOVE_COMPLETED = 'ROUTES_EXECUTION_REMOVE_COMPLETED';\nexport const ROUTES_EXECUTION_REMOVE_FAILED = 'ROUTES_EXECUTION_REMOVE_FAILED';\n\nexport const ROUTES_EXECUTION_COMPLETE_STARTED = 'ROUTES_EXECUTION_COMPLETE_STARTED';\nexport const ROUTES_EXECUTION_COMPLETE_COMPLETED = 'ROUTES_EXECUTION_COMPLETE_COMPLETED';\nexport const ROUTES_EXECUTION_COMPLETE_FAILED = 'ROUTES_EXECUTION_COMPLETE_FAILED';\n\nexport const ROUTES_EXECUTION_PAUSE_STARTED = 'ROUTES_EXECUTION_PAUSE_STARTED';\nexport const ROUTES_EXECUTION_PAUSE_COMPLETED = 'ROUTES_EXECUTION_PAUSE_COMPLETED';\nexport const ROUTES_EXECUTION_PAUSE_FAILED = 'ROUTES_EXECUTION_PAUSE_FAILED';\n\nexport const ROUTES_EXECUTION_START_STARTED = 'ROUTES_EXECUTION_START_STARTED';\nexport const ROUTES_EXECUTION_START_COMPLETED = 'ROUTES_EXECUTION_START_COMPLETED';\nexport const ROUTES_EXECUTION_START_FAILED = 'ROUTES_EXECUTION_START_FAILED';\n\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED = 'ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED';\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED =\n 'ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED';\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED = 'ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED';\n\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED = 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED';\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED =\n 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED';\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED = 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED';\n\nexport const ROUTES_EXECUTION_SHARE_STARTED = 'ROUTES_EXECUTION_SHARE_STARTED';\nexport const ROUTES_EXECUTION_SHARE_COMPLETED = 'ROUTES_EXECUTION_SHARE_COMPLETED';\nexport const ROUTES_EXECUTION_SHARE_FAILED = 'ROUTES_EXECUTION_SHARE_FAILED';\n\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_STARTED = 'ROUTES_EXECUTION_ASSIGN_UNIT_STARTED';\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED = 'ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED';\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_FAILED = 'ROUTES_EXECUTION_ASSIGN_UNIT_FAILED';\n\nexport interface RouteExecution {\n routeAssignmentId: number;\n routeId: number;\n routeName: string;\n distance: number;\n privateCode: null | string;\n sourceName: string;\n targetName: string;\n unitId: number;\n unitOrganizationId: number;\n organizationId: number;\n unitName: string;\n unitLocation: string;\n routeStatus: number;\n routeProgress: number;\n speed: number;\n odometer: number;\n gpsDate: string;\n auditDate: string;\n assignmentDate: string;\n finalizedDate: null | string;\n completionDate: null | string;\n cancelDate: null | string;\n stopDate: null | string;\n startDate: null | string;\n transitDate: null | string;\n cancelReason: null | string;\n distanceToCheckpoint: number;\n locationName: string;\n correlative: number;\n assignNotificationEmails: null | string;\n notificationEvents: null | string;\n globalNotificationEmails: null | string;\n globalNotificationFrec: string;\n useSharedLink: boolean;\n routeNotificationEmails: string;\n requiredStartAtOrigin: boolean;\n completionType: number;\n isSpecialCargo: boolean;\n customField1: null | string;\n customField2: null | string;\n customField3: null | string;\n customField4: null | string;\n customField5: null | string;\n customField6: null | string;\n customerId: number;\n customerName: string;\n onTimeStatus: number;\n speedStatus: number;\n stopStatus: boolean;\n driverId: null | number;\n driverName: null | string;\n driverPhoto: null | string;\n driverPhoneNumber: null | string;\n driverBloodType: null | string;\n driverLicenseNumber: null | string;\n driverLicenseType: null | string;\n driverLicenseExpireDate: null | string;\n driverUseGlasses: null | boolean | number;\n driverBloodSugarProblems: null | boolean | number;\n routeStatusLabel: string;\n routeStatusLabelInfo: string;\n isDeviceOpenLabel: string;\n speedLabel: number;\n routeProgressLabel: string;\n distanceToCheckpointLabel: string;\n distanceLabel: string;\n fuelConsumption: number;\n expectedPerformance: number;\n performanceOnRoute: number;\n distanceProgress: number;\n hasFuelPerformance: boolean | number;\n}\n","export const 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","export const LOCATIONS_FETCH_STARTED = 'LOCATIONS_FETCH_STARTED';\nexport const LOCATIONS_FETCH_COMPLETED = 'LOCATIONS_FETCH_COMPLETED';\nexport const LOCATIONS_FETCH_FAILED = 'LOCATIONS_FETCH_FAILED';\n\nexport const LOCATION_FETCH_STARTED = 'LOCATION_FETCH_STARTED';\nexport const LOCATION_FETCH_COMPLETED = 'LOCATION_FETCH_COMPLETED';\nexport const LOCATION_FETCH_FAILED = 'LOCATION_FETCH_FAILED';\n\nexport const LOCATIONS_PARTIAL_FETCH_STARTED = 'LOCATIONS_PARTIAL_FETCH_STARTED';\nexport const LOCATIONS_PARTIAL_FETCH_COMPLETED = 'LOCATIONS_PARTIAL_FETCH_COMPLETED';\nexport const LOCATIONS_PARTIAL_FETCH_FAILED = 'LOCATIONS_PARTIAL_FETCH_FAILED';\n\nexport const LOCATION_ADD_STARTED = 'LOCATION_ADD_STARTED';\nexport const LOCATION_ADD_COMPLETED = 'LOCATION_ADD_COMPLETED';\nexport const LOCATION_ADD_FAILED = 'LOCATION_ADD_FAILED';\n\nexport const LOCATION_EDIT_STARTED = 'LOCATION_EDIT_STARTED';\nexport const LOCATION_EDIT_COMPLETED = 'LOCATION_EDIT_COMPLETED';\nexport const LOCATION_EDIT_FAILED = 'LOCATION_EDIT_FAILED';\n\nexport const LOCATION_REMOVE_STARTED = 'LOCATION_REMOVE_STARTED';\nexport const LOCATION_REMOVE_COMPLETED = 'LOCATION_REMOVE_COMPLETED';\nexport const LOCATION_REMOVE_FAILED = 'LOCATION_REMOVE_FAILED';\n\nexport const LOCATIONS_IMPORT_STARTED = 'LOCATIONS_IMPORT_STARTED';\nexport const LOCATIONS_IMPORT_COMPLETED = 'LOCATIONS_IMPORT_COMPLETED';\nexport const LOCATIONS_IMPORT_FAILED = 'LOCATIONS_IMPORT_FAILED';\n\nexport const LOCATION_SELECTED = 'LOCATION_SELECTED';\nexport const LOCATIONS_ALL_SELECTED = 'LOCATIONS_ALL_SELECTED';\nexport const LOCATION_DESELECTED = 'LOCATION_DESELECTED';\nexport const LOCATIONS_ALL_DESELECTED = 'LOCATIONS_ALL_DESELECTED';\n\nexport const LOCATION_SHOW_IN_MAP = 'LOCATION_SHOW_IN_MAP';\nexport const LOCATIONS_ALL_SHOW_IN_MAP = 'LOCATIONS_ALL_SHOW_IN_MAP';\nexport const LOCATION_HIDE_IN_MAP = 'LOCATION_HIDE_IN_MAP';\nexport const LOCATIONS_ALL_HIDE_IN_MAP = 'LOCATIONS_ALL_HIDE_IN_MAP';\n\nexport const LOCATION_DATA_LIMIT_FOR_CLUSTERING = 1000;\nexport const LOCATION_DATA_LIMIT_FOR_SHOW_ON_MAP = 5000;\n\nexport interface NewReduxLocation {\n isSelected: boolean;\n isShownInMap: boolean;\n locationId: number;\n locationAddress: string;\n dispatchCompletionType: number | null;\n dispatchEmails: string;\n dispatchNotificationFreq: number;\n enableDispatch: boolean;\n icon: string;\n latitude: number;\n locationName: string;\n locationTypeId: number;\n longitude: number;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n customerId: number | null;\n officeId: number | null;\n privateCode: null | string;\n radius: number;\n locationClassId: number;\n locationClassName: string;\n locationClassIconName: string;\n locationClassDefaultColor: string | null;\n locationStatus: number;\n fullImageUrl: null | string;\n imageUrl: null | string;\n imageTypeId: number | null;\n imageCount: number;\n isConfirmed: boolean;\n}\n","export const MONITORING_USERS_FETCH_STARTED = 'MONITORING_USERS_FETCH_STARTED';\nexport const MONITORING_USERS_FETCH_COMPLETED = 'MONITORING_USERS_FETCH_COMPLETED';\nexport const MONITORING_USERS_FETCH_FAILED = 'MONITORING_USERS_FETCH_FAILED';\n\nexport const MONITORING_USERS_PARTIAL_FETCH_STARTED = 'MONITORING_USERS_PARTIAL_FETCH_STARTED';\nexport const MONITORING_USERS_PARTIAL_FETCH_COMPLETED = 'MONITORING_USERS_PARTIAL_FETCH_COMPLETED';\nexport const MONITORING_USERS_PARTIAL_FETCH_FAILED = 'MONITORING_USERS_PARTIAL_FETCH_FAILED';\n\nexport const MONITORING_USER_ADD_STARTED = 'MONITORING_USER_ADD_STARTED';\nexport const MONITORING_USER_ADD_COMPLETED = 'MONITORING_USER_ADD_COMPLETED';\nexport const MONITORING_USER_ADD_FAILED = 'MONITORING_USER_ADD_FAILED';\n\nexport const MONITORING_USER_EDIT_STARTED = 'MONITORING_USER_EDIT_STARTED';\nexport const MONITORING_USER_EDIT_COMPLETED = 'MONITORING_USER_EDIT_COMPLETED';\nexport const MONITORING_USER_EDIT_FAILED = 'MONITORING_USER_EDIT_FAILED';\n\nexport const MONITORING_USER_REMOVE_STARTED = 'MONITORING_USER_REMOVE_STARTED';\nexport const MONITORING_USER_REMOVE_COMPLETED = 'MONITORING_USER_REMOVE_COMPLETED';\nexport const MONITORING_USER_REMOVE_FAILED = 'MONITORING_USER_REMOVE_FAILED';\n\nexport const MONITORING_USER_FETCH_STARTED = 'MONITORING_USER_FETCH_STARTED';\nexport const MONITORING_USER_FETCH_COMPLETED = 'MONITORING_USER_FETCH_COMPLETED';\nexport const MONITORING_USER_FETCH_FAILED = 'MONITORING_USER_FETCH_FAILED';\n\nexport const MONITORING_USER_SELECTED = 'MONITORING_USER_SELECTED';\nexport const MONITORING_USERS_ALL_SELECTED = 'MONITORING_USERS_ALL_SELECTED';\nexport const MONITORING_USER_DESELECTED = 'MONITORING_USER_DESELECTED';\nexport const MONITORING_USERS_ALL_DESELECTED = 'MONITORING_USERS_ALL_DESELECTED';\n\nexport const MONITORING_USER_UPDATE_PASSWORD_STARTED = 'MONITORING_USER_UPDATE_PASSWORD_STARTED';\nexport const MONITORING_USER_UPDATE_PASSWORD_COMPLETED =\n 'MONITORING_USER_UPDATE_PASSWORD_COMPLETED';\nexport const MONITORING_USER_UPDATE_PASSWORD_FAILED = 'MONITORING_USER_UPDATE_PASSWORD_FAILED';\n\nexport const MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED =\n 'MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED';\nexport const MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED =\n 'MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED';\n\nexport const USERS_ASSIGN_SCHEDULE_STARTED = 'USERS_ASSIGN_SCHEDULE_STARTED';\nexport const USERS_ASSIGN_SCHEDULE_COMPLETED = 'USERS_ASSIGN_SCHEDULE_COMPLETED';\n\nexport const USERS_UNASSIGN_SCHEDULE_STARTED = 'USERS_UNASSIGN_SCHEDULE_STARTED';\nexport const USERS_UNASSIGN_SCHEDULE_COMPLETED = 'USERS_UNASSIGN_SCHEDULE_COMPLETED';\n\nexport const USERS_FILTER_LIMIT = 1000;\n\nexport interface MonitoringUser {\n isSelected: boolean;\n userId: number;\n userName: string;\n brandId?: number | null;\n imageName: null | string;\n userImageUrl: null | string;\n accessLevelId: number;\n accessLevelName: string;\n divisionId: number;\n divisionName: string;\n email: string;\n emailConfirmed: boolean;\n completeName: string;\n organizationId: number;\n organizationName: string;\n phoneNumber: null | string | number;\n subdivisionId: number;\n subdivisionName: string;\n operatorId: number;\n agentId: number | null;\n operatorName: string;\n groupId: number | string;\n utcZoneId: number;\n metricSystemId: number | null;\n currencyId: number | null;\n driverId: number | null;\n driverName: null | string;\n userStatus: number;\n lastLoginDate: string | null;\n enableLocationClustering: boolean | null;\n locationMapLabelAlwaysOn: boolean | null;\n activateUnitTrackMode: boolean | null;\n unitMapLabelAlwaysOn: boolean | null;\n useGoogleMaps: boolean | null;\n useBingMaps: boolean | null;\n useHereMaps: boolean | null;\n unitsLabelContent: null | string;\n roleId: number | null;\n homeScreenId: number | null;\n scheduleId: number | null;\n scheduleName: null | string;\n isConfirmed: boolean;\n zoomLevelToStartClustering?: number;\n countriesForGoogleSearch?: string;\n mapEntitiesFilterTab?: number | null;\n}\n\nexport interface AssignedUnit {\n unitId: number;\n unitName: string;\n privateCode?: string;\n}\n","export const DRIVERS_FETCH_STARTED = 'DRIVERS_FETCH_STARTED';\nexport const DRIVERS_FETCH_COMPLETED = 'DRIVERS_FETCH_COMPLETED';\nexport const DRIVERS_FETCH_FAILED = 'DRIVERS_FETCH_FAILED';\n\nexport const DRIVERS_PARTIAL_FETCH_STARTED = 'DRIVERS_PARTIAL_FETCH_STARTED';\nexport const DRIVERS_PARTIAL_FETCH_COMPLETED = 'DRIVERS_PARTIAL_FETCH_COMPLETED';\nexport const DRIVERS_PARTIAL_FETCH_FAILED = 'DRIVERS_PARTIAL_FETCH_FAILED';\n\nexport const DRIVER_ADD_STARTED = 'DRIVER_ADD_STARTED';\nexport const DRIVER_ADD_COMPLETED = 'DRIVER_ADD_COMPLETED';\nexport const DRIVER_ADD_FAILED = 'DRIVER_ADD_FAILED';\n\nexport const DRIVER_EDIT_STARTED = 'DRIVER_EDIT_STARTED';\nexport const DRIVER_EDIT_COMPLETED = 'DRIVER_EDIT_COMPLETED';\nexport const DRIVER_EDIT_FAILED = 'DRIVER_EDIT_FAILED';\n\nexport const DRIVER_REMOVE_STARTED = 'DRIVER_REMOVE_STARTED';\nexport const DRIVER_REMOVE_COMPLETED = 'DRIVER_REMOVE_COMPLETED';\nexport const DRIVER_REMOVE_FAILED = 'DRIVER_REMOVE_FAILED';\n\nexport const DRIVER_SELECTED = 'DRIVER_SELECTED';\nexport const DRIVERS_ALL_SELECTED = 'DRIVERS_ALL_SELECTED';\nexport const DRIVER_DESELECTED = 'DRIVER_DESELECTED';\nexport const DRIVERS_ALL_DESELECTED = 'DRIVERS_ALL_DESELECTED';\n\nexport const START_IMPORT_DRIVERS_UNITS_IMPORT = 'START_IMPORT_DRIVERS_UNITS_IMPORT';\nexport const COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT = 'COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT';\n\nexport const START_MASSIVE_DRIVERS_ASSIGNMENT = 'START_MASSIVE_DRIVERS_ASSIGNMENT';\nexport const COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT = 'COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT';\n\nexport const DRIVER_ASSIGN_SENSOR_STARTED = 'DRIVER_ASSIGN_SENSOR_STARTED';\nexport const DRIVER_ASSIGN_SENSOR_COMPLETED = 'DRIVER_ASSIGN_SENSOR_COMPLETED';\n\nexport const DRIVER_UNASSIGN_SENSOR_STARTED = 'DRIVER_UNASSIGN_SENSOR_STARTED';\nexport const DRIVER_UNASSIGN_SENSOR_COMPLETED = 'DRIVER_UNASSIGN_SENSOR_COMPLETED';\n\nexport interface Driver {\n isSelected: boolean;\n isShownInMap: boolean;\n driverId: number;\n driverName: string;\n driverPhotoUrl: string;\n driverPhoto: null | string;\n driverStatus: number;\n birthDate: string | null;\n identificationNumber: null | string;\n licenseExpireDate: string | null;\n privateCode: null | string;\n licenseType: null | string;\n licenseNumber: null | string;\n dallasKey: null | string;\n bloodType: null | string;\n phoneNumber: null | string;\n useGlasses: number | null;\n bloodSugarProblems: number | null;\n experience: null | string;\n gender: number | null;\n workDate: string | null;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n sensorId: null | number;\n sensorName: null | string;\n totalFiles: number;\n isConfirmed: boolean;\n}\n","export const SENSORS_FETCH_STARTED = 'SENSORS_FETCH_STARTED';\nexport const SENSORS_FETCH_COMPLETED = 'SENSORS_FETCH_COMPLETED';\nexport const SENSORS_FETCH_FAILED = 'SENSORS_FETCH_FAILED';\n\nexport const SENSORS_PARTIAL_FETCH_STARTED = 'SENSORS_PARTIAL_FETCH_STARTED';\nexport const SENSORS_PARTIAL_FETCH_COMPLETED = 'SENSORS_PARTIAL_FETCH_COMPLETED';\nexport const SENSORS_PARTIAL_FETCH_FAILED = 'SENSORS_PARTIAL_FETCH_FAILED';\n\nexport const SENSOR_FETCH_STARTED = 'SENSOR_FETCH_STARTED';\nexport const SENSOR_FETCH_COMPLETED = 'SENSOR_FETCH_COMPLETED';\nexport const SENSOR_FETCH_FAILED = 'SENSOR_FETCH_FAILED';\n\nexport const SENSOR_ADD_STARTED = 'SENSOR_ADD_STARTED';\nexport const SENSOR_ADD_COMPLETED = 'SENSOR_ADD_COMPLETED';\nexport const SENSOR_ADD_FAILED = 'SENSOR_ADD_FAILED';\n\nexport const SENSOR_EDIT_STARTED = 'SENSOR_EDIT_STARTED';\nexport const SENSOR_EDIT_COMPLETED = 'SENSOR_EDIT_COMPLETED';\nexport const SENSOR_EDIT_FAILED = 'SENSOR_EDIT_FAILED';\n\nexport const SENSOR_REMOVE_STARTED = 'SENSOR_REMOVE_STARTED';\nexport const SENSOR_REMOVE_COMPLETED = 'SENSOR_REMOVE_COMPLETED';\nexport const SENSOR_REMOVE_FAILED = 'SENSOR_REMOVE_FAILED';\n\nexport const SENSOR_SELECTED = 'SENSOR_SELECTED';\nexport const SENSORS_ALL_SELECTED = 'SENSORS_ALL_SELECTED';\nexport const SENSOR_DESELECTED = 'SENSOR_DESELECTED';\nexport const SENSORS_ALL_DESELECTED = 'SENSORS_ALL_DESELECTED';\n\nexport const IDENTIFIER_CHECK_STARTED = 'IDENTIFIER_CHECK_STARTED';\nexport const IDENTIFIER_CHECK_COMPLETED = 'IDENTIFIER_CHECK_COMPLETED';\nexport const IDENTIFIER_CHECK_FAILED = 'IDENTIFIER_CHECK_FAILED';\n\nexport const START_SENSOR_CALIBRATION_STARTED = 'START_SENSOR_CALIBRATION_STARTED';\nexport const START_SENSOR_CALIBRATION_COMPLETED = 'START_SENSOR_CALIBRATION_COMPLETED';\nexport const START_SENSOR_CALIBRATION_FAILED = 'START_SENSOR_CALIBRATION_FAILED';\n\nexport const FINALIZE_SENSOR_CALIBRATION_STARTED = 'FINALIZE_SENSOR_CALIBRATION_STARTED';\nexport const FINALIZE_SENSOR_CALIBRATION_COMPLETED = 'FINALIZE_SENSOR_CALIBRATION_COMPLETED';\nexport const FINALIZE_SENSOR_CALIBRATION_FAILED = 'FINALIZE_SENSOR_CALIBRATION_FAILED';\n","export const SCHEDULES_FETCH_STARTED = 'SCHEDULES_FETCH_STARTED';\nexport const SCHEDULES_FETCH_COMPLETED = 'SCHEDULES_FETCH_COMPLETED';\nexport const SCHEDULES_FETCH_FAILED = 'SCHEDULES_FETCH_FAILED';\n\nexport const SCHEDULES_PARTIAL_FETCH_STARTED = 'SCHEDULES_PARTIAL_FETCH_STARTED';\nexport const SCHEDULES_PARTIAL_FETCH_COMPLETED = 'SCHEDULES_PARTIAL_FETCH_COMPLETED';\nexport const SCHEDULES_PARTIAL_FETCH_FAILED = 'SCHEDULES_PARTIAL_FETCH_FAILED';\n\nexport const SCHEDULE_ADD_STARTED = 'SCHEDULE_ADD_STARTED';\nexport const SCHEDULE_ADD_COMPLETED = 'SCHEDULE_ADD_COMPLETED';\nexport const SCHEDULE_ADD_FAILED = 'SCHEDULE_ADD_FAILED';\n\nexport const SCHEDULE_SHIFT_ADD_STARTED = 'SCHEDULE_SHIFT_ADD_STARTED';\nexport const SCHEDULE_SHIFT_ADD_COMPLETED = 'SCHEDULE_SHIFT_ADD_COMPLETED';\nexport const SCHEDULE_SHIFT_ADD_FAILED = 'SCHEDULE_SHIFT_ADD_FAILED';\n\nexport const SCHEDULE_EDIT_STARTED = 'SCHEDULE_EDIT_STARTED';\nexport const SCHEDULE_EDIT_COMPLETED = 'SCHEDULE_EDIT_COMPLETED';\nexport const SCHEDULE_EDIT_FAILED = 'SCHEDULE_EDIT_FAILED';\n\nexport const SCHEDULE_SHIFT_EDIT_STARTED = 'SCHEDULE_SHIFT_EDIT_STARTED';\nexport const SCHEDULE_SHIFT_EDIT_COMPLETED = 'SCHEDULE_SHIFT_EDIT_COMPLETED';\nexport const SCHEDULE_SHIFT_EDIT_FAILED = 'SCHEDULE_SHIFT_EDIT_FAILED';\n\nexport const SCHEDULE_REMOVE_STARTED = 'SCHEDULE_REMOVE_STARTED';\nexport const SCHEDULE_REMOVE_COMPLETED = 'SCHEDULE_REMOVE_COMPLETED';\nexport const SCHEDULE_REMOVE_FAILED = 'SCHEDULE_REMOVE_FAILED';\n\nexport const SCHEDULE_SELECTED = 'SCHEDULE_SELECTED';\nexport const SCHEDULES_ALL_SELECTED = 'SCHEDULES_ALL_SELECTED';\nexport const SCHEDULE_DESELECTED = 'SCHEDULE_DESELECTED';\nexport const SCHEDULES_ALL_DESELECTED = 'SCHEDULES_ALL_DESELECTED';\n","export const ASSETS_FETCH_STARTED = 'ASSETS_FETCH_STARTED';\nexport const ASSETS_FETCH_COMPLETED = 'ASSETS_FETCH_COMPLETED';\nexport const ASSETS_FETCH_FAILED = 'ASSETS_FETCH_FAILED';\n\nexport const ASSETS_PARTIAL_FETCH_STARTED = 'ASSETS_PARTIAL_FETCH_STARTED';\nexport const ASSETS_PARTIAL_FETCH_COMPLETED = 'ASSETS_PARTIAL_FETCH_COMPLETED';\nexport const ASSETS_PARTIAL_FETCH_FAILED = 'ASSETS_PARTIAL_FETCH_FAILED';\n\nexport const ASSET_ADD_STARTED = 'ASSET_ADD_STARTED';\nexport const ASSET_ADD_COMPLETED = 'ASSET_ADD_COMPLETED';\nexport const ASSET_ADD_FAILED = 'ASSET_ADD_FAILED';\n\nexport const ASSET_EDIT_STARTED = 'ASSET_EDIT_STARTED';\nexport const ASSET_EDIT_COMPLETED = 'ASSET_EDIT_COMPLETED';\nexport const ASSET_EDIT_FAILED = 'ASSET_EDIT_FAILED';\n\nexport const ASSET_REMOVE_STARTED = 'ASSET_REMOVE_STARTED';\nexport const ASSET_REMOVE_COMPLETED = 'ASSET_REMOVE_COMPLETED';\nexport const ASSET_REMOVE_FAILED = 'ASSET_REMOVE_FAILED';\n\nexport const ASSET_SELECTED = 'ASSET_SELECTED';\nexport const ASSETS_ALL_SELECTED = 'ASSETS_ALL_SELECTED';\nexport const ASSET_DESELECTED = 'ASSET_DESELECTED';\nexport const ASSETS_ALL_DESELECTED = 'ASSETS_ALL_DESELECTED';\n\nexport const ASSET_IDENTIFIER_CHECK_STARTED = 'ASSET_IDENTIFIER_CHECK_STARTED';\nexport const ASSET_IDENTIFIER_CHECK_COMPLETED = 'ASSET_IDENTIFIER_CHECK_COMPLETED';\nexport const ASSET_IDENTIFIER_CHECK_FAILED = 'ASSET_IDENTIFIER_CHECK_FAILED';\n\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_STARTED = 'ASSET_SECURITY_SEAL_CODE_CHECK_STARTED';\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED = 'ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED';\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_FAILED = 'ASSET_SECURITY_SEAL_CODE_CHECK_FAILED';\n","export const MODULES_FETCH_STARTED = 'MODULES_FETCH_STARTED';\nexport const MODULES_FETCH_COMPLETED = 'MODULES_FETCH_COMPLETED';\nexport const MODULES_FETCH_FAILED = 'MODULES_FETCH_FAILED';\n\nexport const MODULES_PARTIAL_FETCH_STARTED = 'MODULES_PARTIAL_FETCH_STARTED';\nexport const MODULES_PARTIAL_FETCH_COMPLETED = 'MODULES_PARTIAL_FETCH_COMPLETED';\nexport const MODULES_PARTIAL_FETCH_FAILED = 'MODULES_PARTIAL_FETCH_FAILED';\n\nexport const MODULE_FETCH_STARTED = 'MODULE_FETCH_STARTED';\nexport const MODULE_FETCH_COMPLETED = 'MODULE_FETCH_COMPLETED';\nexport const MODULE_FETCH_FAILED = 'MODULE_FETCH_FAILED';\n\nexport const MODULE_ADD_STARTED = 'MODULE_ADD_STARTED';\nexport const MODULE_ADD_COMPLETED = 'MODULE_ADD_COMPLETED';\nexport const MODULE_ADD_FAILED = 'MODULE_ADD_FAILED';\n\nexport const MODULE_EDIT_STARTED = 'MODULE_EDIT_STARTED';\nexport const MODULE_EDIT_COMPLETED = 'MODULE_EDIT_COMPLETED';\nexport const MODULE_EDIT_FAILED = 'MODULE_EDIT_FAILED';\n\nexport const MODULE_REMOVE_STARTED = 'MODULE_REMOVE_STARTED';\nexport const MODULE_REMOVE_COMPLETED = 'MODULE_REMOVE_COMPLETED';\nexport const MODULE_REMOVE_FAILED = 'MODULE_REMOVE_FAILED';\n\nexport const MODULE_SELECTED = 'MODULE_SELECTED';\nexport const MODULES_ALL_SELECTED = 'MODULES_ALL_SELECTED';\nexport const MODULE_DESELECTED = 'MODULE_DESELECTED';\nexport const MODULES_ALL_DESELECTED = 'MODULES_ALL_DESELECTED';\n\nexport const MODULE_DIRTY = 'MODULE_DIRTY';\nexport const MODULE_UNDIRTY = 'MODULE_UNDIRTY';\n\nexport const MODULE_FILTER_LIMIT = 1000;\n\nexport interface Module {\n isSelected: boolean;\n deviceId: number;\n identifier: string;\n devicePublicId: string;\n serialNumber: null | string;\n imei: null | string;\n propertyTypeId: number;\n brandId: number;\n brandName: string;\n deviceModelId: number;\n deviceModelName: string;\n deviceConfigurationId: number;\n deviceConfigurationName: string;\n deviceStatus: number;\n locationStatus: number;\n operatorPublicId: string;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n divisionId: number | null;\n subdivisionId: number | null;\n unitId: number;\n unitPublicId: string;\n unitName: string;\n devicePassword: null | string;\n warrantyProviderTypeId: number;\n warrantyProviderId: number | null;\n warrantyProviderName: string | null;\n warrantyProviderOperatorId: number | null;\n warrantyProviderOrganizationId: number | null;\n warrantyProviderDivisionId: number | null;\n isConfirmed: boolean;\n locationStatusText?: string;\n locationStatusDescription?: string;\n deviceStatusText?: string;\n deviceStatusDescription?: string;\n propertyTypeText?: string;\n propertyTypeDescription?: string;\n warrantyProviderText?: string;\n warrantyProviderDescription?: string;\n}\n\nexport interface PartialModule extends Partial {}\n","export const OPERATORS_FETCH_STARTED = 'OPERATORS_FETCH_STARTED';\nexport const OPERATORS_FETCH_COMPLETED = 'OPERATORS_FETCH_COMPLETED';\nexport const OPERATORS_FETCH_FAILED = 'OPERATORS_FETCH_FAILED';\n\nexport const OPERATORS_PARTIAL_FETCH_STARTED = 'OPERATORS_PARTIAL_FETCH_STARTED';\nexport const OPERATORS_PARTIAL_FETCH_COMPLETED = 'OPERATORS_PARTIAL_FETCH_COMPLETED';\nexport const OPERATORS_PARTIAL_FETCH_FAILED = 'OPERATORS_PARTIAL_FETCH_FAILED';\n\nexport const OPERATOR_ADD_STARTED = 'OPERATOR_ADD_STARTED';\nexport const OPERATOR_ADD_COMPLETED = 'OPERATOR_ADD_COMPLETED';\nexport const OPERATOR_ADD_FAILED = 'OPERATOR_ADD_FAILED';\n\nexport const OPERATOR_EDIT_STARTED = 'OPERATOR_EDIT_STARTED';\nexport const OPERATOR_EDIT_COMPLETED = 'OPERATOR_EDIT_COMPLETED';\nexport const OPERATOR_EDIT_FAILED = 'OPERATOR_EDIT_FAILED';\n\nexport const OPERATOR_REMOVE_STARTED = 'OPERATOR_REMOVE_STARTED';\nexport const OPERATOR_REMOVE_COMPLETED = 'OPERATOR_REMOVE_COMPLETED';\nexport const OPERATOR_REMOVE_FAILED = 'OPERATOR_REMOVE_FAILED';\n\nexport const OPERATOR_SELECTED = 'OPERATOR_SELECTED';\nexport const OPERATOR_DESELECTED = 'OPERATOR_DESELECTED';\nexport const OPERATORS_ALL_SELECTED = 'OPERATORS_ALL_SELECTED';\nexport const OPERATORS_ALL_DESELECTED = 'OPERATORS_ALL_DESELECTED';\n\nexport const OPERATOR_EDIT_STANDARD_PRICES_STARTED = 'OPERATOR_EDIT_STANDARD_PRICES_STARTED';\nexport const OPERATOR_EDIT_STANDARD_PRICES_FAILED = 'OPERATOR_EDIT_STANDARD_PRICES_FAILED';\nexport const OPERATOR_EDIT_STANDARD_PRICES_COMPLETED = 'OPERATOR_EDIT_STANDARD_PRICES_COMPLETED';\n\nexport interface ReduxOperator {\n isSelected: boolean;\n operatorId: number;\n operatorName: string;\n operatorPhone: string;\n operatorAddress: string;\n comments?: string;\n contactName?: string;\n contactPhone?: string;\n taxNumber?: string;\n contractNumber?: number;\n operatorStatus: number;\n legalRepresentativeId?: number;\n legalRepresentativeName?: string;\n legalRepresentativeIdentification?: string;\n legalRepresentativeAge: number;\n legalRepresentativeNacionality?: string;\n legalRepresentativeAddress?: string;\n recordNumber?: number;\n recordSheet?: number;\n recordBook?: number;\n recordDate?: string;\n utcZoneId?: number;\n quotationValidity?: number;\n isConfirmed: boolean;\n}\n","export const SIMS_FETCH_STARTED = 'SIMS_FETCH_STARTED';\nexport const SIMS_FETCH_COMPLETED = 'SIMS_FETCH_COMPLETED';\nexport const SIMS_FETCH_FAILED = 'SIMS_FETCH_FAILED';\n\nexport const SIM_FETCH_STARTED = 'SIM_FETCH_STARTED';\nexport const SIM_FETCH_COMPLETED = 'SIM_FETCH_COMPLETED';\nexport const SIM_FETCH_FAILED = 'SIM_FETCH_FAILED';\n\nexport const SIMS_PARTIAL_FETCH_STARTED = 'SIMS_PARTIAL_FETCH_STARTED';\nexport const SIMS_PARTIAL_FETCH_COMPLETED = 'SIMS_PARTIAL_FETCH_COMPLETED';\nexport const SIMS_PARTIAL_FETCH_FAILED = 'SIMS_PARTIAL_FETCH_FAILED';\n\nexport const SIM_ADD_STARTED = 'SIM_ADD_STARTED';\nexport const SIM_ADD_COMPLETED = 'SIM_ADD_COMPLETED';\nexport const SIM_ADD_FAILED = 'SIM_ADD_FAILED';\n\nexport const SIM_EDIT_STARTED = 'SIM_EDIT_STARTED';\nexport const SIM_EDIT_COMPLETED = 'SIM_EDIT_COMPLETED';\nexport const SIM_EDIT_FAILED = 'SIM_EDIT_FAILED';\n\nexport const SIM_REMOVE_STARTED = 'SIM_REMOVE_STARTED';\nexport const SIM_REMOVE_COMPLETED = 'SIM_REMOVE_COMPLETED';\nexport const SIM_REMOVE_FAILED = 'SIM_REMOVE_FAILED';\n\nexport const SIM_SELECTED = 'SIM_SELECTED';\nexport const SIMS_ALL_SELECTED = 'SIMS_ALL_SELECTED';\nexport const SIM_DESELECTED = 'SIM_DESELECTED';\nexport const SIMS_ALL_DESELECTED = 'SIMS_ALL_DESELECTED';\n\nexport const SIMS_FILTER_LIMIT = 1000;\n\nexport interface SimCard {\n simCardId: number;\n cellularNumber: string;\n imsi: string;\n iccid: string;\n simCardStatus: number;\n simCardLocationStatus: number;\n mobileOperatorId: number;\n mobileOperatorName: string;\n countryId: number;\n countryName: string;\n warrantyProviderTypeId: number;\n warrantyProviderId: number;\n warrantyProviderPublicId: string;\n warrantyProviderName: string;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number;\n divisionName: string;\n subdivisionId: number;\n subdivisionName: string;\n unitId: number;\n unitName: string;\n warrantyOperatorId: number;\n warrantyOrganizationId: number;\n warrantyDivisionId: number;\n}\n","export const MAINTENANCE_LINES_FETCH_STARTED = 'MAINTENANCE_LINES_FETCH_STARTED';\nexport const MAINTENANCE_LINES_FETCH_COMPLETED = 'MAINTENANCE_LINES_FETCH_COMPLETED';\nexport const MAINTENANCE_LINES_FETCH_FAILED = 'MAINTENANCE_LINES_FETCH_FAILED';\n\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_STARTED = 'MAINTENANCE_LINES_PARTIAL_FETCH_STARTED';\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED =\n 'MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED';\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_FAILED = 'MAINTENANCE_LINES_PARTIAL_FETCH_FAILED';\n\nexport const MAINTENANCE_LINE_ADD_STARTED = 'MAINTENANCE_LINE_ADD_STARTED';\nexport const MAINTENANCE_LINE_ADD_COMPLETED = 'MAINTENANCE_LINE_ADD_COMPLETED';\nexport const MAINTENANCE_LINE_ADD_FAILED = 'MAINTENANCE_LINE_ADD_FAILED';\n\nexport const MAINTENANCE_LINE_EDIT_STARTED = 'MAINTENANCE_LINE_EDIT_STARTED';\nexport const MAINTENANCE_LINE_EDIT_COMPLETED = 'MAINTENANCE_LINE_EDIT_COMPLETED';\nexport const MAINTENANCE_LINE_EDIT_FAILED = 'MAINTENANCE_LINE_EDIT_FAILED';\n\nexport const MAINTENANCE_LINE_REMOVE_STARTED = 'MAINTENANCE_LINE_REMOVE_STARTED';\nexport const MAINTENANCE_LINE_REMOVE_COMPLETED = 'MAINTENANCE_LINE_REMOVE_COMPLETED';\nexport const MAINTENANCE_LINE_REMOVE_FAILED = 'MAINTENANCE_LINE_REMOVE_FAILED';\n\nexport const MAINTENANCE_LINE_COPY_STARTED = 'MAINTENANCE_LINE_COPY_STARTED';\nexport const MAINTENANCE_LINE_COPY_COMPLETED = 'MAINTENANCE_LINE_COPY_COMPLETED';\nexport const MAINTENANCE_LINE_COPY_FAILED = 'MAINTENANCE_LINE_COPY_FAILED';\n\nexport const MAINTENANCE_LINE_SELECTED = 'MAINTENANCE_LINE_SELECTED';\nexport const MAINTENANCE_LINES_ALL_SELECTED = 'MAINTENANCE_LINES_ALL_SELECTED';\nexport const MAINTENANCE_LINE_DESELECTED = 'MAINTENANCE_LINE_DESELECTED';\nexport const MAINTENANCE_LINES_ALL_DESELECTED = 'MAINTENANCE_LINES_ALL_DESELECTED';\n\nexport interface MaintenancePlans {\n isSelected: boolean;\n maintenanceLineId: number;\n maintenanceLineName: string;\n isCycle: boolean;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: null | string;\n subdivisionId: number | null;\n subdivisionName: null | string;\n maintenanceRangesByOdometer: null | string;\n maintenanceRangesByHourMeter: null | string;\n maintenanceLineStatus: number;\n maintenanceNoticeTypeId: number;\n isConfirmed: boolean;\n}\n\nexport enum MaintenanceNoticeTypes {\n Odometer = 1,\n Date = 2,\n HoursOfWork = 3,\n MaintenanceLinesByOdometer = 4,\n MaintenanceLinesByHourmeter = 5\n}\n","export const AGENTS_FETCH_STARTED = 'AGENTS_FETCH_STARTED';\nexport const AGENTS_FETCH_COMPLETED = 'AGENTS_FETCH_COMPLETED';\nexport const AGENTS_FETCH_FAILED = 'AGENTS_FETCH_FAILED';\n\nexport const AGENTS_PARTIAL_FETCH_STARTED = 'AGENTS_PARTIAL_FETCH_STARTED';\nexport const AGENTS_PARTIAL_FETCH_COMPLETED = 'AGENTS_PARTIAL_FETCH_COMPLETED';\nexport const AGENTS_PARTIAL_FETCH_FAILED = 'AGENTS_PARTIAL_FETCH_FAILED';\n\nexport const AGENT_FETCH_STARTED = 'AGENT_FETCH_STARTED';\nexport const AGENT_FETCH_COMPLETED = 'AGENT_FETCH_COMPLETED';\nexport const AGENT_FETCH_FAILED = 'AGENT_FETCH_FAILED';\n\nexport const AGENT_ADD_STARTED = 'AGENT_ADD_STARTED';\nexport const AGENT_ADD_COMPLETED = 'AGENT_ADD_COMPLETED';\nexport const AGENT_ADD_FAILED = 'AGENT_ADD_FAILED';\n\nexport const AGENT_EDIT_STARTED = 'AGENT_EDIT_STARTED';\nexport const AGENT_EDIT_COMPLETED = 'AGENT_EDIT_COMPLETED';\nexport const AGENT_EDIT_FAILED = 'AGENT_EDIT_FAILED';\n\nexport const AGENT_REMOVE_STARTED = 'AGENT_REMOVE_STARTED';\nexport const AGENT_REMOVE_COMPLETED = 'AGENT_REMOVE_COMPLETED';\nexport const AGENT_REMOVE_FAILED = 'AGENT_REMOVE_FAILED';\n\nexport const AGENT_SELECTED = 'AGENT_SELECTED';\nexport const AGENTS_ALL_SELECTED = 'AGENTS_ALL_SELECTED';\nexport const AGENT_DESELECTED = 'AGENT_DESELECTED';\nexport const AGENTS_ALL_DESELECTED = 'AGENTS_ALL_DESELECTED';\n","export const VEHICLES_FETCH_STARTED = 'VEHICLES_FETCH_STARTED';\nexport const VEHICLES_FETCH_COMPLETED = 'VEHICLES_FETCH_COMPLETED';\nexport const VEHICLES_FETCH_FAILED = 'VEHICLES_FETCH_FAILED';\n\nexport const VEHICLES_PARTIAL_FETCH_STARTED = 'VEHICLES_PARTIAL_FETCH_STARTED';\nexport const VEHICLES_PARTIAL_FETCH_COMPLETED = 'VEHICLES_PARTIAL_FETCH_COMPLETED';\nexport const VEHICLES_PARTIAL_FETCH_FAILED = 'VEHICLES_PARTIAL_FETCH_FAILED';\n\nexport const VEHICLE_ADD_STARTED = 'VEHICLE_ADD_STARTED';\nexport const VEHICLE_ADD_COMPLETED = 'VEHICLE_ADD_COMPLETED';\nexport const VEHICLE_ADD_FAILED = 'VEHICLE_ADD_FAILED';\n\nexport const VEHICLE_EDIT_STARTED = 'VEHICLE_EDIT_STARTED';\nexport const VEHICLE_EDIT_COMPLETED = 'VEHICLE_EDIT_COMPLETED';\nexport const VEHICLE_EDIT_FAILED = 'VEHICLE_EDIT_FAILED';\n\nexport const VEHICLE_REMOVE_STARTED = 'VEHICLE_REMOVE_STARTED';\nexport const VEHICLE_REMOVE_COMPLETED = 'VEHICLE_REMOVE_COMPLETED';\nexport const VEHICLE_REMOVE_FAILED = 'VEHICLE_REMOVE_FAILED';\n\nexport const VEHICLE_SELECTED = 'VEHICLE_SELECTED';\nexport const VEHICLES_ALL_SELECTED = 'VEHICLES_ALL_SELECTED';\nexport const VEHICLE_DESELECTED = 'VEHICLE_DESELECTED';\nexport const VEHICLES_ALL_DESELECTED = 'VEHICLES_ALL_DESELECTED';\n\nexport const VEHICLE_LICENSE_PLATE_CHECK_STARTED = 'VEHICLE_LICENSE_PLATE_CHECK_STARTED';\nexport const VEHICLE_LICENSE_PLATE_CHECK_COMPLETED = 'VEHICLE_LICENSE_PLATE_CHECK_COMPLETED';\nexport const VEHICLE_LICENSE_PLATE_CHECK_FAILED = 'VEHICLE_LICENSE_PLATE_CHECK_FAILED';\n","export const CUSTOMERS_FETCH_STARTED = 'CUSTOMERS_FETCH_STARTED';\nexport const CUSTOMERS_FETCH_COMPLETED = 'CUSTOMERS_FETCH_COMPLETED';\nexport const CUSTOMERS_FETCH_FAILED = 'CUSTOMERS_FETCH_FAILED';\n\nexport const CUSTOMERS_PARTIAL_FETCH_STARTED = 'CUSTOMERS_PARTIAL_FETCH_STARTED';\nexport const CUSTOMERS_PARTIAL_FETCH_COMPLETED = 'CUSTOMERS_PARTIAL_FETCH_COMPLETED';\nexport const CUSTOMERS_PARTIAL_FETCH_FAILED = 'CUSTOMERS_PARTIAL_FETCH_FAILED';\n\nexport const CUSTOMER_ADD_STARTED = 'CUSTOMER_ADD_STARTED';\nexport const CUSTOMER_ADD_COMPLETED = 'CUSTOMER_ADD_COMPLETED';\nexport const CUSTOMER_ADD_FAILED = 'CUSTOMER_ADD_FAILED';\n\nexport const CUSTOMER_EDIT_STARTED = 'CUSTOMER_EDIT_STARTED';\nexport const CUSTOMER_EDIT_COMPLETED = 'CUSTOMER_EDIT_COMPLETED';\nexport const CUSTOMER_EDIT_FAILED = 'CUSTOMER_EDIT_FAILED';\n\nexport const CUSTOMER_REMOVE_STARTED = 'CUSTOMER_REMOVE_STARTED';\nexport const CUSTOMER_REMOVE_COMPLETED = 'CUSTOMER_REMOVE_COMPLETED';\nexport const CUSTOMER_REMOVE_FAILED = 'CUSTOMER_REMOVE_FAILED';\n\nexport const CUSTOMER_SELECTED = 'CUSTOMER_SELECTED';\nexport const CUSTOMERS_ALL_SELECTED = 'CUSTOMERS_ALL_SELECTED';\nexport const CUSTOMER_DESELECTED = 'CUSTOMER_DESELECTED';\nexport const CUSTOMERS_ALL_DESELECTED = 'CUSTOMERS_ALL_DESELECTED';\n\nexport interface Customer {\n isSelected: boolean;\n customerId: number;\n customerName: string;\n businessName: null | string;\n taxId: null | string;\n privateCode: null | string;\n customerStatus: number;\n organizationId: number;\n organizationName: string;\n divisionId: null | number;\n divisionName: null | string;\n subdivisionId: null | number;\n subdivisionName: null | string;\n customerAddress: null | string;\n phone1: null | string;\n phone2: null | string;\n phone3: null | string;\n contactName1: null | string;\n contactName2: null | string;\n contactName3: null | string;\n comments: null | string;\n customerEmails: null | string;\n officeId: number;\n isConfirmed: boolean;\n}\n","import * as types from '../types';\n\nexport const startFetchingUnits = (filters = {}) => ({\n type: types.UNITS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingUnits = (entities, order, operatorId, organizationId) => ({\n type: types.UNITS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failFetchingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingUnit = (unitId) => ({\n type: types.UNIT_FETCH_STARTED,\n payload: unitId\n});\n\nexport const completeFetchingUnit = (unit, order) => ({\n type: types.UNIT_FETCH_COMPLETED,\n payload: {\n unit,\n order\n }\n});\n\nexport const failFetchingUnit = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingUnits = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.UNITS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingUnits = (entities, order, operatorId, organizationId) => ({\n type: types.UNITS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const addingUnitToState = (unit) => ({\n type: types.UNIT_ADD_TO_STATE,\n payload: unit\n});\n\nexport const startFetchingUnitsLiveStatus = () => ({\n type: types.UNITS_LIVE_STATUS_FETCH_STARTED,\n payload: {}\n});\n\nexport const completeFetchingUnitsLiveStatus = (entities, order, organizationId) => ({\n type: types.UNITS_LIVE_STATUS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n organizationId\n }\n});\n\nexport const failFetchingUnitsLiveStatus = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.UNITS_LIVE_STATUS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingUnitInformation = (unitId) => ({\n type: types.UNIT_INFORMATION_FETCH_STARTED,\n payload: { unitId }\n});\n\nexport const completeFetchingUnitInformation = (\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n) => ({\n type: types.UNIT_INFORMATION_FETCH_COMPLETED,\n payload: {\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n }\n});\n\nexport const failFetchingUnitInformation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.UNIT_INFORMATION_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingUnitPositions = (unitId, reportType, startDate, endDate, idleSpeed) => ({\n type: types.UNIT_POSITIONS_FETCH_STARTED,\n payload: { unitId, reportType, startDate, endDate, idleSpeed }\n});\n\nexport const completeFetchingUnitPositions = (\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n) => ({\n type: types.UNIT_POSITIONS_FETCH_COMPLETED,\n payload: {\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n }\n});\n\nexport const failFetchingUnitPositions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_POSITIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const resetIsFetchedUnitPosition = () => ({\n type: types.UNIT_POSITIONS_RESET_IS_FETCHED,\n payload: {}\n});\n\nexport const startFetchingUnitTrajectory = (unitId, limit = 50) => ({\n type: types.UNIT_TRAJECTORY_FETCH_STARTED,\n payload: { unitId, limit }\n});\n\nexport const completeFetchingUnitTrajectory = (\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n) => ({\n type: types.UNIT_TRAJECTORY_FETCH_COMPLETED,\n payload: {\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n }\n});\n\nexport const failFetchingUnitTrajectory = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.UNIT_TRAJECTORY_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const executeDeviceAction = (unitId, deviceActionId, parameters = null) => ({\n type: types.UNIT_EXECUTE_DEVICE_ACTION,\n payload: {\n unitId,\n deviceActionId,\n parameters\n }\n});\n\nexport const startAddingUnit = (unit) => ({\n type: types.UNIT_ADD_STARTED,\n payload: unit\n});\nexport const completeAddingUnit = (oldId, unit) => ({\n type: types.UNIT_ADD_COMPLETED,\n payload: { oldId, unit }\n});\nexport const failAddingUnit = (oldId, error) => ({\n type: types.UNIT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport type UpdateUnitDeviceRequest = { unitId: number; deviceId: number | null };\ntype UpdateUnitResponse = {\n unitId: number;\n deviceId: number | null;\n};\nexport const startUpdateDevice = (\n data: UpdateUnitDeviceRequest & { additionalOnSuccess?: (() => void) | undefined }\n) => ({\n type: types.UNIT_UPDATE_DEVICE_STARTED,\n payload: data\n});\nexport const completeUpdateDevice = (data: UpdateUnitResponse) => ({\n type: types.UNIT_UPDATE_DEVICE_COMPLETED,\n payload: data\n});\nexport const failUpdateDevice = (oldId: number, error: Error) => ({\n type: types.UNIT_UPDATE_DEVICE_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingUnit = (unit) => ({\n type: types.UNIT_EDIT_STARTED,\n payload: unit\n});\nexport const completeEditingUnit = (unit) => ({\n type: types.UNIT_EDIT_COMPLETED,\n payload: unit\n});\nexport const failEditingUnit = (oldUnit, error) => ({\n type: types.UNIT_EDIT_FAILED,\n payload: {\n oldUnit,\n error\n }\n});\n\nexport const startAcknowledgeUnitEvent = (unitId) => ({\n type: types.UNIT_ACKNOWLEDGE_STARTED,\n payload: { unitId }\n});\nexport const completeAcknowledgeUnitEvent = (unitId) => ({\n type: types.UNIT_ACKNOWLEDGE_COMPLETED,\n payload: { unitId }\n});\nexport const failAcknowledgeUnitEvent = (error) => ({\n type: types.UNIT_ACKNOWLEDGE_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAssigningDriverUnits = (units) => ({\n type: types.UNITS_ASSIGN_DRIVER_STARTED,\n payload: units\n});\nexport const completeAssigningDriverUnits = (units) => ({\n type: types.UNITS_ASSIGN_DRIVER_COMPLETED,\n payload: units\n});\n\nexport const startEndDowntimeUnit = (unitId) => ({\n type: types.UNIT_END_DOWNTIME_STARTED,\n payload: {\n unitId\n }\n});\nexport const completeEndDowntimeUnit = (unitId, mainStateId, mainStateDate) => ({\n type: types.UNIT_END_DOWNTIME_COMPLETED,\n payload: {\n unitId,\n mainStateId,\n mainStateDate\n }\n});\nexport const failEndDowntimeUnit = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_END_DOWNTIME_FAILED,\n payload: {\n error\n }\n});\n\nexport const startStartDowntimeUnit = (unitId, reasonId) => ({\n type: types.UNIT_START_DOWNTIME_STARTED,\n payload: {\n unitId,\n reasonId\n }\n});\nexport const completeStartDowntimeUnit = (unitId, reasonId, reasonDescription) => ({\n type: types.UNIT_START_DOWNTIME_COMPLETED,\n payload: {\n unitId,\n reasonId,\n reasonDescription\n }\n});\nexport const failStartDowntimeUnit = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_START_DOWNTIME_FAILED,\n payload: {\n error\n }\n});\n\nexport const startActivingUnits = (units) => ({\n type: types.UNITS_ACTIVE_STARTED,\n payload: units\n});\n\nexport const completeActivingUnits = (units) => ({\n type: types.UNITS_ACTIVE_COMPLETED,\n payload: units\n});\nexport const failActivingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_ACTIVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startRemovingUnit = (units, unitsName) => ({\n type: types.UNIT_REMOVE_STARTED,\n payload: {\n units,\n unitsName\n }\n});\nexport const completeRemovingUnit = (units, unitsName) => ({\n type: types.UNIT_REMOVE_COMPLETED,\n payload: {\n units,\n unitsName\n }\n});\nexport const failRemovingUnit = (units, error) => ({\n type: types.UNIT_REMOVE_FAILED,\n payload: {\n units,\n error\n }\n});\n\nexport const setDateRange = (unitId, dateRange) => ({\n type: types.SET_DATE_RANGE,\n payload: { unitId, dateRange }\n});\n\nexport const selectUnit = (unitId) => ({\n type: types.UNIT_SELECTED,\n payload: unitId\n});\n\nexport const selectAllUnits = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_SELECTED,\n payload: unitIds\n});\n\nexport const deselectUnit = (unitId) => ({\n type: types.UNIT_DESELECTED,\n payload: unitId\n});\n\nexport const deselectAllUnits = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_DESELECTED,\n payload: unitIds\n});\n\nexport const showUnitInMap = (unitId) => ({\n type: types.UNIT_SHOW_IN_MAP,\n payload: unitId\n});\n\nexport const showAllUnitsInMap = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_SHOW_IN_MAP,\n payload: unitIds\n});\n\nexport const hideUnitInMap = (unitId) => ({\n type: types.UNIT_HIDE_IN_MAP,\n payload: unitId\n});\n\nexport const hideAllUnitsInMap = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_HIDE_IN_MAP,\n payload: unitIds\n});\n\nexport const startCreatingShareLink = (unitId, unitName, emails, ttl) => ({\n type: types.UNIT_CREATE_SHARE_LINK_STARTED,\n payload: {\n unitId,\n unitName,\n emails,\n ttl\n }\n});\nexport const completeCreatingShareLink = (result) => ({\n type: types.UNIT_CREATE_SHARE_LINK_COMPLETED,\n payload: result\n});\nexport const failCreatingShareLink = (error) => ({\n type: types.UNIT_CREATE_SHARE_LINK_FAILED,\n payload: {\n error\n }\n});\n\nexport const clearSharedLink = () => ({\n type: types.UNIT_CLEAR_SHARE_LINK,\n payload: {}\n});\n\nexport const startUpdateSim = ({\n unitId,\n simCardId\n}: {\n unitId: number;\n simCardId: number | null;\n additionalOnSuccess?: () => void;\n}) => ({\n type: types.UNIT_UPDATE_SIM_STARTED,\n payload: { unitId, simCardId }\n});\n\nexport const failUpdateSim = (oldUnitId: number, error: string) => ({\n type: types.UNIT_UPDATE_SIM_FAILED,\n payload: { error }\n});\n\nexport const completeUpdateSim = (changes: Partial) => ({\n type: types.UNIT_UPDATE_SIM_COMPLETED,\n payload: { changes }\n});\n\nexport const startAddingFetchDate = () => ({\n type: types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED,\n payload: {}\n});\n\nexport const completeAddingFetchDate = (organizationId) => ({\n type: types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED,\n payload: {\n organizationId: organizationId\n }\n});\n\nexport const failAddingFetchDate = (error: string) => ({\n type: types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_STARTED,\n payload: { error }\n});\n","export const SERVICECLASSES_FETCH_STARTED = 'SERVICECLASSES_FETCH_STARTED';\nexport const SERVICECLASSES_FETCH_COMPLETED = 'SERVICECLASSES_FETCH_COMPLETED';\nexport const SERVICECLASSES_FETCH_FAILED = 'SERVICECLASSES_FETCH_FAILED';\n\nexport const SERVICECLASSES_PARTIAL_FETCH_STARTED = 'SERVICECLASSES_PARTIAL_FETCH_STARTED';\nexport const SERVICECLASSES_PARTIAL_FETCH_COMPLETED = 'SERVICECLASSES_PARTIAL_FETCH_COMPLETED';\nexport const SERVICECLASSES_PARTIAL_FETCH_FAILED = 'SERVICECLASSES_PARTIAL_FETCH_FAILED';\n\nexport const SERVICECLASS_FETCH_STARTED = 'SERVICECLASS_FETCH_STARTED';\nexport const SERVICECLASS_FETCH_COMPLETED = 'SERVICECLASS_FETCH_COMPLETED';\nexport const SERVICECLASS_FETCH_FAILED = 'SERVICECLASS_FETCH_FAILED';\n\nexport const SERVICECLASS_ADD_STARTED = 'SERVICECLASS_ADD_STARTED';\nexport const SERVICECLASS_ADD_COMPLETED = 'SERVICECLASS_ADD_COMPLETED';\nexport const SERVICECLASS_ADD_FAILED = 'SERVICECLASS_ADD_FAILED';\n\nexport const SERVICECLASS_EDIT_STARTED = 'SERVICECLASS_EDIT_STARTED';\nexport const SERVICECLASS_EDIT_COMPLETED = 'SERVICECLASS_EDIT_COMPLETED';\nexport const SERVICECLASS_EDIT_FAILED = 'SERVICECLASS_EDIT_FAILED';\n\nexport const SERVICECLASS_REMOVE_STARTED = 'SERVICECLASS_REMOVE_STARTED';\nexport const SERVICECLASS_REMOVE_COMPLETED = 'SERVICECLASS_REMOVE_COMPLETED';\nexport const SERVICECLASS_REMOVE_FAILED = 'SERVICECLASS_REMOVE_FAILED';\n\nexport const SERVICECLASS_SELECTED = 'SERVICECLASS_SELECTED';\nexport const SERVICECLASSES_ALL_SELECTED = 'SERVICECLASSES_ALL_SELECTED';\nexport const SERVICECLASS_DESELECTED = 'SERVICECLASS_DESELECTED';\nexport const SERVICECLASSES_ALL_DESELECTED = 'SERVICECLASSES_ALL_DESELECTED';\n","//filtrar data de vehiculos por performanceStatus segun rango seleccionado por del usuario\nimport { useMemo } from 'react';\nimport camelcaseKeys from \"camelcase-keys\";\nimport moment from \"moment\"\nimport { all } from \"redux-saga/effects\"\nimport { isNullOrUndefined } from \"utility/Utils\"\n\nexport const performanceColors = ['#FF4757', '#ffa437', '#2ED573', '#1E90FF', '#7d39f6'];\n\nconst vehiclePerformanceTitle = {\n Deficient : 'common.deficient',\n Regular : 'common.regular',\n Efficient : 'common.efficient',\n Top : 'common.top'\n}\n\n/**\n * Get translated title based on performance status\n * @param {number} status\n * @param {[number, number, number, number]} rangePerformance \n * @returns {string | null} Translated title\n */\nexport const getPerformanceTitle = (status, rangePerformance) => {\n const performanceStatus = Math.round(status)\n\n const isDeficient = performanceStatus <= rangePerformance[1] - 1;\n const isRegular = performanceStatus >= rangePerformance[1] && performanceStatus <= rangePerformance[2] - 1;\n const isEfficient = performanceStatus >= rangePerformance[2] && performanceStatus <= rangePerformance[3];\n const isTop = performanceStatus > rangePerformance[3] && performanceStatus < 200;\n\n let vehiclePerformance = null;\n\n if (isTop) {\n vehiclePerformance = vehiclePerformanceTitle.Top;\n } else if (isEfficient) {\n vehiclePerformance = vehiclePerformanceTitle.Efficient;\n } else if (isRegular) {\n vehiclePerformance = vehiclePerformanceTitle.Regular;\n } else if (isDeficient) {\n vehiclePerformance = vehiclePerformanceTitle.Deficient;\n }\n\n return vehiclePerformance;\n}\n\n/**\n * Get color based on performance status\n * @param {number} status \n * @param {number | undefined} expectedPerformance \n * @param {number[]} rangePerformance \n * @returns {string} Hex color\n */\nexport const getPerformanceColor = (status, expectedPerformance, rangePerformance = [0, 80, 90, 110, 200]) => {\n // Ensure that rangePerformance has at least 5 elements\n if (rangePerformance.length < 5) {\n console.error(\"Invalid rangePerformance array: must have at least 5 elements.\");\n return performanceColors[0]; // Default color if rangePerformance is invalid\n }\n\n const performanceStatus = Math.round(status);\n\n // Check the range and return the corresponding color\n if (!performanceStatus || performanceStatus < rangePerformance[1]) {\n return performanceColors[0];\n } else if (performanceStatus >= rangePerformance[1] && performanceStatus < rangePerformance[2]) {\n return performanceColors[1];\n } else if (performanceStatus >= rangePerformance[2] && performanceStatus < rangePerformance[3]) {\n return performanceColors[2];\n } else if (performanceStatus >= rangePerformance[3] && performanceStatus < rangePerformance[4]) {\n return performanceColors[3];\n } else {\n return performanceColors[4];\n }\n};\n\n\nconst getAllFilteredData = (byVehicles,ranges = [0,79,80,89,90,110]) =>{\n \n\n const unitsWithRecentData = byVehicles.filter(v => {\n\n console.log('vehicle',v)\n\n const diff = moment().diff(v.systemDate, 'days');\n const hasRecentData = diff <= 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n const hasPerformance = (parseFloat(v.expectedfuelEconomyByVehicles) > 0 &&\n (parseFloat(v.travel) >= parseFloat(v.expectedfuelEconomyByVehicles) && \n parseFloat(v.travel) >= (parseFloat(v.expectedfuelEconomyByVehicles) * parseFloat(v.loadThreshold)) && \n parseFloat(v.consumption) > 1) || v.historicalFuelEconomy > 0)\n \n return hasRecentData && hasNoDowntimeReasonId && hasPerformance;\n });\n\n const unitsWithoutRecentData = byVehicles.filter(v => {\n const diff = moment().diff(v.systemDate, 'days');\n const hasNoRecentData = diff > 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n\n return (hasNoRecentData && hasNoDowntimeReasonId) || isNullOrUndefined(v.gpsDate);\n });\n\n const unitsWithoutPerformance = byVehicles.filter(v => {\n const diff = moment().diff(v.systemDate, 'days');\n const hasRecentData = diff <= 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n const hasNoPerformance = parseFloat(v.expectedfuelEconomyByVehicles) <= 0 || parseFloat(v.travel) < parseFloat(v.expectedfuelEconomyByVehicles) || parseFloat(v.consumption) < 1\n \n return hasRecentData && hasNoDowntimeReasonId && (hasNoPerformance && v.historicalFuelEconomy <= 0);\n });\n\n \n\n const dowtimeUnits = byVehicles.filter((u)=>u.downTimeReasonId)\n\n\n\n\n\n //0,80,90,110,200\n const allFilters = {\n unitsWithDischarges: filterTelemetryData(0.1, 0, unitsWithRecentData, 'unloaded'),\n unitsWithoutDischarges: filterTelemetryData(0, 0, unitsWithRecentData, 'unloaded'),\n poorPerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 0), // Deficiente\n regularPerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 1), // Regular\n goodPerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 2), // Eficiente\n overPerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 3 || v.performanceStatusNew === 4), // Superior y Excesivo\n excessivePerformance: unitsWithRecentData.filter(v => v.performanceStatusNew === 4), // Excesivo\n unitsWithRecentData:unitsWithRecentData,\n unitsWithoutRecentData:unitsWithoutRecentData,\n dowtimeUnits: dowtimeUnits,\n unitsWithoutPerformance: unitsWithoutPerformance\n }\n\n return {...allFilters,goodUnitsPercent: (allFilters.goodPerformance.length * 100) / unitsWithRecentData.length}\n}\n\n\n/* \nmin: 0 max:0 condition: property=== \"0.00\"\nmin: 80 max:0 condition: property >= min\nmin: 10 max:50 condition: property <= max && property >= min\n*/\nconst filterTelemetryData = (min = 0, max = 0, vehiclesData, property = 'performanceStatus') => {\nif(min === 0 && max === 0) {\n const filtered = vehiclesData.filter((v) => v[property] === \"0.00\");\n \n return filtered\n}else{\n const filtered = max !== 0 \n ? vehiclesData.filter((v) => v.[property] <= max && v[property] >= min) \n : vehiclesData.filter((v) => v[property] >= min);\n return filtered;\n}\n};\n\nconst dec2bin = (dec) => {\n var binary = '';\n while (dec > 0) {\n binary = (dec % 2) + binary;\n dec = Math.floor(dec / 2);\n }\n while (binary.length < 32) {\n binary = '0' + binary;\n }\n return binary;\n }\n\n\n const reverseBinary = (binary) => {\n var reversedBinary = '';\n for (var i = binary.length - 1; i >= 0; i--) {\n reversedBinary += binary[i];\n }\n return reversedBinary;\n };\n\n\n const dec2binReverse = (dec) => {\n const binary = dec2bin(dec);\n return reverseBinary(binary);\n };\n\n const searchUseMetric = (metricsMask, bitNumber)=>{\n\n return (metricsMask & (2 ** bitNumber)) == 2 ** bitNumber\n\n }\n\nconst Metrics = {\n ACCState: {\n MetricId: 1,\n MetricName: \"ACCState\",\n BitNumber: 0,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 1\n },\n ACCX: {\n MetricId: 2,\n MetricName: \"ACCX\",\n BitNumber: 1,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ACCY: {\n MetricId: 3,\n MetricName: \"ACCY\",\n BitNumber: 2,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ACCZ: {\n MetricId: 4,\n MetricName: \"ACCZ\",\n BitNumber: 3,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AD1: {\n MetricId: 5,\n MetricName: \"AD1\",\n BitNumber: 4,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AD2: {\n MetricId: 6,\n MetricName: \"AD2\",\n BitNumber: 5,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AppVersion: {\n MetricId: 7,\n MetricName: \"AppVersion\",\n BitNumber: 6,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 1,\n OrderNumber: 10\n },\n BackupBattery: {\n MetricId: 8,\n MetricName: \"BackupBattery\",\n BitNumber: 7,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 5\n },\n Battery: {\n MetricId: 9,\n MetricName: \"Battery\",\n BitNumber: 8,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 1,\n OrderNumber: 2\n },\n CellNumber: {\n MetricId: 10,\n MetricName: \"CellNumber\",\n BitNumber: 9,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 15\n },\n CoverTamperState: {\n MetricId: 11,\n MetricName: \"CoverTamperState\",\n BitNumber: 10,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 7\n },\n DoorState: {\n MetricId: 12,\n MetricName: \"DoorState\",\n BitNumber: 11,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 6\n },\n FirmwareVersion: {\n MetricId: 13,\n MetricName: \"FirmwareVersion\",\n BitNumber: 12,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n GSMSignalLevel: {\n MetricId: 14,\n MetricName: \"GSMSignalLevel\",\n BitNumber: 13,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n HardwareVersion: {\n MetricId: 15,\n MetricName: \"HardwareVersion\",\n BitNumber: 14,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ICCID: {\n MetricId: 16,\n MetricName: \"ICCID\",\n BitNumber: 15,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 18\n },\n IsCharging: {\n MetricId: 17,\n MetricName: \"IsCharging\",\n BitNumber: 16,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 3\n },\n MainVoltage: {\n MetricId: 18,\n MetricName: \"MainVoltage\",\n BitNumber: 17,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 4\n },\n MCC: {\n MetricId: 19,\n MetricName: \"MCC\",\n BitNumber: 18,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 13\n },\n MNC: {\n MetricId: 20,\n MetricName: \"MNC\",\n BitNumber: 19,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 14\n },\n OverSpeedState: {\n MetricId: 21,\n MetricName: \"OverSpeedState\",\n BitNumber: 20,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n PadlockAuthorizationType: {\n MetricId: 22,\n MetricName: \"PadlockAuthorizationType\",\n BitNumber: 21,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 8\n },\n PadlockState: {\n MetricId: 23,\n MetricName: \"PadlockState\",\n BitNumber: 22,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 9\n },\n PLMN: {\n MetricId: 24,\n MetricName: \"PLMN\",\n BitNumber: 23,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 12\n },\n Satellites: {\n MetricId: 25,\n MetricName: \"Satellites\",\n BitNumber: 24,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 11\n },\n ShockSensorState: {\n MetricId: 26,\n MetricName: \"ShockSensorState\",\n BitNumber: 25,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n TrailerID: {\n MetricId: 27,\n MetricName: \"TrailerID\",\n BitNumber: 26,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 17\n },\n DriverId: {\n MetricId: 28,\n MetricName: \"DriverId\",\n BitNumber: 27,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 16\n },\n SolarVoltage: {\n MetricId: 30,\n MetricName: \"SolarVoltage\",\n BitNumber: 28,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 20\n },\n \n };\n\n\n const getSummaryDataForDynamicTable = (performanceSummary,intl)=>{\n\n\n if (performanceSummary?.length > 0) {\n const statuses = ['efficient', 'top', 'regular', 'deficient'];\n\n // Initialize an object to store the results\n const result = {};\n\n // Iterate through the data\n performanceSummary?.forEach((row) => {\n const weekNumber = row.weekNumber;\n // Iterate through the statuses\n statuses.forEach((status) => {\n const statusLowerCase = status.toLowerCase();\n // Create or update the status object\n if (!result[statusLowerCase]) {\n result[statusLowerCase] = {};\n }\n // Creamos un nuevo campo con el total del estado en la semana de la iteracion\n result[statusLowerCase][`totalWeek${weekNumber}`] = `${row[statusLowerCase]} - ${(\n (row[statusLowerCase] / row.total) *\n 100\n ).toFixed(0)} %`;\n });\n });\n\n // Convert the result object to an array of objects\n const newConsolidatedInfo = Object.keys(result).map((status) => ({\n status: intl.formatMessage({ id: `common.${status}` }),\n ...result[status]\n }));\n\n\n return newConsolidatedInfo\n } \n\n return []\n\n }\n\n\n\n\n\n function useCombinedFuelHistory(data, samples, fuelEvents, sensors, selectedSensor) {\n const combinedData = useMemo(() => {\n return data?.fuelHistory?.map((result) => {\n const resultFinal = camelcaseKeys(result);\n const match = fuelEvents.find(\n (event) => event.unitPositionLogId === resultFinal.unitPositionLogId\n );\n const isSensorValid =\n sensors?.length === 1 ||\n (match !== undefined && selectedSensor?.sensorId === 0 && sensors?.length > 0);\n \n if (isSensorValid) {\n const sampleMatch = samples?.fuelSamples?.find(\n (sample) =>\n sample.unitPositionLogId === resultFinal.unitPositionLogId &&\n resultFinal.eventId !== 332 &&\n resultFinal.eventId !== 331\n );\n return {\n ...resultFinal,\n ...(match || sampleMatch)\n };\n }\n \n return resultFinal;\n });\n }, [data, samples, fuelEvents, sensors, selectedSensor]);\n \n return combinedData;\n }\n \n \n\nexport { filterTelemetryData,getAllFilteredData,Metrics,dec2binReverse,searchUseMetric,getSummaryDataForDynamicTable,useCombinedFuelHistory };\n","export const 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 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","export * from './time-zones';\nexport * from './currencies';\nexport * from './countries';\nexport * from './vehicle-makers';\nexport * from './vehicle-models';\nexport * from './insurance-companies';\nexport * from './insurance-agents';\nexport * from './sensor-brands';\nexport * from './sensor-models';\nexport * from './sensor-measures';\nexport * from './payment-methods';\nexport * from './location-classes';\n","export const NOTICES_BY_DATE_FETCH_STARTED = 'NOTICES_BY_DATE_FETCH_STARTED';\nexport const NOTICES_BY_DATE_FETCH_COMPLETED = 'NOTICES_BY_DATE_FETCH_COMPLETED';\nexport const NOTICES_BY_DATE_FETCH_FAILED = 'NOTICES_BY_DATE_FETCH_FAILED';\n\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_STARTED = 'NOTICES_BY_DATE_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED = 'NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_FAILED = 'NOTICES_BY_DATE_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_DATE_ADD_STARTED = 'NOTICE_BY_DATE_ADD_STARTED';\nexport const NOTICE_BY_DATE_ADD_COMPLETED = 'NOTICE_BY_DATE_ADD_COMPLETED';\nexport const NOTICE_BY_DATE_ADD_FAILED = 'NOTICE_BY_DATE_ADD_FAILED';\n\nexport const NOTICE_BY_DATE_EDIT_STARTED = 'NOTICE_BY_DATE_EDIT_STARTED';\nexport const NOTICE_BY_DATE_EDIT_COMPLETED = 'NOTICE_BY_DATE_EDIT_COMPLETED';\nexport const NOTICE_BY_DATE_EDIT_FAILED = 'NOTICE_BY_DATE_EDIT_FAILED';\n\nexport const NOTICE_BY_DATE_RENEW_STARTED = 'NOTICE_BY_DATE_RENEW_STARTED';\nexport const NOTICE_BY_DATE_RENEW_COMPLETED = 'NOTICE_BY_DATE_RENEW_COMPLETED';\nexport const NOTICE_BY_DATE_RENEW_FAILED = 'NOTICE_BY_DATE_RENEW_FAILED';\n\nexport const NOTICE_BY_DATE_REMOVE_STARTED = 'NOTICE_BY_DATE_REMOVE_STARTED';\nexport const NOTICE_BY_DATE_REMOVE_COMPLETED = 'NOTICE_BY_DATE_REMOVE_COMPLETED';\nexport const NOTICE_BY_DATE_REMOVE_FAILED = 'NOTICE_BY_DATE_REMOVE_FAILED';\n","export const NOTICES_BY_HOURMETER_FETCH_STARTED = 'NOTICES_BY_HOURMETER_FETCH_STARTED';\nexport const NOTICES_BY_HOURMETER_FETCH_COMPLETED = 'NOTICES_BY_HOURMETER_FETCH_COMPLETED';\nexport const NOTICES_BY_HOURMETER_FETCH_FAILED = 'NOTICES_BY_HOURMETER_FETCH_FAILED';\n\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_HOURMETER_ADD_STARTED = 'NOTICE_BY_HOURMETER_ADD_STARTED';\nexport const NOTICE_BY_HOURMETER_ADD_COMPLETED = 'NOTICE_BY_HOURMETER_ADD_COMPLETED';\nexport const NOTICE_BY_HOURMETER_ADD_FAILED = 'NOTICE_BY_HOURMETER_ADD_FAILED';\n\nexport const NOTICE_BY_HOURMETER_EDIT_STARTED = 'NOTICE_BY_HOURMETER_EDIT_STARTED';\nexport const NOTICE_BY_HOURMETER_EDIT_COMPLETED = 'NOTICE_BY_HOURMETER_EDIT_COMPLETED';\nexport const NOTICE_BY_HOURMETER_EDIT_FAILED = 'NOTICE_BY_HOURMETER_EDIT_FAILED';\n\nexport const NOTICE_BY_HOURMETER_RENEW_STARTED = 'NOTICE_BY_HOURMETER_RENEW_STARTED';\nexport const NOTICE_BY_HOURMETER_RENEW_COMPLETED = 'NOTICE_BY_HOURMETER_RENEW_COMPLETED';\nexport const NOTICE_BY_HOURMETER_RENEW_FAILED = 'NOTICE_BY_HOURMETER_RENEW_FAILED';\n\nexport const NOTICE_BY_HOURMETER_REMOVE_STARTED = 'NOTICE_BY_HOURMETER_REMOVE_STARTED';\nexport const NOTICE_BY_HOURMETER_REMOVE_COMPLETED = 'NOTICE_BY_HOURMETER_REMOVE_COMPLETED';\nexport const NOTICE_BY_HOURMETER_REMOVE_FAILED = 'NOTICE_BY_HOURMETER_REMOVE_FAILED';\n","export interface Redirect {\n push: (path: string) => void;\n path?: string;\n}\n\nexport interface WithRedirectMeta {\n redirectMeta: Redirect;\n}\n\nexport interface WithCallback {\n action: Function;\n}\n\nexport interface TableRow {\n rowId: string;\n name: string;\n}\nexport interface Question {\n questionId: string;\n name: string;\n type: number;\n isRequired: boolean;\n isPrivate: boolean;\n isCollapsed: boolean;\n answers?: any[];\n}\nexport interface Section {\n sectionId: string;\n name: string;\n questions: Question[];\n rows: TableRow[];\n type: number;\n useDropDownRows: boolean;\n isCollapsed: boolean;\n}\n\nexport interface Form {\n formId?: number;\n name?: string;\n description?: string;\n sections: Section[];\n}\n\nexport interface MovableTypes {\n sourceId: String;\n sourceIndex: number;\n destinationId: String;\n destinationIndex: number;\n type: String;\n draggableId: String;\n source: any;\n destination: any;\n}\n\n/**\n * @description\n * This interface is used to define the properties of the columns of the table\n * Used types in order to dynamically type depending on the values\n * @example\n * if the header text is defined, the static text should not be defined\n */\nexport type TableColumn =\n | ({\n fieldName?: string;\n type?: 'dateTime' | 'number' | 'string' | 'boolean' | undefined;\n editType?: 'numericedit' | 'booleanedit' | 'datetimeedit' | 'stringedit' | undefined;\n headerTemplate?: string;\n allowEditing?: boolean;\n formatColumn?: string | undefined;\n metric?: string;\n customKey?: string;\n textAlign?: string;\n hide?: boolean;\n template?: (d: any) => JSX.Element | string;\n columns?: TableColumn[];\n edit?: any;\n editTemplate?: (params: any) => JSX.Element;\n maxWidth?: number;\n } & ( // header text or static text\n | {\n headerText?: string;\n }\n | {\n staticText?: string;\n }\n ) & // if tooltip is false must define a tooltip column\n (\n | {\n hasTooltip?: false;\n tooltipColumn?: never;\n }\n | {\n hasTooltip: true;\n tooltipColumn: string;\n }\n ))\n | undefined;\n\n// number: VALUE\nexport interface NDict {\n [key: number]: T;\n}\n\n// string: VALUE\nexport interface SDict {\n [key: string]: T;\n}\n\nexport type Dict = NDict | SDict;\n\nexport type NDictionary = { [key: number]: T };\nexport type SDictionary = { [key: string]: T };\nexport type Dictionary = NDictionary | SDictionary;\n\nexport interface AuthUser {\n username: string;\n permissions: string;\n authUserId: string;\n accessLevelId: string;\n rotateUnitMarkers: string;\n completeName: string;\n subdivisionId: string;\n subdivisionName: string;\n divisionId: string;\n divisionName: string;\n organizationId: string;\n organizationName: string;\n agentId: string;\n agentName: string;\n operatorId: string;\n operatorName: string;\n email: string;\n homeLatitude: string;\n homeLayer: string;\n homeLongitude: string;\n homeZoom: string;\n homeScreenId: string;\n currencyId: string;\n loadUnitsOnMap: string;\n loadGeofencesOnMap: string;\n activateUnitTrackMode: string;\n unitMapLabelAlwaysOn: string;\n locationMapLabelAlwaysOn: string;\n enableLocationClustering: string;\n useBingMaps: string;\n useHereMaps: string;\n useGoogleMaps: string;\n useMapquestMaps: string;\n metricSystemId: string;\n distanceSystem: string;\n capacitySystem: string;\n temperatureSystem: string;\n distance2System: string;\n speedSystem: string;\n fuelSystem: string;\n fuel2System: string;\n volumeSystem: string;\n utcZoneId: string;\n zoneName: string;\n utcOffset: string;\n bingMapsApiKey: string;\n googleMapsApiKey: string;\n hereMapsAppCode: string;\n hereMapsAppId: string;\n mapquestConsumerKey: string;\n imagesUrl: string;\n consoleDefaultSoundId: string;\n exp: number;\n}\n\nexport type Char =\n | 'a'\n | 'b'\n | 'c'\n | 'd'\n | 'e'\n | 'f'\n | 'g'\n | 'h'\n | 'i'\n | 'j'\n | 'k'\n | 'l'\n | 'm'\n | 'n'\n | 'o'\n | 'p'\n | 'q'\n | 'r'\n | 's'\n | 't'\n | 'u'\n | 'v'\n | 'w'\n | 'x'\n | 'y'\n | 'z';\n\nexport enum OperatingSystem {\n Windows = 'Windows',\n MacOS = 'Mac OS',\n Linux = 'Linux',\n IOS = 'iOS',\n Android = 'Android',\n Unknown = 'Unknown OS'\n}\n\nexport enum Browser {\n Chrome = 'Chrome',\n Firefox = 'Firefox',\n Safari = 'Safari',\n Unknown = 'Unknown Browser'\n}\n\nexport enum DeviceType {\n Mobile = 'Mobile',\n Desktop = 'Desktop'\n}\n\nexport interface DeviceInfo {\n os: OperatingSystem;\n browser: Browser;\n deviceType: DeviceType;\n}\n\nexport interface KeyboardModifiers {\n ctrl: boolean;\n alt: boolean;\n shift: boolean;\n parsedKey: string | undefined;\n}\n\nexport const optionKeySpecialCharacters: Record = {\n Ć„: 'a',\n 'āˆ«': 'b',\n Ƨ: 'c',\n 'āˆ‚': 'd',\n 'Ā“': 'e',\n ʒ: 'f',\n 'Ā©': 'g',\n 'Ė™': 'h',\n Ė†: 'i',\n 'āˆ†': 'j',\n 'Ėš': 'k',\n 'Ā¬': 'l',\n Āµ: 'm',\n 'Ėœ': 'n',\n Ćø: 'o',\n Ļ€: 'p',\n œ: 'q',\n 'Ā®': 'r',\n Ɵ: 's',\n 'ā€ ': 't',\n 'ĀØ': 'u',\n 'āˆš': 'v',\n 'āˆ‘': 'w',\n 'ā‰ˆ': 'x',\n 'Ā„': 'y',\n 'Āø': 'z'\n};\n\nexport const optionShiftSpecialCombinations: Record = {\n ƅ: 'a',\n ı: 'b',\n Ƈ: 'c',\n Ǝ: 'd',\n 'Ā“': 'e',\n Ə: 'f',\n 'Ė': 'g',\n Ɠ: 'h',\n Ė†: 'i',\n Ɣ: 'j',\n 'ļ£æ': 'k',\n ƒ: 'l',\n Ƃ: 'm',\n 'Ėœ': 'n',\n Ƙ: 'o',\n '\"': 'p',\n Œ: 'q',\n 'ā€°': 'r',\n ƍ: 's',\n Ė‡: 't',\n 'ĀØ': 'u',\n 'ā—Š': 'v',\n 'ā€ž': 'w',\n 'Ė›': 'x',\n Ɓ: 'y',\n 'Āø': 'z'\n};\n\nexport enum PacketType {\n FuelCalibration = 1,\n FuelCalibrationCommand = 2\n}\n\nexport enum FuelCalibrationCommand {\n SetMinValue = 1,\n SetMaxValue = 2\n}\n\nexport interface DeviceProgrammerDTO {\n PacketType: PacketType;\n DeviceIdentifier: string;\n PacketData: T;\n}\n\nexport interface FuelCalibrationValuesPacket {\n Voltage: number;\n IsStable: boolean;\n}\n\nexport interface FuelCalibrationCommandPacket {\n Command: FuelCalibrationCommand;\n Message?: string;\n}\n\nexport interface FuelCalibrationCommandResultPacket {\n Command: FuelCalibrationCommand;\n Result?: 0 | 1 | -1; // 1: Success, 0: Error, -1: Busy\n}\n","import { env } from 'env';\r\nimport exceldate from 'exceldate';\r\nimport { htmlToText } from 'html-to-text';\r\nimport _, { camelCase, isArray, isDate, isObject, transform } from 'lodash';\r\nimport { DateTime } from 'luxon';\r\nimport moment, { Moment } from 'moment';\r\nimport { IntlShape } from 'react-intl';\r\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\r\nimport {\r\n Browser,\r\n DeviceInfo,\r\n DeviceType,\r\n KeyboardModifiers,\r\n OperatingSystem,\r\n optionKeySpecialCharacters,\r\n optionShiftSpecialCombinations\r\n} from './types';\r\n\r\nexport const imageFormatsForReports = ['png', 'jpg', 'jpeg'];\r\n\r\n// Parse HTML to text to use en tooltips\r\nexport const formatHtmlToText = (htmlStr) => {\r\n return htmlStr ? htmlToText(htmlStr, { wordwrap: 130 }) : 'N/A';\r\n};\r\n\r\n// ** Checks if an object is empty (returns boolean)\r\nexport const isObjEmpty = (obj) => Object.keys(obj).length === 0;\r\n\r\n// ** Date minus TimezoneOffset\r\nexport const getDateWithoutTimezoneOffset = (date) =>\r\n date\r\n ? typeof date.getTime === 'function'\r\n ? new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().slice(0, -1)\r\n : date\r\n : null;\r\n\r\n// etiqueta con formato HH : MM para indicadores\r\nexport const generateHourMinuteLabel = (seconds: number, round: boolean = false) => {\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (round === true) {\r\n seconds += 60;\r\n }\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n return `${hours > 9 ? hours : '0' + hours} Hrs : ${minutes > 9 ? minutes : '0' + minutes} Mins`;\r\n};\r\n\r\n// etiqueta con formato D : HH : MM : SS para indicadores\r\nexport const generateDayHourMinuteSecondLabel = (seconds, round = false) => {\r\n let days = 0;\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (round === true) {\r\n seconds += 60;\r\n }\r\n\r\n if (seconds >= 86400) {\r\n days = Math.floor(seconds / 86400);\r\n seconds -= days * 86400;\r\n }\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n seconds = Math.floor(seconds);\r\n\r\n return `${days > 0 ? days + 'D ' : ''}${hours > 9 ? hours : '0' + hours} Hrs : ${\r\n minutes > 9 ? minutes : '0' + minutes\r\n } Mins : ${seconds > 9 ? seconds : '0' + seconds} S`;\r\n};\r\n\r\n// etiqueta con formato HH:MM:SS\r\nexport const generateHourMinuteSecondStr = (seconds) => {\r\n seconds = parseInt(seconds.toFixed(0));\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n return `${hours > 9 ? hours : '0' + hours}:${minutes > 9 ? minutes : '0' + minutes}:${\r\n seconds > 9 ? seconds : '0' + seconds\r\n }`;\r\n};\r\n\r\n// ** Returns K format from a number\r\nexport const kFormatter = (num) => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num);\r\n\r\n// ** Converts HTML to string\r\nexport const htmlToString = (html) => html.replace(/<\\/?[^>]+(>|$)/g, '');\r\n\r\n// funciĆ³n que retorna DateTime.now() con offset de usuario\r\nexport const todayWithUtcOffset = (utcOffset?: number) =>\r\n utcOffset ? DateTime.utc().plus({ minutes: +utcOffset }) : DateTime.now();\r\n\r\n// funciĆ³n que retorna la cantidad de horas transcurridas en un rango de fechas\r\n// si el rango incluye el dĆ­a de hoy entonces las horas transcurridas son hasta DateTime.now()\r\n// -- si endDate es > a DateTime.now() siempre se usarĆ” DateTime.now() como fecha fin\r\n\r\nexport const elapsedHoursInDateRange = (\r\n startDate: string | Date | DateTime,\r\n endDate: string | Date | DateTime,\r\n utcOffset?: number\r\n) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dtStart: DateTime =\r\n typeof startDate === 'string'\r\n ? DateTime.fromISO(startDate)\r\n : startDate instanceof DateTime\r\n ? startDate\r\n : DateTime.fromJSDate(startDate);\r\n\r\n const dtEnd: DateTime =\r\n typeof endDate === 'string'\r\n ? DateTime.fromISO(endDate)\r\n : endDate instanceof DateTime\r\n ? endDate\r\n : DateTime.fromJSDate(endDate);\r\n\r\n return dtStart.diff(DateTime.min(today, dtEnd), 'hours').toObject().hours;\r\n};\r\n\r\n// funciĆ³n que retorna la cantidad de horas transcurridas en un dĆ­a\r\n// si ese dĆ­a es hoy entonces las horas transcurridas son hasta DateTime.now()\r\nexport const elapsedHoursInDate = (date: string | Date | DateTime, utcOffset?: number) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dt: DateTime =\r\n typeof date === 'string'\r\n ? DateTime.fromISO(date)\r\n : date instanceof DateTime\r\n ? date\r\n : DateTime.fromJSDate(date);\r\n\r\n return isToday(dt, utcOffset) ? today.diff(dt, 'hours').toObject().hours : 24.0;\r\n};\r\n\r\n// ** Checks if the passed date is today\r\nexport const isToday = (date: string | Date | DateTime, utcOffset?: number) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dt: DateTime =\r\n typeof date === 'string'\r\n ? DateTime.fromISO(date)\r\n : date instanceof DateTime\r\n ? date\r\n : DateTime.fromJSDate(date);\r\n\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n dt.get('day') === today.get('day') &&\r\n dt.get('month') === today.get('month') &&\r\n dt.get('year') === today.get('year')\r\n /* eslint-enable */\r\n );\r\n};\r\n\r\n/**\r\n ** Format and return date in Humanize format\r\n ** Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n ** Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (\r\n value,\r\n formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric', year: 'numeric' }\r\n) => {\r\n if (!value) return value;\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value));\r\n};\r\n\r\n// ** Returns short month of passed date\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value);\r\n let formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric' };\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' };\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value));\r\n};\r\n\r\n/**\r\n ** Return if user is logged in\r\n ** This is completely up to you and how you want to store the token in your frontend application\r\n * ? e.g. If you are using cookies to store the application please update this function\r\n */\r\nexport const isUserLoggedIn = () => {\r\n let token = localStorage.getItem('auth');\r\n let userData = getUserData();\r\n return token && userData && userData.exp > Date.now() / 1000;\r\n};\r\nexport const getUserData = () => JSON.parse(localStorage?.getItem('userData') || '{}');\r\n/**\r\n ** This function is used for demo purpose route navigation\r\n ** In real app you won't need this function because your app will navigate to same route for each users regardless of ability\r\n ** Please note role field is just for showing purpose it's not used by anything in frontend\r\n ** We are checking role just for ease\r\n * ? NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.\r\n * @param {String} userRole Role of user\r\n */\r\nexport const getHomeRouteForLoggedInUser = (userRole) => {\r\n if (userRole === 'admin') return '/';\r\n if (userRole === 'client') return '/access-control';\r\n return '/login';\r\n};\r\n\r\n// ** React Select Theme Colors\r\nexport const selectThemeColors = (theme) => ({\r\n ...theme,\r\n colors: {\r\n ...theme.colors,\r\n primary25: '#7367f01a', // for option hover bg-color\r\n primary: '#7367f0', // for selected option bg-color\r\n neutral10: '#7367f0', // for tags bg-color\r\n neutral20: '#ededed', // for input border-color\r\n neutral30: '#ededed' // for input hover border-color\r\n }\r\n});\r\n\r\n// Checks if given strings is a valid email\r\n// return bool\r\nexport const isValidEmail = (email) => {\r\n const emailRe =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return emailRe.test(String(email).toLowerCase());\r\n};\r\n\r\n// Checks if given strings is a valid email\r\n// returns bool\r\nexport const isNumber = (stringToCheck) => {\r\n const numberRe = /^\\d+$/;\r\n return numberRe.test(stringToCheck);\r\n};\r\n\r\nexport function numberWithCommas(x) {\r\n if (!x) return '0';\r\n //Trunco el nĆŗmero a 2 decimales\r\n x = trunc(x, 2);\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nexport function formatAmount(n: number | string) {\r\n if (!isValidNumber(n).test) return Number('0').toFixed(2);\r\n\r\n return Number(n)\r\n .toFixed(2)\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nfunction trunc(x, posiciones = 0) {\r\n if (!x.toString().includes('.')) {\r\n return x.toString();\r\n }\r\n var decimalLength = x.toString().indexOf('.') + 1;\r\n var numStr = x.toString().substr(0, decimalLength + posiciones);\r\n return numStr;\r\n}\r\n\r\nexport const isBitSet = (b, pos) => (b & (1 << pos)) !== 0;\r\n\r\nexport const convertTime = (time) => ({\r\n ...time,\r\n startTime: DateTime.local(\r\n 2000,\r\n 1,\r\n 2,\r\n ...time.startTime.split(':').map((time) => +time)\r\n ).toString(),\r\n endTime: DateTime.local(2000, 1, 2, ...time.endTime.split(':').map((time) => +time)).toString()\r\n});\r\n\r\nexport const isIterable = (obj) => obj != null && typeof obj[Symbol.iterator] === 'function';\r\n\r\nexport const imagesLink = 'https://pictures.webtrack.online/partner/desarrollo/FormsFiles/';\r\n\r\n/**\r\n * Get days between date and today\r\n * @param date\r\n * @returns Days between date and today\r\n */\r\nexport const getDaysBetweenDateAndToday = (date) => {\r\n const intl: IntlShape = appIntl();\r\n const startDate = new Date(date);\r\n const endDate = new Date();\r\n var seconds = Math.abs(endDate?.getTime() - startDate?.getTime()) / 1000;\r\n\r\n if (seconds <= 60) {\r\n return intl.formatMessage({ id: 'units.aFewSecondsAgo' });\r\n }\r\n\r\n var startYear = startDate?.getFullYear();\r\n var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\r\n var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n var yearDiff = endDate?.getFullYear() - startYear;\r\n var monthDiff = endDate?.getMonth() - startDate?.getMonth();\r\n if (monthDiff < 0) {\r\n yearDiff--;\r\n monthDiff += 12;\r\n }\r\n var dayDiff = endDate?.getDate() - startDate?.getDate();\r\n if (dayDiff < 0) {\r\n if (monthDiff > 0) {\r\n monthDiff--;\r\n } else {\r\n yearDiff--;\r\n monthDiff = 11;\r\n }\r\n dayDiff += daysInMonth[startDate?.getMonth()];\r\n }\r\n\r\n var weekDiff = dayDiff >= 7 ? Math.floor(dayDiff / 7) : 0;\r\n dayDiff -= 7 * weekDiff;\r\n\r\n var hourDiff = 0;\r\n var minuteDiff = 0;\r\n\r\n if (seconds >= 60 && seconds < 3600) {\r\n minuteDiff = Math.round(seconds / 60);\r\n } else if (seconds >= 3600 && seconds < 86400) {\r\n hourDiff = Math.round(seconds / 3600);\r\n dayDiff = 0;\r\n }\r\n\r\n return yearDiff > 0\r\n ? yearDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.yearsAgo' }, { value: yearDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aYearAgo' })}`\r\n : monthDiff > 0\r\n ? monthDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.monthsAgo' }, { value: monthDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aMonthAgo' })}`\r\n : weekDiff > 0\r\n ? weekDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.weeksAgo' }, { value: weekDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aWeekAgo' })}`\r\n : dayDiff > 0\r\n ? dayDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.daysAgo' }, { value: dayDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aDayAgo' })}`\r\n : hourDiff > 0\r\n ? hourDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.hoursAgo' }, { value: hourDiff })}`\r\n : `${intl.formatMessage({ id: 'units.anHourAgo' })}`\r\n : minuteDiff > 0\r\n ? minuteDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.minutesAgo' }, { value: minuteDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aMinuteAgo' })}`\r\n : '';\r\n};\r\n\r\n//Genera el listado de fechas en un rango de fechas establecido en el DateInput\r\nexport const getDateColumnsInDateRange = (intl, dateRange: string[], stacked: boolean = false) => {\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n let dateArray: any = [];\r\n\r\n while (startDate <= endDate) {\r\n dateArray.push(new Date(startDate));\r\n startDate.setDate(startDate.getDate() + 1);\r\n }\r\n return dateArray.map((date) => {\r\n const dateTitle =\r\n date.getFullYear() +\r\n '-' +\r\n (date.getMonth() + 1 < 10 ? '0' : '') +\r\n (date.getMonth() + 1) +\r\n '-' +\r\n (date.getDate() < 10 ? '0' : '') +\r\n date.getDate();\r\n\r\n return {\r\n fieldName: stacked ? undefined : dateTitle,\r\n customKey: stacked ? dateTitle : undefined,\r\n staticText:\r\n date.getDay() === 0\r\n ? `${intl.formatMessage({ id: 'common.sun' })} ${date.getDate()}`\r\n : date.getDay() === 1\r\n ? `${intl.formatMessage({ id: 'common.mon' })} ${date.getDate()}`\r\n : date.getDay() === 2\r\n ? `${intl.formatMessage({ id: 'common.tue' })} ${date.getDate()}`\r\n : date.getDay() === 3\r\n ? `${intl.formatMessage({ id: 'common.wed' })} ${date.getDate()}`\r\n : date.getDay() === 4\r\n ? `${intl.formatMessage({ id: 'common.thu' })} ${date.getDate()}`\r\n : date.getDay() === 5\r\n ? `${intl.formatMessage({ id: 'common.fri' })} ${date.getDate()}`\r\n : date.getDay() === 6\r\n ? `${intl.formatMessage({ id: 'common.sat' })} ${date.getDate()}`\r\n : ''\r\n };\r\n });\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nexport const getWeekColumns = (intl, data: Array, stacked: boolean = false) => {\r\n const weeks = [];\r\n\r\n if (data) {\r\n data.forEach((item: any) => {\r\n if (item.weekNumber && !weeks.includes(item.weekNumber)) {\r\n weeks.push(item.weekNumber);\r\n }\r\n });\r\n\r\n const columns = weeks.map((week) => {\r\n const startWeekDate = DateTime.fromISO(\r\n data?.find((d) => d.weekNumber === week).startWeekDate\r\n ).toFormat('yyyy-MM-dd');\r\n\r\n const endWeekDate = DateTime.fromISO(\r\n data?.find((d) => d.weekNumber === week).endWeekDate\r\n ).toFormat('yyyy-MM-dd');\r\n\r\n const weekColumns = [\r\n {\r\n fieldName: `performance-week${week}`,\r\n headerText: 'jobs.reports.performance',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `travel-week${week}`,\r\n headerText: 'jobs.reports.travel',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `consumption-week${week}`,\r\n headerText: 'jobs.reports.workTime',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `total-week${week}`,\r\n headerText: 'jobs.reports.workTime',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n }\r\n ];\r\n\r\n return {\r\n customKey: `week${week}`,\r\n staticText: `${\r\n intl.formatMessage({ id: 'common.week' }) + ` ${week}`\r\n } | ${startWeekDate} -> ${endWeekDate}`,\r\n customAttributes: { class: 'side-borders-columns-header' },\r\n columns: weekColumns\r\n };\r\n });\r\n\r\n return columns;\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst userTimezoneOffset = new Date().getTimezoneOffset() * 60000;\r\nexport const convertExcelDateToSystemDate = (excelDate) => {\r\n if (typeof excelDate === 'string') {\r\n return excelDate;\r\n } else {\r\n let systemDate = moment(\r\n new Date(Math.round((excelDate - 25569) * 86400 * 1000) + userTimezoneOffset)\r\n ).format('YYYY-MM-DD HH:mm');\r\n return systemDate;\r\n }\r\n};\r\n\r\nexport interface ValidatorsReturn {\r\n test: boolean;\r\n errorMessage?: string;\r\n}\r\n\r\n/**\r\n * Is Alpha Numeric Or Empty\r\n * @name isAlphaNumericOrEmpty\r\n * @description Test if value is valid or empty\r\n * @param value Unknown value to test or empty\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isAlphaNumericOrEmpty = (value: unknown): ValidatorsReturn => {\r\n if (!isNotNullOrUndefined(value)) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n // Additional verification for empty values (spaces)\r\n if (typeof value === 'string') {\r\n const valueToValidate = String(value).trim();\r\n if (valueToValidate.length === 0) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n }\r\n\r\n return isAlphaNumeric(value);\r\n};\r\n\r\n/**\r\n * Is Alpha Numeric\r\n * @name isAlphaNumeric\r\n * @description Test if value is valid\r\n * @param value Unknown value to test\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isAlphaNumeric = (value: unknown): ValidatorsReturn => {\r\n const alpha = /^.+$/;\r\n switch (typeof value) {\r\n case 'string': {\r\n const valueToValidate = String(value).trim();\r\n const test = isNotNullOrUndefined(value) ? alpha.test(valueToValidate) : false;\r\n\r\n if (valueToValidate.length === 0) {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'number': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'boolean': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'object': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'undefined': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'function': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'symbol': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'bigint': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n\r\n default: {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Is Valid Number Or Empty\r\n * @name isValidNumberOrEmpty\r\n * @description Test if value is valid or empty\r\n * @param value Unknown value to test or empty\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isValidNumberOrEmpty = (value: unknown): ValidatorsReturn => {\r\n if (!isNotNullOrUndefined(value)) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n return isValidNumber(value);\r\n};\r\n\r\n/**\r\n * Is Valid Number\r\n * @name isValidNumber\r\n * @description Test if value is valid\r\n * @param value Unknown value to test\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isValidNumber = (value: unknown): ValidatorsReturn => {\r\n let numeric = /^\\d*\\.?\\d*$/;\r\n let test = numeric.test(String(value));\r\n\r\n // Test if value is a number\r\n if (test) {\r\n return { test: test, errorMessage: undefined };\r\n } else {\r\n return { test: test, errorMessage: appIntl().formatMessage({ id: 'validators.number' }) };\r\n }\r\n};\r\n\r\n/**\r\n * Validate last 4 digits of a card\r\n * @name validLast4Digits\r\n * @description Test if value is valid\r\n * @param value {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n */\r\nexport const validLast4Digits = (value: unknown): ValidatorsReturn => {\r\n try {\r\n // Check if the value is a number\r\n const isNumber = isValidNumber(value);\r\n // Check if the number is a 4 digits number\r\n const is4Digits = String(value).length === 4;\r\n // Check if the number is a 4 digits number and a number\r\n const is4DigitsNumber = isNumber && is4Digits;\r\n // Return the validation\r\n return {\r\n test: is4DigitsNumber,\r\n errorMessage: is4DigitsNumber\r\n ? undefined\r\n : appIntl().formatMessage({ id: 'validators.last4' })\r\n };\r\n } catch (e) {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.last4' })\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * Validate provided date\r\n * @name isValidDate\r\n * @description Test if value is valid\r\n * @param date {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n * @example\r\n * isValidDate('2020-01-01') // true\r\n * isValidDate('2020-01-01 00:00:00') // true\r\n * isValidDate('2020-01-01 00:00:00.000') // true\r\n * isValidDate('2020-01-01 00:00:00.000Z') // true\r\n * isValidDate('2020-01-01 00:00:00.000+00:00') // true\r\n */\r\nexport const isValidDate = (date): ValidatorsReturn => {\r\n if (isNullOrUndefined(date) || date === '' || /^\\s+$/.test(String(date))) {\r\n return { test: false, errorMessage: appIntl().formatMessage({ id: 'validators.date' }) };\r\n }\r\n\r\n const isValid = moment(date, 'YYYY-MM-DD').isValid();\r\n return {\r\n test: isValid,\r\n errorMessage: isValid ? undefined : appIntl().formatMessage({ id: 'validators.date' })\r\n };\r\n};\r\nexport const isValidExcelDate = (excelDate) => {\r\n const date = convertExcelDateToSystemDate(excelDate);\r\n const test = moment(date, 'YYYY-MM-DD').isValid();\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.date' })\r\n };\r\n};\r\n\r\nexport const validateColumns = (dataInfo, columnDefinitions) => {\r\n const rules = columnDefinitions.map((cd) => cd.rules);\r\n const newData = dataInfo.map((row, rowIndex) => {\r\n let invalidColumns = new Array();\r\n const rowValues = Object.values(row);\r\n //validar que las columnas esten completas\r\n\r\n rowValues.forEach((colValue, colIndex) => {\r\n const required = rules[colIndex] ? rules[colIndex]?.required : false;\r\n const validation = rules[colIndex]\r\n ? rules[colIndex].validator(colValue)\r\n : { test: true, errorMessage: '' };\r\n\r\n if (colValue === '') {\r\n if (required) {\r\n invalidColumns.push({\r\n column: colIndex,\r\n value: colValue,\r\n error: `Es requerido`\r\n });\r\n }\r\n } else {\r\n if (validation.test) {\r\n return;\r\n } else {\r\n invalidColumns.push({\r\n column: colIndex,\r\n value: colValue,\r\n error: validation.errorMessage\r\n });\r\n }\r\n }\r\n });\r\n\r\n return {\r\n ...row,\r\n originalRowId: rowIndex + 1,\r\n invalidColumns: invalidColumns,\r\n rowIsValid: invalidColumns.length > 0 ? false : true\r\n };\r\n });\r\n\r\n return newData;\r\n};\r\n\r\n/**\r\n * Validate provided required value\r\n * @name validateRequiredValue\r\n * @description Test if value is valid\r\n * @param value {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n * @example\r\n * validateRequiredValue('') // false\r\n * validateRequiredValue(null) // false\r\n * validateRequiredValue('undefined') // false\r\n * validateRequiredValue('null') // false\r\n * validateRequiredValue('NaN') // false\r\n * validateRequiredValue(undefined) // false\r\n * validateRequiredValue(0) // true\r\n * validateRequiredValue(1) // true\r\n * validateRequiredValue('0') // true\r\n */\r\nconst validateRequiredValue = (value: unknown): ValidatorsReturn => {\r\n const test = value !== null && value !== undefined;\r\n\r\n if (test) {\r\n return { test: true, errorMessage: undefined };\r\n } else {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n }\r\n};\r\n\r\nconst validateUniqueValue = (value: unknown, data: any, columnName: any): ValidatorsReturn => {\r\n const valueCount = data.filter((item) => String(item[columnName]) === String(value)).length;\r\n const test = valueCount === 1;\r\n\r\n if (test) {\r\n return { test: true, errorMessage: undefined };\r\n } else {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.repeatedValue' })\r\n };\r\n }\r\n};\r\n\r\nexport const isValidDayOfTheWeek = (value: unknown): ValidatorsReturn => {\r\n const intl: IntlShape = appIntl();\r\n if (typeof value === 'number') {\r\n return {\r\n test: value >= 1 && value <= 7,\r\n errorMessage: intl.formatMessage({ id: 'validators.dayOfTheWeek' })\r\n };\r\n }\r\n\r\n if (typeof value === 'string') {\r\n const formattedDayOfTheWeek = intl.formatDate(new Date(value), { weekday: 'long' });\r\n\r\n const dayOfTheWeekMoment = moment(formattedDayOfTheWeek, 'dddd', intl.locale);\r\n\r\n if (dayOfTheWeekMoment.isValid()) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: intl.formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\n/**\r\n * Is valid boolean\r\n * @param value - Value to test\r\n * @description Test if value is valid\r\n * @returns {ValidatorsReturn}\r\n */\r\nexport const isValidBoolean = (value: unknown): ValidatorsReturn => {\r\n if (typeof value === 'boolean') {\r\n // value is a boolean, which is a valid type for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n } else if (typeof value === 'string') {\r\n const toValidate = value.toLowerCase().trim();\r\n if (toValidate === 'true' || toValidate === 'false') {\r\n // value is a string with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n } else if (typeof value === 'number') {\r\n if (value === 0 || value === 1) {\r\n // value is a number with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const isValidBit = (value: unknown): ValidatorsReturn => {\r\n if (typeof value === 'string') {\r\n const toValidate = value.toLowerCase().trim();\r\n if (toValidate === '1' || toValidate === '0') {\r\n // value is a string with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n } else if (typeof value === 'number') {\r\n if (value === 0 || value === 1) {\r\n // value is a number with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const isValidLatitude = (value: unknown): ValidatorsReturn => {\r\n switch (typeof value) {\r\n case 'number':\r\n const test: boolean = value >= -90 && value <= 90;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.latitude' })\r\n };\r\n case 'string': {\r\n const parsedValue = parseFloat(value);\r\n const test: boolean = !isNaN(parsedValue) && parsedValue >= -90 && parsedValue <= 90;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.latitude' })\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.bit' })\r\n };\r\n};\r\n\r\nexport const isValidLongitude = (value: unknown): ValidatorsReturn => {\r\n switch (typeof value) {\r\n case 'number':\r\n const test: boolean = value >= -180 && value <= 180;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.longitude' })\r\n };\r\n case 'string': {\r\n const parsedValue = parseFloat(value);\r\n const test: boolean = !isNaN(parsedValue) && parsedValue >= -180 && parsedValue <= 180;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.longitude' })\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const validators = {\r\n isAlphaNumericOrEmpty,\r\n isAlphaNumeric,\r\n isValidNumberOrEmpty,\r\n isValidNumber,\r\n isValidEmail,\r\n validLast4Digits,\r\n isValidDate,\r\n isValidExcelDate,\r\n validateRequiredValue,\r\n validateUniqueValue,\r\n isValidDayOfTheWeek,\r\n isValidBoolean,\r\n isValidLatitude,\r\n isValidLongitude,\r\n isValidBit\r\n};\r\n\r\nexport const normalizeString = (value: string): string => {\r\n return value\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .trim();\r\n};\r\n\r\n/**\r\n * Normalize input texts\r\n * @param data string from an input\r\n * @returns normalized strings allowing spaces after words\r\n */\r\nexport const normalizeInputText = (data: string): string => {\r\n // Allow clear input\r\n if (typeof data === 'string' && data.trim().length === 0) {\r\n return '';\r\n }\r\n\r\n // Allow only letters and spaces\r\n const validInputRegex = /^(\\w+\\s?)+$/;\r\n if (validInputRegex.test(data)) {\r\n return data;\r\n }\r\n\r\n // Allow only letters, numbers and spaces after words (not before)\r\n return normalizeString(data);\r\n};\r\n\r\nexport const parseToString = (data: unknown): string | undefined => {\r\n switch (typeof data) {\r\n case 'string':\r\n if (data.trim().length === 0 || data.trim() === '') {\r\n return undefined;\r\n }\r\n return data;\r\n case 'number':\r\n return normalizeString(data.toString());\r\n case 'boolean':\r\n return normalizeString(data.toString());\r\n case 'object':\r\n if (isNullOrUndefined(data)) {\r\n return undefined;\r\n }\r\n if (isDate(data)) {\r\n return normalizeString(data.toString());\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * get any date and set todays day, month and year\r\n */\r\n\r\nexport const setTodaysDate = (date: Date): Date => {\r\n const today = new Date();\r\n const newDate = new Date(\r\n today.getFullYear(),\r\n today.getMonth(),\r\n today.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds()\r\n );\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Excel date to JS Date\r\n * @param serial Date saved as number from excel\r\n * @returns {Date} parsed number\r\n */\r\nexport const excelDateToJSDate = (serial: number): Date => {\r\n const utcDays = Math.floor(serial - 25569);\r\n const utcValue = utcDays * 86400;\r\n const dateInfo = new Date(utcValue * 1000);\r\n\r\n const fractionalDay = serial - Math.floor(serial) + 0.0000001;\r\n\r\n let totalSeconds = Math.floor(86400 * fractionalDay);\r\n\r\n const seconds = totalSeconds % 60;\r\n\r\n totalSeconds -= seconds;\r\n\r\n const hours = Math.floor(totalSeconds / (60 * 60));\r\n const minutes = Math.floor(totalSeconds / 60) % 60;\r\n\r\n return new Date(\r\n dateInfo.getFullYear(),\r\n dateInfo.getMonth(),\r\n dateInfo.getDate(),\r\n hours,\r\n minutes,\r\n seconds\r\n );\r\n};\r\n\r\n/**\r\n * function that receives an excel date and returns a date object\r\n * @param date {number} excel date\r\n * @returns {Date | undefined}\r\n * @example\r\n * parseToDate(0.20833333333333334) // 2023-03-31T00:17:57.000Z\r\n */\r\nconst parseToDate = (excelDate: unknown): Date | undefined => {\r\n if (typeof excelDate === 'number') {\r\n return excelDateToJSDate(excelDate);\r\n } else if (typeof excelDate === 'string') {\r\n const dateObj = new Date(excelDate);\r\n return dateObj;\r\n } else if (isDate(excelDate)) {\r\n return excelDate;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const parseToDateTime = (excelDate: unknown): Date | undefined => {\r\n if (typeof excelDate === 'number') {\r\n return DateTime.fromISO(exceldate(excelDate).toISOString(), { zone: 'utc' })\r\n .setZone('system', { keepLocalTime: true })\r\n .toJSDate();\r\n } else if (typeof excelDate === 'string') {\r\n const dateObj = new Date(excelDate);\r\n return dateObj;\r\n } else if (isDate(excelDate)) {\r\n return excelDate;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const parseToNumber = (data: unknown): number | undefined => {\r\n if (typeof data === 'number') {\r\n return data ?? 0;\r\n }\r\n\r\n if (typeof data === 'string') {\r\n const value = Number(data);\r\n\r\n return isNaNOrNullable(value) ? 0 : value;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * @name dateFormatter\r\n * @description date formatter function with moment js library\r\n * @param dateFormat default 'DD/MM/AAAA HH:mm:ss'\r\n * @returns date formatter function\r\n */\r\nexport const dateFormatter = (dateFormat: string = 'DD/MM/YYYY HH:mm:ss') => {\r\n return (d: Date) => {\r\n const m = moment(d);\r\n if (!m.isValid()) {\r\n console.warn(d, 'is not a valid date');\r\n return '';\r\n }\r\n return m.format(dateFormat);\r\n };\r\n};\r\n\r\nexport const parseToBoolean = (data: unknown): boolean | undefined => {\r\n switch (typeof data) {\r\n case 'boolean':\r\n return data;\r\n case 'string':\r\n switch (data.toLowerCase().trim()) {\r\n case 'true':\r\n return true;\r\n case 'false':\r\n return false;\r\n case '1':\r\n return true;\r\n case '0':\r\n return false;\r\n }\r\n break;\r\n case 'number':\r\n return data === 1;\r\n default:\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const parseToBit = (data: unknown): 0 | 1 | undefined => {\r\n const result = parseToBoolean(data);\r\n if (result === undefined) {\r\n return result;\r\n }\r\n\r\n return result ? 1 : 0;\r\n};\r\n\r\nexport const parsers = {\r\n parseToString,\r\n parseToDate,\r\n parseToNumber,\r\n parseToBoolean,\r\n parseToBit,\r\n parseToDateTime\r\n};\r\n\r\nexport const timeToSeconds = (time: Date): number => {\r\n return time.getHours() * 3600 + time.getMinutes() * 60 + time.getSeconds();\r\n};\r\n\r\nexport const timeToMinutes = (time: Date): number => {\r\n return time.getHours() * 60 + time.getMinutes();\r\n};\r\n\r\nexport const getValueFromTryCatch = (handleTry: Function, handleCatch: Function) => {\r\n let value: any;\r\n try {\r\n value = handleTry();\r\n } catch (err) {\r\n console.error(err);\r\n value = handleCatch(err);\r\n }\r\n return value;\r\n};\r\n\r\nexport const compareObjectValues = (obj1: object, obj2: object): boolean =>\r\n JSON.stringify(obj1) === JSON.stringify(obj2);\r\n\r\nexport const getSecondsFromDateHours = (date: Date) => {\r\n return typeof date?.getHours === 'function' ? date?.getHours() * 60 * 60 ?? 0 : 0;\r\n};\r\n\r\nexport const getSecondsFromDateMinutes = (date: Date) => {\r\n return typeof date?.getMinutes === 'function' ? date?.getMinutes() * 60 ?? 0 : 0;\r\n};\r\n\r\nexport const getSecondsFromDate = (date: Date) => {\r\n return typeof date?.getSeconds === 'function' ? date?.getSeconds() ?? 0 : 0;\r\n};\r\n\r\nexport const getMinutesFromDate = (date: Date) => {\r\n return typeof date?.getMinutes === 'function' ? date?.getMinutes() ?? 0 : 0;\r\n};\r\n\r\nexport const getTotalSecondsFromDate = (date: Date) => {\r\n const hoursInSeconds = getSecondsFromDateHours(date);\r\n const minutesInSeconds = getSecondsFromDateMinutes(date);\r\n const seconds = getSecondsFromDate(date);\r\n\r\n const totalSeconds = hoursInSeconds + minutesInSeconds + seconds;\r\n return totalSeconds;\r\n};\r\n\r\nexport interface keysAndParsers {\r\n key: string;\r\n parse: Function;\r\n}\r\n\r\n/**\r\n * Map formatted string to array\r\n * @param data string formatted like \"1~39~n...^1~28~n...\"\r\n * @param keys array of key to map data to object\r\n * [{key: 'name', parse: () => {}},\r\n * {key: 'lastname', parse: () => {}},\r\n * ...]\r\n * @returns Array\r\n */\r\nexport const mapFormattedStringToArray = (\r\n data: string,\r\n keysAndValidator: Array\r\n): Array => {\r\n // First split to get every object as string\r\n const newArray: Array = data.split('^').map((objectAsString: string) => {\r\n // Second split to get object as array\r\n const objectAsArray: Array = objectAsString.split('~');\r\n\r\n // mapped object with provided keys\r\n const newObject = keysAndValidator.reduce(\r\n (object: any, { key, parse }: keysAndParsers, index: number): any => {\r\n const newOjectAcum = { ...object };\r\n // validates index is contained into array\r\n // in order to avoid access to undefined values\r\n if (objectAsArray.length > index) {\r\n try {\r\n // new attribute = Value from array located in index\r\n newOjectAcum[key] = parse(objectAsArray[index]);\r\n } catch (error) {\r\n newOjectAcum[key] = undefined;\r\n }\r\n }\r\n return newOjectAcum;\r\n },\r\n {}\r\n );\r\n\r\n return newObject;\r\n });\r\n return newArray ?? [];\r\n};\r\n\r\n/**\r\n * Create a Date with provided minutes and hours\r\n * @param hours Number of hours\r\n * @param minutes Number of minutes\r\n * @returns new date with provided minutes and hours\r\n */\r\nexport const createDateWithHoursAndMinutes = (hours: number, minutes: number): Date => {\r\n const newDate: Date = new Date();\r\n newDate.setHours(hours);\r\n newDate.setMinutes(minutes);\r\n newDate.setSeconds(0);\r\n newDate.setMilliseconds(0);\r\n return newDate;\r\n};\r\n\r\nexport const secondsToMilliseconds = (seconds: number): number => seconds * 1000;\r\n\r\n//Genera la etiqueta de fecha en el formato YYYY-MM-DD\r\nexport const generateDateLabelByDate = (date) => {\r\n return (\r\n date.getFullYear() +\r\n '-' +\r\n (date.getMonth() + 1 < 10 ? '0' : '') +\r\n (date.getMonth() + 1) +\r\n '-' +\r\n (date.getDate() < 10 ? '0' : '') +\r\n date.getDate()\r\n );\r\n};\r\n\r\n//Calcula la diferencia de horas que existe en un rango de fechas ingresado en el DateInput\r\nexport const getDaysHoursInDateRange = (dateRange: Array): number => {\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n let difference = endDate.getTime() - startDate.getTime();\r\n return Math.ceil(difference / (1000 * 3600 * 24)) * 24 * 3600;\r\n } else {\r\n return 0;\r\n }\r\n};\r\n\r\n/**\r\n * Generate date array\r\n * @param dateRange Date range provided by date range input\r\n * @returns Array in range of the date\r\n */\r\nexport const generateDateArray = (dateRange: Array): Array => {\r\n const dateArray: Array = [];\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n while (startDate <= endDate) {\r\n dateArray.push(new Date(startDate));\r\n startDate.setDate(startDate.getDate() + 1);\r\n }\r\n }\r\n return dateArray;\r\n};\r\n\r\n/**\r\n * Get date as string\r\n * @param date Date to get as string\r\n * @description Returns date as string in format YYYY-MM-DD\r\n * @returns Date as string\r\n */\r\nexport const getDateAsString = (date: Date): string => {\r\n return date.toISOString().substring(0, 10);\r\n};\r\n\r\n/**\r\n * Generate day label by date\r\n * @param date Date to generate label\r\n * @returns Label generated\r\n */\r\nexport const generateDayLabelByDate = (date: Date): string => {\r\n const intl = appIntl();\r\n return date.getDay() === 0\r\n ? `${intl.formatMessage({ id: 'common.sun' })} ${date.getDate()}`\r\n : date.getDay() === 1\r\n ? `${intl.formatMessage({ id: 'common.mon' })} ${date.getDate()}`\r\n : date.getDay() === 2\r\n ? `${intl.formatMessage({ id: 'common.tue' })} ${date.getDate()}`\r\n : date.getDay() === 3\r\n ? `${intl.formatMessage({ id: 'common.wed' })} ${date.getDate()}`\r\n : date.getDay() === 4\r\n ? `${intl.formatMessage({ id: 'common.thu' })} ${date.getDate()}`\r\n : date.getDay() === 5\r\n ? `${intl.formatMessage({ id: 'common.fri' })} ${date.getDate()}`\r\n : date.getDay() === 6\r\n ? `${intl.formatMessage({ id: 'common.sat' })} ${date.getDate()}`\r\n : '';\r\n};\r\n\r\n/**\r\n * Get date string from date item date range\r\n * @param date Date to generate string\r\n * @returns String of the date\r\n */\r\nexport const getDateStringFromDateItemDateRange = (date: any): string => {\r\n return date.toISOString().substr(0, 10);\r\n};\r\n\r\n/**\r\n * Safe Access to nullable prop\r\n * @param obj Object to validate\r\n * @param key Key to validate in the object\r\n * @param defaultValue Default value provided\r\n * @returns Value in the object of default\r\n */\r\nexport const safeAccessToNullProp = (obj: any, key: string, defaultValue: any = undefined): any => {\r\n let value = undefined;\r\n try {\r\n // Access to value in object, catch if error\r\n value = obj[key];\r\n // if value is undefined throw controlled error\r\n if (isNullOrUndefined(value)) throw new Error('Undefined value');\r\n } catch (error) {\r\n // Catch any error and assign default value as value\r\n value = defaultValue;\r\n }\r\n // Return value or default value\r\n return value;\r\n};\r\n\r\n/**\r\n * Is in object\r\n * validates if a prop is in an object\r\n * @param obj: Object to validate\r\n * @param key: string to validate value is in the object\r\n * @returns: boolean\r\n */\r\nexport const isInObject = (obj: any, key: string): boolean => {\r\n let isInObject: boolean;\r\n try {\r\n isInObject = obj[key] !== undefined && obj[key] !== null;\r\n } catch (error) {\r\n isInObject = false;\r\n }\r\n return isInObject;\r\n};\r\n\r\n/**\r\n * Is not in object\r\n * validates if a prop is not in an object\r\n * @param obj: Object to validate\r\n * @param key: string to validate value is in the object\r\n * @returns: boolean\r\n */\r\nexport const isNotInObject = (obj: any, key: string): boolean => !isInObject(obj, key);\r\n\r\n/**\r\n * Is null or undefined\r\n * @param value Get any value to validate\r\n * @returns true if is null or undefined, else false\r\n */\r\nexport const isNullOrUndefined = (value: any): boolean => value === null || value === undefined;\r\n\r\n/**\r\n * Is not null or undefined\r\n * @param value Get any value to validate\r\n * @returns false if is null or undefined, else true\r\n */\r\nexport const isNotNullOrUndefined = (value: any) => !isNullOrUndefined(value);\r\n\r\nexport const isNaNOrNullable = (n: number | null | undefined) => {\r\n return n === null || n === undefined || isNaN(n);\r\n};\r\n\r\nexport const isNotNaNOrNullable = (n: number | null | undefined) => !isNaNOrNullable(n);\r\n\r\n/**\r\n * Check if every element is not null or undefined\r\n * return true if there are not null or undefined values\r\n */\r\nexport const areNotNullOrUndefined = (...arr: any[]) => {\r\n return !arr.some((item) => isNullOrUndefined(item));\r\n};\r\n\r\n/**\r\n * Round time for data report\r\n * @param time: number\r\n * @returns: number\r\n */\r\nexport const parseSecondsToHours = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n\r\n return Math.round((time / 3600) * 100) / 100;\r\n};\r\n\r\nexport const parseHoursToSeconds = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n return time * 3600;\r\n};\r\n\r\n/**\r\n * Round time for report witht epsilon\r\n * @param time : number time in seconds\r\n * @returns time: number rounded\r\n */\r\nexport const parseSecondsToHoursWithEpsilon = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n return Math.round((time / 3600 + Number.EPSILON) * 100) / 100;\r\n};\r\n\r\nexport const getTimeInSeconds = (date: Date) => date.getTime() / 1000;\r\n\r\nexport const getTimeInMinutes = (date: Date) => getTimeInSeconds(date) / 60;\r\n\r\n/**\r\n * Get previous element in array\r\n * @param array : T[]\r\n * @param currentIdx number, idx of current interation\r\n * @returns : T next element or undefined\r\n */\r\nexport function getNextElementInArray(array: Array, currentIdx: number): T | undefined {\r\n if (array.length < 1) return;\r\n let nextElement: T | undefined;\r\n try {\r\n nextElement = array[currentIdx + 1];\r\n } catch (error) {\r\n console.error(new Error('index out of array'));\r\n return undefined;\r\n }\r\n return nextElement;\r\n}\r\n\r\n/**\r\n * Get previous element in array\r\n * @param array : T[]\r\n * @param currentIdx number, idx of current interation\r\n * @returns : T previous element or undefined\r\n */\r\nexport function getPreviousElementInArray(array: Array, currentIdx: number): T | undefined {\r\n if (array.length < 1) return;\r\n let nextElement: T | undefined;\r\n try {\r\n nextElement = array[currentIdx - 1];\r\n } catch (error) {\r\n console.error(new Error('index out of array'));\r\n return undefined;\r\n }\r\n return nextElement;\r\n}\r\n\r\n/**\r\n * Return hour with left zero\r\n * @param n number\r\n * @returns if 9 ? 09 if 10 ? 10\r\n */\r\nexport const addLeftZeroToHours = (n: number): string => {\r\n return (n < 10 && n > -1 ? '0' : '') + n;\r\n};\r\n\r\n/**\r\n * Get difference between dates\r\n * @param a Date end\r\n * @param b Date start\r\n * @returns Time difference as string HH:mm:ss\r\n */\r\nexport const getDifferenceBetweenDatesHHMMSS = (a: Date, b: Date): string => {\r\n // difference in ms\r\n const duration = a.getTime() - b.getTime();\r\n\r\n // minutes and seconds from utc moment date\r\n const minutesSeconds = moment.utc(duration).format('mm:ss');\r\n\r\n // Math floor in order to avoid floats and get only hours\r\n const hours = Math.floor(moment.duration(duration).asHours());\r\n\r\n return `${addLeftZeroToHours(hours)}:${minutesSeconds}`;\r\n};\r\n\r\n/**\r\n * Function that returns number of values\r\n * validates most of the cases of types\r\n * @param obj Object to get number of values\r\n * @returns Return number of values of 0 as default\r\n */\r\nexport const getNumberOfValues = (obj: unknown) => {\r\n // Validate array\r\n if (Array.isArray(obj)) return obj.length;\r\n\r\n // validate null or undefined\r\n if (isNullOrUndefined(obj)) return 0;\r\n\r\n // case object\r\n if (typeof obj == 'object') return Object.values(obj ?? {}).length;\r\n\r\n return 0;\r\n};\r\n\r\nexport const hasTheSameStructure = (objs: Array): boolean => {\r\n if (isNullOrUndefined(objs)) return false;\r\n if (objs.length <= 0) return false;\r\n const keys: Array = Object.keys(objs[0]);\r\n return objs.every((current) => _.isEqual(Object.keys(current), keys));\r\n};\r\n\r\n/**\r\n * Get Days between date and today\r\n * @param date : string | date\r\n * @returns : string indicating difference between date and today\r\n */\r\nexport const getDaysBetweenDateAndTodayRef = (date: Date | string): string => {\r\n const intl = appIntl();\r\n const startDate = new Date(new Date().toISOString().substr(0, 10));\r\n const endDate: Date = date instanceof Date ? date : new Date(date);\r\n var startYear = startDate.getFullYear();\r\n var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\r\n var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n var yearDiff = endDate.getFullYear() - startYear;\r\n var monthDiff = endDate.getMonth() - startDate.getMonth();\r\n if (monthDiff < 0) {\r\n yearDiff--;\r\n monthDiff += 12;\r\n }\r\n var dayDiff = endDate.getDate() - startDate.getDate();\r\n if (dayDiff < 0) {\r\n if (monthDiff > 0) {\r\n monthDiff--;\r\n } else {\r\n yearDiff--;\r\n monthDiff = 11;\r\n }\r\n dayDiff += daysInMonth[startDate.getMonth()];\r\n }\r\n\r\n var weekDiff = dayDiff >= 7 ? Math.floor(dayDiff / 7) : 0;\r\n dayDiff -= 7 * weekDiff;\r\n\r\n return (\r\n (yearDiff > 0\r\n ? yearDiff > 1\r\n ? `${yearDiff} ${intl.formatMessage({ id: 'common.years' })}`\r\n : `${yearDiff} ${intl.formatMessage({ id: 'common.year' })}`\r\n : '') +\r\n (monthDiff > 0\r\n ? monthDiff > 1\r\n ? ` ${monthDiff} ${intl.formatMessage({ id: 'common.months' })}`\r\n : ` ${monthDiff} ${intl.formatMessage({ id: 'common.month' })}`\r\n : '') +\r\n (weekDiff > 0\r\n ? weekDiff > 1\r\n ? ` ${weekDiff} ${intl.formatMessage({ id: 'common.weeks' })}`\r\n : ` ${weekDiff} ${intl.formatMessage({ id: 'common.week' })}`\r\n : '') +\r\n (dayDiff > 0\r\n ? dayDiff > 1\r\n ? ` ${dayDiff} ${intl.formatMessage({ id: 'common.days2' })}`\r\n : ` ${dayDiff} ${intl.formatMessage({ id: 'common.day' })}`\r\n : '')\r\n );\r\n};\r\n\r\nexport const isHex = (hex: string) => /^#([A-Fa-f0-9]{3}){1,2}$/.test(hex);\r\n\r\nexport const hexToRgbA = (hex: string) => {\r\n if (!isHex(hex)) return 'rgba(0 ,0 ,0 ,0)';\r\n\r\n let c;\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',1)';\r\n};\r\n\r\nexport const getZeroIfNaNOrNullable = (n?: number | undefined): number =>\r\n isNaNOrNullable(n) ? 0 : n ?? 0;\r\n\r\n/**\r\n * Has Database date format\r\n * @param date date as string\r\n * @returns bolean true if has format\r\n */\r\nexport const hasDBDateFormat = (date: string | undefined): boolean => {\r\n if (isNullOrUndefined(date)) return false;\r\n const regex = /[0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2}T[0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2}/;\r\n if (typeof date === 'string') return regex.test(date);\r\n return false;\r\n};\r\n\r\n/**\r\n * Get Date String formatted\r\n * @param date : undefined | null | string | Date | Moment date\r\n * @returns : date YYYY-MM-DD HH:mm or empty string\r\n */\r\nexport const getDateStrFormatted = (date: unknown): string => {\r\n if (isNullOrUndefined(date)) return '';\r\n\r\n // Format for date\r\n const dateFormat = 'YYYY-MM-DD HH:mm';\r\n if (typeof date === 'string' && hasDBDateFormat(date)) return moment(date).format(dateFormat);\r\n if (typeof date === 'string' && date.length > 0) return date;\r\n if (date instanceof Date) return moment(date).format(dateFormat);\r\n if (moment.isMoment(date)) return date.format(dateFormat);\r\n\r\n return '';\r\n};\r\n\r\nexport const getDateAsKey = (date: Date | Moment | undefined | null | string): string => {\r\n const format = 'YYYY-MM-DD';\r\n if (isNullOrUndefined(date)) return '';\r\n if (typeof date === 'string') return moment(date).format(format);\r\n if (date instanceof Date) return moment(date).format(format);\r\n if (moment.isMoment(date)) return date.format(format);\r\n return '';\r\n};\r\n\r\nexport const getIsMobile = (navigator) => /iPhone|iPad|iPod|Android/i?.test(navigator?.userAgent);\r\n\r\nexport const getShortDate = (date: string | Date | Moment | undefined | null): string => {\r\n if (isNullOrUndefined(date)) return '';\r\n if (typeof date === 'string') return moment(new Date(date)).format('MMM DD');\r\n if (date instanceof Date) return moment(date).format('MMM DD');\r\n if (moment.isMoment(date)) return date.format('MMM DD');\r\n return '';\r\n};\r\n\r\n/**\r\n * Recursively transforms object to camel case format\r\n * @param obj Object to transform\r\n * @returns Camel case keys of the object\r\n */\r\nexport const camelize = (obj: any) =>\r\n transform(obj, (acc: any, value, key: string, target) => {\r\n const camelKey = isArray(target) ? key : camelCase(key);\r\n\r\n acc[camelKey] = isObject(value) ? camelize(value) : value;\r\n });\r\n\r\nexport function truncateStr(text: string, limit: number) {\r\n if (text.length > limit) {\r\n for (let i = limit; i > 0; i--) {\r\n if (\r\n text.charAt(i) === ' ' &&\r\n (text.charAt(i - 1) != ',' || text.charAt(i - 1) != '.' || text.charAt(i - 1) != ';')\r\n ) {\r\n return text.substring(0, i) + '...';\r\n }\r\n }\r\n return text.substring(0, limit) + '...';\r\n } else {\r\n return text;\r\n }\r\n}\r\n\r\n/**\r\n * Format number 1234.2334 => 1,234.2334\r\n * @param n number\r\n * @param useSelectedLocale boolean in order to use app intl locale or default\r\n * @returns formatted number\r\n */\r\nexport const formatNumber = (n: number | string, useSelectedLocale: boolean = false): string => {\r\n let numberToValidate = Number(n);\r\n\r\n if (isNaNOrNullable(numberToValidate)) return '0';\r\n // validateNumber\r\n if (typeof n === 'string') {\r\n const regexIsNumber = /^\\d+(\\.\\d+)?$/;\r\n const isNumber = regexIsNumber.test(n);\r\n if (!isNumber) return '0';\r\n }\r\n\r\n const localeToUse = useSelectedLocale ? appIntl().locale : 'en-US';\r\n const newNumberFormatted = numberToValidate.toLocaleString(localeToUse);\r\n return newNumberFormatted;\r\n};\r\n\r\nexport const testIsNumber = (n: unknown) => {\r\n // create regex that test if the string is number\r\n // can be negative and have decimals\r\n // const regexIsNumber = /^-?\\d+\\.?\\d*$/;\r\n const regexIsNumber = /^\\d+(\\.\\d+)?$/;\r\n\r\n switch (typeof n) {\r\n case 'number':\r\n return true;\r\n case 'string':\r\n return regexIsNumber.test(n);\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\nexport const getUseCRM = () => !!parseInt(env.REACT_APP_PRODUCT_CRM ?? '0');\r\n\r\nexport const getUseConsole = () => !!parseInt(env.REACT_APP_PRODUCT_CONSOLE ?? '0');\r\n\r\nexport const getUseLoginext = () => (env.REACT_APP_USE_LOGINEXT === 'true' ? true : false);\r\n\r\nexport const getIsWebtrackUser = (user): boolean => {\r\n const { userName, email } = user;\r\n const webtrackEmail = '@webtrackgps.net';\r\n return (\r\n (typeof userName === 'string' && userName.includes(webtrackEmail)) ||\r\n (typeof email === 'string' && email.includes(webtrackEmail))\r\n );\r\n};\r\n\r\n// function that get time as string with this format '09-00' and return the hour as number 9\r\nexport function getHourFromStringTime(time: string): number {\r\n // validate time\r\n if (isNullOrUndefined(time)) return 0;\r\n\r\n // validate with regex that time has the format '09-00'\r\n const regex = /^[0-9]{2,2}-[0-9]{2,2}$/;\r\n if (!regex.test(time)) return 0;\r\n\r\n const hour = time.split('-')[0];\r\n return parseInt(hour);\r\n}\r\n\r\n// function that get time as string with this format '09-00' and return the minutes as number 0\r\nexport function getMinutesFromStringTime(time: string): number {\r\n // validate time\r\n if (isNullOrUndefined(time)) return 0;\r\n\r\n // validate with regex that time has the format '09-00'\r\n const regex = /^[0-9]{2,2}-[0-9]{2,2}$/;\r\n if (!regex.test(time)) return 0;\r\n\r\n const minutes = time.split('-')[1];\r\n return parseInt(minutes);\r\n}\r\nexport const isEmptyData = (data: unknown) => {\r\n switch (typeof data) {\r\n case 'string':\r\n return data.trim().length === 0;\r\n case 'number':\r\n return isNaNOrNullable(data);\r\n case 'boolean':\r\n return false;\r\n case 'undefined':\r\n return true;\r\n case 'symbol':\r\n return isNotNullOrUndefined(data);\r\n case 'function':\r\n return false;\r\n case 'object':\r\n if (Array.isArray(data)) {\r\n return data.length === 0;\r\n }\r\n if (isNullOrUndefined(data)) {\r\n return true;\r\n }\r\n\r\n // @ts-ignore\r\n // by this line the code has validated if the data is null or undefined\r\n return compareObjectValues(data, {});\r\n default:\r\n isNullOrUndefined(data);\r\n }\r\n};\r\n\r\nexport const isNotEmptyData = (data: unknown) => !isEmptyData(data);\r\n\r\n/**\r\n * generate json without backslash\r\n * @param json\r\n * @returns\r\n */\r\nexport function jsonWithoutBackslash(data: any): string {\r\n const json = JSON.stringify(data ?? {});\r\n return json.replace(/\\\\/g, '');\r\n}\r\n\r\nexport function safeStringify(obj: object) {\r\n const cache = new Set();\r\n const parsed = Object.entries(obj).reduce((acc, [key, value]) => {\r\n if (typeof value === 'object' && value !== null) {\r\n if (cache.has(key)) {\r\n return acc;\r\n }\r\n\r\n acc[key] = value;\r\n cache.add(key);\r\n }\r\n\r\n return acc;\r\n }, {});\r\n\r\n console.log({ parsed });\r\n const data = JSON.stringify(parsed);\r\n\r\n return data;\r\n}\r\n\r\nexport function safeStringifyWithoutBackslash(data: object): string {\r\n const json = safeStringify(data);\r\n return json.replace(/\\\\/g, '');\r\n}\r\n\r\nexport type JoinOptions = 'conjunction' | 'disjunction' | 'unit';\r\nexport const joinTexts = (items: string[], by: JoinOptions = 'conjunction') => {\r\n const intl: IntlShape = appIntl();\r\n return intl.formatList(items, { type: by });\r\n};\r\n\r\nexport const stripHtml = (html: string): string => {\r\n const temp = document.createElement('div');\r\n temp.innerHTML = html;\r\n return temp.textContent ?? '';\r\n};\r\n\r\nexport const roundWithEpsilon = (n?: number) => {\r\n if (!n) {\r\n return null;\r\n }\r\n return Math.round((n + Number.EPSILON) * 100) / 100;\r\n};\r\n\r\nexport const formatHourMeter = (hourMeter?: number | null | undefined) =>\r\n // @ts-ignore unreachable error because of validation\r\n isNotNaNOrNullable(hourMeter) ? parseSecondsToHours(hourMeter) + ' H' : 'N/A';\r\n\r\nexport const getSecondsBetweenDates = ([startDate, endDate]: [string, string]) => {\r\n if (isNullOrUndefined(startDate) || isNullOrUndefined(endDate)) return 0;\r\n const start = moment(startDate);\r\n const end = moment(endDate);\r\n return end.diff(start, 'seconds');\r\n};\r\n\r\nexport const getDeviceInfo = (): DeviceInfo => {\r\n const userAgent = navigator.userAgent;\r\n const isMobile = /Mobile/.test(userAgent);\r\n const isBrowserMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\r\n userAgent\r\n );\r\n\r\n const platform = navigator.platform;\r\n let os: OperatingSystem = OperatingSystem.Unknown;\r\n\r\n if (platform.startsWith('Win')) {\r\n os = OperatingSystem.Windows;\r\n } else if (platform.startsWith('Mac')) {\r\n os = OperatingSystem.MacOS;\r\n } else if (platform.startsWith('Linux')) {\r\n os = OperatingSystem.Linux;\r\n } else if (\r\n platform.includes('iPhone') ||\r\n platform.includes('iPad') ||\r\n platform.includes('iPod')\r\n ) {\r\n os = OperatingSystem.IOS;\r\n } else if (platform.includes('Android')) {\r\n os = OperatingSystem.Android;\r\n }\r\n\r\n const isBrowserChrome = /Chrome/i.test(userAgent);\r\n const isBrowserFirefox = /Firefox/i.test(userAgent);\r\n const isBrowserSafari = /Safari/i.test(userAgent) && !isBrowserChrome;\r\n\r\n let browser: Browser = Browser.Unknown;\r\n\r\n if (isBrowserChrome) {\r\n browser = Browser.Chrome;\r\n } else if (isBrowserFirefox) {\r\n browser = Browser.Firefox;\r\n } else if (isBrowserSafari) {\r\n browser = Browser.Safari;\r\n }\r\n\r\n const deviceType: DeviceType =\r\n isMobile || isBrowserMobile ? DeviceType.Mobile : DeviceType.Desktop;\r\n\r\n return {\r\n os,\r\n browser,\r\n deviceType\r\n };\r\n};\r\n\r\nexport const getKeyboardModifiers = (event: KeyboardEvent): KeyboardModifiers => {\r\n const deviceInfo = getDeviceInfo();\r\n\r\n let ctrl = false;\r\n let alt = false;\r\n let shift = false;\r\n let parsedKey: string | undefined = undefined;\r\n\r\n if (deviceInfo.os === OperatingSystem.MacOS) {\r\n if (event.shiftKey) {\r\n shift = true;\r\n }\r\n if (event.metaKey) {\r\n ctrl = true;\r\n }\r\n\r\n if (\r\n event.altKey ||\r\n (event.key === 'Alt' && event.location === KeyboardEvent.DOM_KEY_LOCATION_RIGHT)\r\n ) {\r\n alt = true;\r\n }\r\n\r\n if (event.key in optionKeySpecialCharacters || event.key in optionShiftSpecialCombinations) {\r\n alt = true;\r\n // if shift is also pressed check the values\r\n parsedKey = shift\r\n ? optionShiftSpecialCombinations[event.key]\r\n : optionKeySpecialCharacters[event.key];\r\n }\r\n } else {\r\n if (event.ctrlKey) {\r\n ctrl = true;\r\n }\r\n if (event.altKey) {\r\n alt = true;\r\n }\r\n }\r\n\r\n return {\r\n ctrl,\r\n alt,\r\n shift,\r\n parsedKey\r\n };\r\n};\r\n\r\nexport const toBit = (data: unknown): 1 | 0 => {\r\n return !!data ? 1 : 0;\r\n};\r\n","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","/* -------------------------------------------------------------------------- */\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 = (\n entities,\n order,\n operatorId,\n organizationId,\n showInMap = false\n) => ({\n type: types.GEOFENCES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n showInMap\n }\n});\nexport const failFetchingGeofences = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GEOFENCES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingGeofence = (geofenceId) => ({\n type: types.GEOFENCE_FETCH_STARTED,\n payload: geofenceId\n});\n\nexport const completeFetchingGeofence = (geofence, order) => ({\n type: types.GEOFENCE_FETCH_COMPLETED,\n payload: {\n geofence,\n order\n }\n});\n\nexport const failFetchingGeofence = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GEOFENCE_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingGeofences = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingGeofences = (entities, order, operatorId, organizationId) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingGeofences = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingGeofence = (geofence) => ({\n type: types.GEOFENCE_ADD_STARTED,\n payload: geofence\n});\nexport const completeAddingGeofence = (oldId, geofence) => ({\n type: types.GEOFENCE_ADD_COMPLETED,\n payload: { oldId, geofence }\n});\nexport const failAddingGeofence = (oldId, error) => ({\n type: types.GEOFENCE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingGeofence = (geofence) => ({\n type: types.GEOFENCE_EDIT_STARTED,\n payload: geofence\n});\nexport const completeEditingGeofence = (geofence) => ({\n type: types.GEOFENCE_EDIT_COMPLETED,\n payload: geofence\n});\nexport const failEditingGeofence = (oldGeofence, error) => ({\n type: types.GEOFENCE_EDIT_FAILED,\n payload: {\n oldGeofence,\n error\n }\n});\n\nexport const startRemovingGeofence = (geofenceId) => ({\n type: types.GEOFENCE_REMOVE_STARTED,\n payload: {\n geofenceId\n }\n});\nexport const completeRemovingGeofence = (geofenceId) => ({\n type: types.GEOFENCE_REMOVE_COMPLETED,\n payload: {\n geofenceId\n }\n});\nexport const failRemovingGeofence = (geofenceId, error) => ({\n type: types.GEOFENCE_REMOVE_FAILED,\n payload: {\n geofenceId,\n error\n }\n});\n\nexport const startRemovingGeofenceAssignation = (unitGeofences) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_STARTED,\n payload: {\n unitGeofences\n }\n});\n\nexport const startRemovingAllAssignmentsByGeofences = (geofences) => {\n return {\n type: types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED,\n payload: {\n geofences\n }\n };\n};\n\nexport const startRemovingAllAssignmentsByUnits = (units) => {\n return {\n type: types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED,\n payload: {\n units\n }\n };\n};\n\nexport const completeRemovingGeofenceAssignation = (unitGeofences) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_COMPLETED,\n payload: {\n unitGeofences\n }\n});\nexport const failRemovingGeofenceAssignation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditingGeofenceAssignation = (unitGeofenceInfo) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_STARTED,\n payload: {\n unitGeofenceInfo\n }\n});\nexport const completeEditingGeofenceAssignation = (unitGeofenceInfo) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_COMPLETED,\n payload: {\n unitGeofenceInfo\n }\n});\nexport const failEditingGeofenceAssignation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const selectGeofence = (geofenceId) => ({\n type: types.GEOFENCE_SELECTED,\n payload: geofenceId\n});\n\nexport const selectAllGeofences = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_SELECTED,\n payload: geofenceIds\n});\n\nexport const deselectGeofence = (geofenceId) => ({\n type: types.GEOFENCE_DESELECTED,\n payload: geofenceId\n});\n\nexport const deselectAllGeofences = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_DESELECTED,\n payload: geofenceIds\n});\n\nexport const showGeofenceInMap = (geofenceId) => ({\n type: types.GEOFENCE_SHOW_IN_MAP,\n payload: geofenceId\n});\n\nexport const showAllGeofencesInMap = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_SHOW_IN_MAP,\n payload: geofenceIds\n});\n\nexport const hideGeofenceInMap = (geofenceId) => ({\n type: types.GEOFENCE_HIDE_IN_MAP,\n payload: geofenceId\n});\n\nexport const hideAllGeofencesInMap = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_HIDE_IN_MAP,\n payload: geofenceIds\n});\n\nexport const startAssignUnitsGeofences = (assignation) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitsGeofences = (assignation) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitsGeofences = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","export const ROUTES_ASSIGNMENTS_FETCH_STARTED = 'ROUTES_ASSIGNMENTS_FETCH_STARTED';\nexport const ROUTES_ASSIGNMENTS_FETCH_COMPLETED = 'ROUTES_ASSIGNMENTS_FETCH_COMPLETED';\nexport const ROUTES_ASSIGNMENTS_FETCH_FAILED = 'ROUTES_ASSIGNMENTS_FETCH_FAILED';\n\nexport const ROUTES_ASSIGNMENT_EDIT_STARTED = 'ROUTES_ASSIGNMENT_EDIT_STARTED';\nexport const ROUTES_ASSIGNMENT_EDIT_COMPLETED = 'ROUTES_ASSIGNMENT_EDIT_COMPLETED';\nexport const ROUTES_ASSIGNMENT_EDIT_FAILED = 'ROUTES_ASSIGNMENT_EDIT_FAILED';\n\nexport const ROUTES_ASSIGNMENT_REMOVE_STARTED = 'ROUTES_ASSIGNMENT_REMOVE_STARTED';\nexport const ROUTES_ASSIGNMENT_REMOVE_COMPLETED = 'ROUTES_ASSIGNMENT_REMOVE_COMPLETED';\nexport const ROUTES_ASSIGNMENT_REMOVE_FAILED = 'ROUTES_ASSIGNMENT_REMOVE_FAILED';\n\nexport const ROUTES_ASSIGNMENTS_IMPORT_STARTED = 'ROUTES_ASSIGNMENTS_IMPORT_STARTED';\nexport const ROUTES_ASSIGNMENTS_IMPORT_COMPLETED = 'ROUTES_ASSIGNMENTS_IMPORT_COMPLETED';\nexport const ROUTES_ASSIGNMENTS_IMPORT_FAILED = 'ROUTES_ASSIGNMENTS_IMPORT_FAILED';\n","export const WORKPLANS_EXECUTION_LOCATION_ADD_STARTED = 'WORKPLANS_EXECUTION_LOCATION_ADD_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_ADD_FAILED = 'WORKPLANS_EXECUTION_LOCATION_ADD_FAILED';\n\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED =\n 'WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED = 'WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED';\n","export const WORKPLAN_COMMENTS_FETCH_STARTED = 'WORKPLAN_COMMENTS_FETCH_STARTED';\nexport const WORKPLAN_COMMENTS_FETCH_COMPLETED = 'WORKPLAN_COMMENTS_FETCH_COMPLETED';\nexport const WORKPLAN_COMMENTS_FETCH_FAILED = 'WORKPLAN_COMMENTS_FETCH_FAILED';\n\nexport const WORKPLAN_COMMENT_ADD_STARTED = 'WORKPLAN_COMMENT_ADD_STARTED';\nexport const WORKPLAN_COMMENT_ADD_COMPLETED = 'WORKPLAN_COMMENT_ADD_COMPLETED';\nexport const WORKPLAN_COMMENT_ADD_FAILED = 'WORKPLAN_COMMENT_ADD_FAILED';\n\nexport const WORKPLAN_COMMENT_REMOVE_STARTED = 'WORKPLAN_COMMENT_REMOVE_STARTED';\nexport const WORKPLAN_COMMENT_REMOVE_COMPLETED = 'WORKPLAN_COMMENT_REMOVE_COMPLETED';\nexport const WORKPLAN_COMMENT_REMOVE_FAILED = 'WORKPLAN_COMMENT_REMOVE_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport { persistReducer } from 'redux-persist';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.GEOFENCES_FETCH_COMPLETED: {\n const { entities, order, showInMap } = action.payload;\n const newState = {};\n order.forEach((geofenceId) => {\n newState[geofenceId] = {\n isSelected: false,\n isShowInMap: showInMap,\n ...state[geofenceId],\n ...entities[geofenceId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.GEOFENCE_FETCH_COMPLETED: {\n const { geofence } = action.payload;\n return {\n ...state,\n [geofence.geofenceId]: {\n ...state[geofence.geofenceId],\n ...geofence,\n isConfirmed: false,\n isShownInMap: false,\n isSelected: true\n }\n };\n }\n\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((geofenceId) => {\n newState[geofenceId] = {\n isSelected: false,\n isShowInMap: false,\n ...state[geofenceId],\n ...entities[geofenceId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.GEOFENCE_ADD_COMPLETED: {\n const { oldId, geofence } = action.payload;\n const newState = omit(state, oldId);\n newState[geofence.geofenceId] = {\n isShowInMap: false,\n ...state[oldId],\n ...geofence,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.GEOFENCE_EDIT_COMPLETED: {\n const geofence = action.payload;\n return {\n ...state,\n [geofence.geofenceId]: {\n isShowInMap: false,\n ...omit(state[geofence.geofenceId], ['oldGeofence']),\n ...omit(geofence, ['oldGeofence']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n const newState = { ...state };\n newState[geofence.geofenceId] = {\n isShowInMap: false,\n isSelected: false,\n ...geofence,\n isConfirmed: false\n };\n return newState;\n }\n case types.GEOFENCE_EDIT_STARTED: {\n const geofence = action.payload;\n return {\n ...state,\n [geofence.geofenceId]: {\n isShowInMap: false,\n ...state[geofence.geofenceId],\n oldGeofence: state[geofence.geofenceId],\n ...geofence,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.GEOFENCE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.GEOFENCE_EDIT_FAILED: {\n const { oldGeofence } = action.payload;\n return {\n ...state,\n [oldGeofence.geofenceId]: {\n isShowInMap: false,\n ...omit(state[oldGeofence.geofenceId], ['oldGeofence']),\n ...oldGeofence,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.GEOFENCE_REMOVE_COMPLETED: {\n const { geofenceId } = action.payload;\n return omit(state, geofenceId);\n }\n\n //TYPES SHOW AND HIDE GEOFENCES IN MAP\n case types.GEOFENCE_SHOW_IN_MAP: {\n const geofenceId = action.payload;\n const newState = {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.GEOFENCE_HIDE_IN_MAP: {\n const geofenceId = action.payload;\n return {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isShownInMap: false\n }\n };\n }\n\n case types.GEOFENCES_ALL_SHOW_IN_MAP: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isShownInMap: true\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GEOFENCES_ALL_HIDE_IN_MAP: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isShownInMap: false\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.GEOFENCE_SELECTED: {\n const geofenceId = action.payload;\n const newState = {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.GEOFENCE_DESELECTED: {\n const geofenceId = action.payload;\n return {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isSelected: false\n }\n };\n }\n\n case types.GEOFENCES_ALL_SELECTED: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isSelected: true\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GEOFENCES_ALL_DESELECTED: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isSelected: false\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.GEOFENCES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.GEOFENCE_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GEOFENCE_ADD_COMPLETED: {\n const { oldId, geofence } = action.payload;\n return state.map((geofenceId) => (geofenceId === oldId ? geofence.geofenceId : geofenceId));\n }\n\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n return [...state, geofence.geofenceId];\n }\n\n case types.GEOFENCE_REMOVE_COMPLETED: {\n const { geofenceId } = action.payload;\n return state.filter((geofenceIdState) => geofenceIdState !== geofenceId);\n }\n\n //CASE ADD STARTED\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n return [...state, geofence.geofenceId];\n }\n\n //CASE ADD FAILED\n case types.GEOFENCE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((geofenceIdState) => geofenceIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCES_FETCH_STARTED: {\n return true;\n }\n case types.GEOFENCES_FETCH_COMPLETED:\n case types.GEOFENCES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingGeofence = (state = false, action) => {\n switch (action.type) {\n case types.GEOFENCE_FETCH_STARTED: {\n return true;\n }\n case types.GEOFENCE_FETCH_COMPLETED:\n case types.GEOFENCE_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED:\n case types.GEOFENCES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ADD_STARTED: {\n return true;\n }\n case types.GEOFENCE_ADD_COMPLETED:\n case types.GEOFENCE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ASSIGNATION_EDIT_STARTED:\n case types.GEOFENCE_EDIT_STARTED: {\n return true;\n }\n case types.GEOFENCE_EDIT_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_EDIT_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_EDIT_FAILED:\n case types.GEOFENCE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ASSIGNATION_REMOVE_STARTED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED:\n case types.GEOFENCE_REMOVE_STARTED: {\n return true;\n }\n case types.GEOFENCE_ASSIGNATION_REMOVE_COMPLETED:\n case types.GEOFENCE_REMOVE_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_FAILED:\n case types.GEOFENCE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCES_FETCH_STARTED:\n case types.GEOFENCES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCES_PARTIAL_FETCH_STARTED:\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_ADD_STARTED:\n case types.GEOFENCE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_EDIT_STARTED:\n case types.GEOFENCE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_REMOVE_STARTED:\n case types.GEOFENCE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst geofences: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n isFetchingGeofence\n});\n\nconst geofencesPersistedConfig = {\n key: 'geofences',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(geofencesPersistedConfig, geofences);\n\n//Own state\nexport const getOwnState = (state) => state.geofences;\n\n//Information\nexport const getGeofence = (state, geofenceId) => {\n const geofence = getOwnState(state).byId[geofenceId];\n if (geofence) {\n const organization = geofence.organizationId\n ? organizationSelectors.getOrganization(state, geofence.organizationId)\n : undefined;\n const division = geofence.divisionId\n ? divisionSelectors.getDivision(state, geofence.divisionId)\n : undefined;\n const subdivision = geofence.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, geofence.subdivisionId)\n : undefined;\n return {\n ...geofence,\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.geofenceStatus > 0);\nexport const getParentGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.isParentGeofence);\nexport const getSubGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.isParentGeofence === false && geofence.parentGeofenceId != null);\n\nexport const getGeofenceByPrivateCode = (satate, privateCode) => {\n return getGeofencesList(satate).find((geofence) => geofence.privateCode === privateCode);\n};\nexport const getGeofencesListByMembership = (state, membership, geofencesList: any = null) => {\n if (!geofencesList) geofencesList = getGeofencesList(state);\n return geofencesList.filter(\n (geofence) =>\n membership &&\n (!membership.operatorId || membership.operatorId === geofence.operatorId) &&\n (!membership.organizationId || membership.organizationId === geofence.organizationId) &&\n (!membership.divisionId || membership.divisionId === geofence.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === geofence.subdivisionId) &&\n (!membership.groupId ||\n geofence.groups?.split(',').includes(String(membership.groupId)) ||\n membership.groupId + '' === geofence.groups)\n );\n};\nexport const getGeofenceByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n return getGeofencesListByMembership(state, membership).find(\n (geofence) => geofence.privateCode === privateCode\n );\n};\nexport const getParentGeofencesListByMembership = (state, membership) =>\n getGeofencesListByMembership(state, membership, getParentGeofencesList(state));\nexport const getSubGeofencesListByMembership = (state, membership) =>\n getGeofencesListByMembership(state, membership, getSubGeofencesList(state));\nexport const getSelectedGeofences = (state) => {\n const selectedGeofences = getGeofencesList(state).filter((geofence) => geofence.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedGeofences.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedGeofences.length > 0) return selectedGeofences;\n};\n\nexport const getSelectedGeofence = (state) => {\n const selectedGeofences = getGeofencesList(state).filter((geofence) => geofence.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedGeofences.length === 1) return selectedGeofences[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListGeofences = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListGeofences = (state) => getOwnState(state).isFetchingList;\nexport const isAddingGeofence = (state) => getOwnState(state).isAdding;\nexport const isEditingGeofence = (state) => getOwnState(state).isEditing;\nexport const isRemovingGeofence = (state) => getOwnState(state).isRemoving;\nexport const isFetchingGeofenceById = (state) => getOwnState(state).isFetchingGeofence;\n\n//Errors\nexport const getPartialFetchingListGeofencesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListGeofencesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingGeofenceErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingGeofenceErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingGeofenceErrors = (state) => getOwnState(state).errorRemoving;\n","/* -------------------------------------------------------------------------- */\n/* Acciones del reductor Auth */\n/* -------------------------------------------------------------------------- */\n\nimport * as types from '../../types/auth';\n\nexport const startLogin = ({ username, password }) => ({\n type: types.AUTHENTICATION_STARTED,\n payload: { username, password }\n});\n\nexport const completeLogin = (token) => ({\n type: types.AUTHENTICATION_COMPLETED,\n payload: { token }\n});\n\nexport const failLogin = (error) => ({\n type: types.AUTHENTICATION_FAILED,\n payload: { error }\n});\n\nexport const clearLoginError = () => ({\n type: types.AUTHENTICATION_FAILED_CLEAR\n});\n\nexport const logout = () => ({\n type: types.AUTHENTICATION_IDENTITY_CLEARED\n});\n\nexport const setSessionMembership = (membership = {}) => ({\n type: types.AUTHENTICATION_SET_MEMBERSHIP,\n payload: membership\n});\n\nexport const authenticationUserInformationStarted = () => ({\n type: types.AUTHENTICATION_USER_INFORMATION_STARTED\n});\n\nexport const authenticationUserInformationCompleted = (user) => ({\n type: types.AUTHENTICATION_USER_INFORMATION_COMPLETED,\n payload: { user }\n});\n\nexport const startRefreshToken = () => ({\n type: types.TOKEN_REFRESH_STARTED\n});\n\nexport const startForceRefreshToken = () => ({\n type: types.TOKEN_REFRESH_FORCE_STARTED\n});\n\nexport const completeRefreshToken = (newToken) => ({\n type: types.TOKEN_REFRESH_COMPLETED,\n payload: { newToken }\n});\n\nexport const failRefreshToken = (error) => ({\n type: types.TOKEN_REFRESH_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileGeneralInformation = (values) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfileGeneralInformation = (values) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfileGeneralInformation = (error) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfilePassword = (values) => ({\n type: types.PROFILE_UPDATE_PASSWORD_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfilePassword = (values) => ({\n type: types.PROFILE_UPDATE_PASSWORD_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfilePassword = (error) => ({\n type: types.PROFILE_UPDATE_PASSWORD_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfilePicture = (values) => ({\n type: types.PROFILE_UPDATE_PICTURE_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfilePicture = (values) => ({\n type: types.PROFILE_UPDATE_PICTURE_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfilePicture = (error) => ({\n type: types.PROFILE_UPDATE_PICTURE_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileHomeScreen = (homeScreenId) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_STARTED,\n payload: homeScreenId\n});\n\nexport const completeUpdatingProfileHomeScreen = (homeScreenId) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED,\n payload: homeScreenId\n});\n\nexport const failUpdatingProfileHomeScreen = (error) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_FAILED,\n payload: { error }\n});\n\nexport const startChangingProduct = (productId) => ({\n type: types.PROFILE_CHANGE_PRODUCT_STARTED,\n payload: productId\n});\n\nexport const completeChangingProduct = (productId) => ({\n type: types.PROFILE_CHANGE_PRODUCT_COMPLETED,\n payload: productId\n});\n\nexport const failChangingProduct = (error) => ({\n type: types.PROFILE_CHANGE_PRODUCT_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileMapOptions = (values) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfileMapOptions = (values) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfileMapOptions = (error) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingMapSettingsConfiguration = (values) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED,\n payload: values\n});\n\nexport const completeUpdatingMapSettingsConfiguration = (values) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingMapSettingsConfiguration = (error) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingMapFilterTabPinned = (mapEntitiesFilterTab) => ({\n type: types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_STARTED,\n payload: mapEntitiesFilterTab\n});\n\nexport const completeUpdatingMapFilterTabPinned = (mapEntitiesFilterTab) => ({\n type: types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_COMPLETED,\n payload: mapEntitiesFilterTab\n});\n\nexport const failUpdatingMapFilterTabPinned = (error) => ({\n type: types.PROFILE_UPDATE_MAP_FILTER_TAB_PINNED_FAILED,\n payload: error\n});\n","import { combineReducers } from 'redux';\nimport moment from 'moment';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as deviceMetricsSelectors from '../deviceMetrics';\nimport * as deviceActionsSelectors from '../deviceActions';\nimport * as groupsSelectors from '../groups';\nimport * as reportsSelectors from '../reports';\nimport * as imagesSelectors from '../images';\nimport * as sensorsSelectors from '../sensors';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { getUnitHeadingFormat } from '../../utils';\nimport { GetMainStateById, GetMainStateName } from 'views/screens/Units/utils';\nimport { UnitLiveStatus } from '../../types/UnitLiveStatusTypes';\nimport { formatHourMeter, numberWithCommas, roundWithEpsilon } from 'utility/Utils';\n\nconst fetchDate = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n return date.toISOString();\n }\n case types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED: {\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n return date.toISOString();\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizationId = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { organizationId } = action.payload;\n return organizationId;\n }\n case types.UNITS_UPDATE_LIVE_STATUS_FETCH_DATE_COMPLETED: {\n const { organizationId } = action.payload;\n return organizationId;\n }\n default: {\n return state;\n }\n }\n};\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNITS_LIVE_STATUS_FETCH_COMPLETED\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n ...entities[unitId]\n };\n });\n return newState;\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const {\n unitId,\n unitData,\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder\n } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n ...unitData,\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder\n };\n return newState;\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED: {\n const { unitId, distance, parkedPositions, polyline, positions } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n historicalPositions: {\n allPositions: [...(positions || []), ...(parkedPositions || [])],\n distance,\n parkedPositions,\n polyline,\n positions\n }\n };\n return newState;\n }\n case types.UNIT_TRAJECTORY_FETCH_COMPLETED: {\n const { unitId, distance, parkedPositions, polyline, positions } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n trajectory: {\n allPositions: [...(positions || []), ...(parkedPositions || [])],\n distance,\n parkedPositions,\n polyline,\n positions\n }\n };\n return newState;\n }\n case types.UNIT_ACKNOWLEDGE_COMPLETED: {\n const { unitId } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n eventId: 0,\n eventName: 'Normal',\n eventParam: null,\n eventTextColor: null,\n eventColor: 'BBFFAA'\n };\n return newState;\n }\n\n case types.UNIT_EDIT_COMPLETED: {\n const unit = action.payload;\n const oldUnit = state[unit.unitId];\n return {\n ...state,\n [unit.unitId]: {\n ...oldUnit,\n unitName: unit?.unitName ?? oldUnit?.unitName,\n themeId: unit?.themeId ?? oldUnit?.themeId\n }\n };\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNITS_LIVE_STATUS_FETCH_COMPLETED\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { unitId } = action.payload;\n return uniq([...state, unitId]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingLiveStatusList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_LIVE_STATUS_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED:\n case types.UNITS_LIVE_STATUS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingInformation = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_INFORMATION_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED:\n case types.UNIT_INFORMATION_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingPositions = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_POSITIONS_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED:\n case types.UNIT_POSITIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingTrajectory = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_TRAJECTORY_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_TRAJECTORY_FETCH_COMPLETED:\n case types.UNIT_TRAJECTORY_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAcknowledgeEvent = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_ACKNOWLEDGE_STARTED: {\n return true;\n }\n case types.UNIT_ACKNOWLEDGE_COMPLETED:\n case types.UNIT_ACKNOWLEDGE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchedPosition = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.UNIT_POSITIONS_FETCH_STARTED: {\n const { unitId } = action.payload;\n const newState = { ...state };\n return { [unitId]: newState[unitId] ?? false };\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED: {\n const { unitId } = action.payload;\n return { [unitId]: true };\n }\n case types.UNIT_POSITIONS_FETCH_FAILED:\n case types.UNIT_POSITIONS_RESET_IS_FETCHED: {\n return {};\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingLiveStatusList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_LIVE_STATUS_FETCH_STARTED:\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingInformation = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_INFORMATION_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_INFORMATION_FETCH_STARTED:\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingInformation = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_ACTIVE_STARTED:\n case types.UNITS_ASSIGN_DRIVER_STARTED:\n case types.UNIT_EDIT_STARTED: {\n return true;\n }\n case types.UNITS_ACTIVE_COMPLETED:\n case types.UNIT_EDIT_COMPLETED:\n case types.UNITS_ASSIGN_DRIVER_COMPLETED:\n case types.UNITS_ACTIVE_FAILED:\n case types.UNIT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingInformation = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_EDIT_STARTED:\n case types.UNIT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst unitLiveStatus = combineReducers({\n fetchDate,\n organizationId,\n byId,\n order,\n isFetchingLiveStatusList,\n isFetchingInformation,\n isFetchingPositions,\n isAcknowledgeEvent,\n isFetchedPosition,\n errorFetchingLiveStatusList,\n errorFetchingInformation,\n errorEditingInformation,\n isFetchingTrajectory\n});\n\nexport default unitLiveStatus;\n\n//Own state\nexport const getOwnState = (state) => state.units.unitLiveStatus;\n\n//Information\nexport const getFetchDate = (state, organizationId) =>\n getOwnState(state).organizationId === organizationId ? getOwnState(state).fetchDate : undefined;\nexport const getUnit = (state, unitId): UnitLiveStatus | null => {\n const intl = appIntl();\n const unit = getOwnState(state).byId[unitId];\n if (unit) {\n const {\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder,\n ...unitLiveStatus\n } = unit;\n const speedFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(\n unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed\n )\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).speed;\n\n const odometerFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(unitLiveStatus.odometer)\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance;\n return {\n ...unitLiveStatus,\n speedLimit: authSelectors.getParsers(state).convertKilometersToAuthUserDistanceSystem(240),\n odometerFormat,\n hourMeterFormat: formatHourMeter(unitLiveStatus.hourMeter),\n mainStateId: unitLiveStatus.mainStateId || 0,\n mainState: GetMainStateById(unitLiveStatus.mainStateId),\n mainStateName: GetMainStateName(\n GetMainStateById(unitLiveStatus.mainStateId),\n intl.formatMessage({ id: GetMainStateById(unitLiveStatus.mainStateId).intl }),\n unitLiveStatus.mainStateDate,\n speedFormat,\n unitLiveStatus.downtimeReasonDescription,\n moment(unitLiveStatus.mainStateDate).fromNow()\n ),\n speed: unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed,\n speedFormat,\n headingFormat: intl.formatMessage({\n id: getUnitHeadingFormat(unitLiveStatus.heading)\n }),\n historicalPositions: {\n allPositions: unitLiveStatus?.historicalPositions?.allPositions || [],\n distance: unitLiveStatus?.historicalPositions?.distance || 0,\n parkedPositions: unitLiveStatus?.historicalPositions?.parkedPositions || [],\n polyline: unitLiveStatus?.historicalPositions?.polyline || [],\n positions: unitLiveStatus?.historicalPositions?.positions || [],\n distanceFormat:\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(\n unitLiveStatus?.historicalPositions?.distance || 0\n )\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance\n },\n deviceMetrics: deviceMetricsOrder\n ? deviceMetricsOrder.map((id) => deviceMetricsSelectors.getDeviceMetric(state, id))\n : [],\n deviceActions: deviceActionsOrder\n ? deviceActionsOrder.map((id) => deviceActionsSelectors.getDeviceAction(state, id))\n : [],\n groups: groupsOrder ? groupsOrder.map((id) => groupsSelectors.getGroup(state, id)) : [],\n reports: reportsOrder ? reportsOrder.map((id) => reportsSelectors.getReport(state, id)) : [],\n images: imagesOrder ? imagesOrder.map((id) => imagesSelectors.getImage(state, id)) : [],\n sensors: sensorsOrder ? sensorsOrder.map((id) => sensorsSelectors.getSensor(state, id)) : []\n };\n } else return null;\n};\nexport const getUnitsList = (state): UnitLiveStatus[] =>\n getOwnState(state).order.map((id) => getUnit(state, id));\n\n//Status of sagas\nexport const isFetchingListUnitsLiveStatus = (state) => getOwnState(state).isFetchingLiveStatusList;\nexport const isFetchingUnitInformation = (state) => getOwnState(state).isFetchingInformation;\nexport const isFetchingUnitPositions = (state) => getOwnState(state).isFetchingPositions;\nexport const isFetchingUnitTrajectory = (state) => getOwnState(state).isFetchingTrajectory;\nexport const isAcknowledgeUnitEvent = (state) => getOwnState(state).isAcknowledgeEvent;\nexport const isFetchedUnitPosition = (state, unitId) =>\n getOwnState(state).isFetchedPosition[unitId] ?? false;\n\n//Errors\nexport const getFetchingListUnitsLiveStatusErrors = (state) =>\n getOwnState(state).errorFetchingLiveStatusList;\nexport const getFetchingUnitInformationErrors = (state) =>\n getOwnState(state).errorFetchingInformation;\n","import forEach from 'lodash/forEach';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\nimport { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport localforage from 'localforage';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport unitLiveStatus, * as selectorsUnitLiveStatus from './unitLiveStatus';\nimport deviceMetrics from './deviceMetrics';\nimport deviceActions from './deviceActions';\nimport groups from './groups';\nimport reports from './reports';\nimport images from './images';\nimport sensors from './sensors';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport { areNotNullOrUndefined } from 'utility/Utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.UNITS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.UNIT_FETCH_COMPLETED: {\n const { unit } = action.payload;\n return {\n ...state,\n [unit.unitId]: {\n ...state[unit.unitId],\n ...unit,\n isConfirmed: false,\n isShownInMap: false,\n isSelected: true\n }\n };\n }\n\n case types.UNIT_ADD_COMPLETED: {\n const { oldId, unit } = action.payload;\n const newState = omit(state, oldId);\n newState[unit.unitId] = {\n isShownInMap: false,\n ...state[oldId],\n ...unit,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.UNITS_ACTIVE_COMPLETED: {\n const units = action.payload;\n const newState = { ...state };\n units.forEach((unit) => {\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...unit,\n isConfirmed: false\n };\n });\n return newState;\n }\n\n case types.UNIT_EDIT_COMPLETED: {\n const unit = action.payload;\n return {\n ...state,\n [unit.unitId]: {\n isShownInMap: false,\n ...omit(state[unit.unitId], ['oldUnit']),\n ...omit(unit, ['oldUnit']),\n isConfirmed: true\n }\n };\n }\n\n case types.UNITS_ASSIGN_DRIVER_COMPLETED: {\n const units = action.payload;\n const newState = { ...state };\n units.forEach((unit) => {\n newState[unit.unitId] = {\n ...state[unit.unitId],\n driverId: unit.driverId\n };\n });\n return newState;\n }\n\n case types.UNIT_START_DOWNTIME_COMPLETED: {\n const { unitId, reasonId, reasonDescription } = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n downtimeReasonId: reasonId,\n downtimeReasonDescription: reasonDescription\n }\n };\n }\n\n case types.UNIT_END_DOWNTIME_COMPLETED: {\n const { unitId, mainStateId } = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n downtimeReasonId: null,\n downtimeReasonDescription: null\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.UNIT_ADD_TO_STATE: {\n const unit = action.payload;\n const newState = { ...state };\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...newState[unit.unitId],\n ...unit,\n isConfirmed: true\n };\n return newState;\n }\n case types.UNIT_ADD_STARTED: {\n const unit = action.payload;\n const newState = { ...state };\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...unit,\n isConfirmed: false\n };\n return newState;\n }\n case types.UNIT_EDIT_STARTED: {\n const unit = action.payload;\n return {\n ...state,\n [unit.unitId]: {\n isShownInMap: false,\n ...state[unit.unitId],\n oldUnit: state[unit.unitId],\n ...unit,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.UNIT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.UNIT_EDIT_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n // EDIT DEVICE\n case types.UNIT_UPDATE_DEVICE_STARTED: {\n const { unitId } = action.payload;\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n oldUnit: state[unitId],\n isConfirmed: false\n }\n };\n }\n\n case types.UNIT_UPDATE_DEVICE_COMPLETED: {\n const { unitId, deviceId, deviceModelName, deviceIdentifier, brandName } = action.payload;\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n deviceModelName: deviceModelName,\n deviceIdentifier: deviceIdentifier,\n brandName: brandName,\n deviceId,\n isConfirmed: true\n }\n };\n }\n\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n // update sim\n case types.UNIT_UPDATE_SIM_STARTED: {\n const { unitId, simId } = action.payload;\n\n const newUnit: types.ReduxUnit = {\n ...state[unitId],\n oldUnit: state[unitId],\n simCardId: simId,\n isConfirmed: false\n };\n\n return {\n ...state,\n [unitId]: newUnit\n };\n }\n\n case types.UNIT_UPDATE_SIM_COMPLETED: {\n const changes = action.payload?.changes;\n\n const unitId = changes?.unitId ?? null;\n const unitPublicId = changes?.unitPublicId ?? null;\n const simCardId = changes?.simCardId;\n const imsi = changes?.imsi ?? null;\n const cellularNumber = changes?.cellularNumber ?? null;\n const mobileOperatorId = changes?.mobileOperatorId ?? null;\n const mobileOperatorName = changes?.mobileOperatorName ?? null;\n\n if (unitId === null) {\n return {\n ...state\n };\n }\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n unitPublicId,\n simCardId,\n imsi,\n cellularNumber,\n mobileOperatorId,\n mobileOperatorName,\n isConfirmed: true\n }\n };\n }\n\n case types.UNIT_UPDATE_SIM_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.UNIT_REMOVE_COMPLETED: {\n const unitBody = action.payload;\n const newState = { ...state };\n unitBody?.units?.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n unitStatus: 0,\n unitStatusName: 'Desactivado'\n };\n });\n return newState;\n }\n\n //TYPES SHOW AND HIDE UNITS IN MAP\n case types.UNIT_SHOW_IN_MAP: {\n const unitId = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.UNIT_HIDE_IN_MAP: {\n const unitId = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n isShownInMap: false\n }\n };\n }\n\n case types.UNITS_ALL_SHOW_IN_MAP: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isShownInMap: true\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.UNITS_ALL_HIDE_IN_MAP: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isShownInMap: false\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n case types.SET_DATE_RANGE: {\n const { unitId, dateRange } = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n dateRange: dateRange\n }\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.UNIT_SELECTED: {\n const unitId = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.UNIT_DESELECTED: {\n const unitId = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n isSelected: false\n }\n };\n }\n\n case types.UNITS_ALL_SELECTED: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isSelected: true\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.UNITS_ALL_DESELECTED: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isSelected: false\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.UNITS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.UNIT_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.UNIT_ADD_COMPLETED: {\n const { oldId, unit } = action.payload;\n return state\n .map((unitId) => (unitId === oldId ? unit.unitId : unitId))\n .filter((unitId) => unitId !== null);\n }\n\n case types.UNITS_ACTIVE_COMPLETED: {\n const units = action.payload;\n return [...state, ...units.map((unit) => unit.unitId)];\n }\n\n case types.UNIT_REMOVE_COMPLETED: {\n const unitBody = action.payload;\n //return state.filter((unitIdState) => unitBody.units.map((unitId) => unitIdState !== unitId));\n return state;\n }\n\n case types.UNIT_ADD_TO_STATE: {\n const unit = action.payload;\n return [...state.filter((unitId) => unitId !== unit.unitId), unit.unitId];\n }\n\n //CASE ADD STARTED\n case types.UNIT_ADD_STARTED: {\n const unit = action.payload;\n return [...state, unit.unitId];\n }\n\n //CASE ADD FAILED\n case types.UNIT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((unitIdState) => unitIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_FETCH_COMPLETED:\n case types.UNITS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingUnit = (state = false, action) => {\n switch (action.type) {\n case types.UNIT_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_FETCH_COMPLETED:\n case types.UNIT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_PARTIAL_FETCH_COMPLETED:\n case types.UNITS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_ADD_STARTED: {\n return true;\n }\n case types.UNIT_ADD_COMPLETED:\n case types.UNIT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingDevice = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_UPDATE_DEVICE_STARTED: {\n return true;\n }\n case types.UNIT_UPDATE_DEVICE_COMPLETED:\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingSimCard = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_UPDATE_SIM_STARTED: {\n return true;\n }\n case types.UNIT_UPDATE_SIM_COMPLETED:\n case types.UNIT_UPDATE_SIM_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_ACTIVE_STARTED: {\n return true;\n }\n case types.UNITS_ASSIGN_DRIVER_STARTED:\n case types.UNIT_EDIT_STARTED: {\n return true;\n }\n case types.UNITS_ACTIVE_COMPLETED:\n case types.UNIT_EDIT_COMPLETED:\n case types.UNITS_ASSIGN_DRIVER_COMPLETED:\n case types.UNITS_ACTIVE_FAILED:\n case types.UNIT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingDowntime = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_START_DOWNTIME_STARTED:\n case types.UNIT_END_DOWNTIME_STARTED: {\n return true;\n }\n case types.UNIT_START_DOWNTIME_COMPLETED:\n case types.UNIT_START_DOWNTIME_FAILED:\n case types.UNIT_END_DOWNTIME_COMPLETED:\n case types.UNIT_END_DOWNTIME_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_REMOVE_STARTED: {\n return true;\n }\n case types.UNIT_REMOVE_COMPLETED:\n case types.UNIT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCreatingSharedLink = (state = false, action) => {\n switch (action.type) {\n case types.UNIT_CREATE_SHARE_LINK_STARTED: {\n return true;\n }\n case types.UNIT_CREATE_SHARE_LINK_COMPLETED:\n case types.UNIT_CREATE_SHARE_LINK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sharedLink = (state = '', action) => {\n switch (action.type) {\n case types.UNIT_CLEAR_SHARE_LINK:\n case types.UNIT_CREATE_SHARE_LINK_FAILED:\n case types.UNIT_CREATE_SHARE_LINK_STARTED: {\n return '';\n }\n case types.UNIT_CREATE_SHARE_LINK_COMPLETED: {\n return action.payload;\n }\n default: {\n return state;\n }\n }\n};\n\nconst oldMainStateIds = (state = [], action) => {\n switch (action.type) {\n case types.UNIT_END_DOWNTIME_FAILED:\n case types.UNIT_END_DOWNTIME_STARTED: {\n return [];\n }\n case types.UNIT_END_DOWNTIME_COMPLETED: {\n return [\n {\n unitId: action.payload?.unitId,\n mainStateId: action.payload?.mainStateId,\n mainStateDate: action.payload?.mainStateDate\n }\n ];\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_FETCH_STARTED:\n case types.UNITS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_PARTIAL_FETCH_STARTED:\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_ADD_STARTED:\n case types.UNIT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorUpdatingDevice = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_UPDATE_DEVICE_STARTED:\n case types.UNIT_UPDATE_DEVICE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_EDIT_STARTED:\n case types.UNIT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_REMOVE_STARTED:\n case types.UNIT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst units: any = combineReducers({\n byId,\n order,\n unitLiveStatus,\n deviceMetrics,\n deviceActions,\n groups,\n reports,\n images,\n sensors,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isEditingDowntime,\n isRemoving,\n isCreatingSharedLink,\n sharedLink,\n oldMainStateIds,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched,\n errorUpdatingDevice,\n isUpdatingDevice,\n isFetchingUnit,\n isUpdatingSimCard\n});\n\nconst unitsPersistedConfig = {\n key: 'units',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'deviceMetrics',\n 'deviceActions',\n 'groups',\n 'reports',\n 'images',\n 'sensors',\n 'isPartialFetchingList',\n 'isFetchingList',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isCreatingSharedLink',\n 'sharedLink',\n 'errorPartialFetchingList',\n 'errorFetchingList',\n 'errorAdding',\n 'errorEditing',\n 'errorRemoving',\n 'hasAlreadyFetched'\n ],\n whitelist: ['byId', 'order', 'unitLiveStatus']\n // blackList: [],\n};\nexport default persistReducer(unitsPersistedConfig, units);\n\n//Own state\nexport const getOwnState = (state) => state.units;\n\nexport const isCreatingSharedLinkUnit = (state) => getOwnState(state).isCreatingSharedLink;\n\nexport const sharedLinkUnit = (state) => getOwnState(state).sharedLink;\n\nexport const oldUnitMainStateIds = (state) => getOwnState(state).oldMainStateIds;\n\n//Information\nexport const getUnit = (state, unitId): types.ReduxUnit | undefined => {\n const unit = getOwnState(state).byId[unitId];\n if (unit) {\n const operator = unit.operatorId\n ? operatorSelectors.getOperator(state, unit.operatorId)\n : undefined;\n const organization = unit.organizationId\n ? organizationSelectors.getOrganization(state, unit.organizationId)\n : undefined;\n const division = unit.divisionId\n ? divisionSelectors.getDivision(state, unit.divisionId)\n : undefined;\n const subdivision = unit.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, unit.subdivisionId)\n : undefined;\n const unitLiveStatus = unit.unitId ? getUnitLiveStatus(state, unit.unitId) : {};\n return {\n ...unit,\n ...unitLiveStatus,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getUnitsList = (state): types.ReduxUnit[] =>\n getOwnState(state).order.map((id) => getUnit(state, id));\nexport const getUnitsSpecificList = (state, list) => list.map((id) => getUnit(state, id));\nexport const getActiveUnitsList = (state) =>\n getOwnState(state)\n .order.map((id) => getUnit(state, id))\n .filter((unit) => unit.unitStatus > 0);\nexport const getActiveUnitsListByMembership = (state, membership) => {\n return getUnitsList(state).filter(\n (unit) =>\n membership &&\n (!membership.operatorId || membership.operatorId === unit.operatorId) &&\n (!membership.organizationId || membership.organizationId === unit.organizationId) &&\n (!membership.divisionId || membership.divisionId === unit.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === unit.subdivisionId) &&\n unit.unitStatus > 0\n );\n};\nexport const getActiveUnitsListByPartialMembership = (state, membership: DefaultFilters) => {\n if (Object.values(membership).length < 0 || areNotNullOrUndefined(...Object.values(membership))) {\n return [];\n }\n\n const useOperator = !!membership.operatorId;\n const useOrganization = !!membership?.organizationId;\n const useDivision = !!membership.divisionId;\n const useSubdivision = !!membership.subdivisionId;\n\n const filterUnit = (unit: types.ReduxUnit) => {\n if (useOperator) {\n const validOrganization = unit.operatorId === membership.operatorId;\n if (!validOrganization) return false;\n }\n\n if (useOrganization) {\n const validOrganization = unit.organizationId === membership.organizationId;\n if (!validOrganization) return false;\n }\n\n if (useDivision) {\n const validDivision = unit.divisionId === membership.divisionId;\n if (!validDivision) return false;\n }\n\n if (useSubdivision) {\n const validSubdivision = unit.subdivisionId === membership.subdivisionId;\n if (!validSubdivision) return false;\n }\n\n const isActive = unit.unitStatus > 0;\n\n return isActive;\n };\n\n return getUnitsList(state).filter(filterUnit);\n};\nexport const getSelectedUnits = (state) => {\n const selectedUnits = getUnitsList(state).filter((unit) => unit.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedUnits.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedUnits.length > 0) return selectedUnits;\n};\nexport const getUnitByPrivateCode = (state: any, privateCode: string) => {\n const unit = getUnitsList(state).find((unit) => unit?.privateCode === privateCode);\n if (unit) {\n const operator = unit.operatorId\n ? operatorSelectors.getOperator(state, unit.operatorId)\n : undefined;\n const organization = unit.organizationId\n ? organizationSelectors.getOrganization(state, unit.organizationId)\n : undefined;\n const division = unit.divisionId\n ? divisionSelectors.getDivision(state, unit.divisionId)\n : undefined;\n const subdivision = unit.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, unit.subdivisionId)\n : undefined;\n const unitLiveStatus = unit.unitId ? getUnitLiveStatus(state, unit.unitId) : {};\n return {\n ...unit,\n ...unitLiveStatus,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getUnitByIdOrPrivateCode = (state: any, unitId: number, privateCode: string) => {\n if (unitId !== null && unitId !== undefined) {\n const unit = getUnit(state, unitId);\n if (unit) return { ...unit, privateCode: unit?.privateCode ?? '' };\n }\n\n if (\n privateCode !== null &&\n privateCode !== undefined &&\n privateCode !== '' &&\n !/^\\s*$/.test(privateCode)\n ) {\n const unit = getUnitByPrivateCode(state, privateCode);\n if (unit) return { ...unit };\n }\n};\n\nexport const getSelectedUnit = (state) => {\n const selectedUnits = getUnitsList(state).filter((unit) => unit.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedUnits.length === 1) return selectedUnits[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListUnits = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListUnits = (state) => getOwnState(state).isFetchingList;\nexport const haveUnitsBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingUnit = (state) => getOwnState(state).isAdding;\nexport const isEditingUnit = (state) => getOwnState(state).isEditing;\nexport const isEditingUnitDowntime = (state) => getOwnState(state).isEditingDowntime;\nexport const isRemovingUnit = (state) => getOwnState(state).isRemoving;\nexport const isFetchingUnitById = (state) => getOwnState(state).isFetchingUnit;\nexport const isEditingSimCard = (state) => getOwnState(state).isUpdatingSimCard;\nexport const isEditingDevice = (state) => getOwnState(state).isUpdatingDevice;\n\n//Errors\nexport const getPartialFetchingListUnitsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListUnitsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingUnitErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingUnitErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingUnitErrors = (state) => getOwnState(state).errorRemoving;\n\n/* -------------------------------------------------------------------------- */\n/* UNIT LIVE STATUS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getUnitLiveFetchDate = (state, organizationId) =>\n selectorsUnitLiveStatus.getFetchDate(state, organizationId);\nexport const getUnitLiveStatus = (state, unitId) => selectorsUnitLiveStatus.getUnit(state, unitId);\nexport const getUnitsLiveStatusList = (state) => selectorsUnitLiveStatus.getUnitsList(state);\n\n//Status of sagas\nexport const isFetchingListUnitsLiveStatus = (state) =>\n selectorsUnitLiveStatus.isFetchingListUnitsLiveStatus(state);\nexport const isFetchingUnitInformation = (state) =>\n selectorsUnitLiveStatus.isFetchingUnitInformation(state);\nexport const isFetchingUnitPositions = (state) =>\n selectorsUnitLiveStatus.isFetchingUnitPositions(state);\nexport const isAcknowledgeUnitEvent = (state) =>\n selectorsUnitLiveStatus.isAcknowledgeUnitEvent(state);\nexport const isFetchedUnitPosition = (state, unitId) =>\n selectorsUnitLiveStatus.isFetchedUnitPosition(state, unitId);\nexport const isFetchingUnitTrajectory = (state) =>\n selectorsUnitLiveStatus.isFetchingUnitTrajectory(state);\n\n//Errors\nexport const getFetchingListUnitsLiveStatusErrors = (state) =>\n selectorsUnitLiveStatus.getFetchingListUnitsLiveStatusErrors(state);\nexport const getFetchingUnitInformationErrors = (state) =>\n selectorsUnitLiveStatus.getFetchingUnitInformationErrors(state);\n","import * as types from '../types';\n\nexport const startFetchingQuotations = (filters = {}) => ({\n type: types.QUOTATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingQuotations = (entities, order, operatorId, organizationId) => ({\n type: types.QUOTATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingQuotations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.QUOTATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingQuotations = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n allowNullOrganizationId\n) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId, allowNullOrganizationId }\n});\nexport const completePartialFetchingQuotations = (entities, order, operatorId, organizationId) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingQuotations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingQuotation = (quotation, isSelected = false) => ({\n type: types.QUOTATIONS_ADD_STARTED,\n payload: { quotation, isSelected }\n});\nexport const completeAddingQuotation = (oldId, quotation) => ({\n type: types.QUOTATIONS_ADD_COMPLETED,\n payload: { oldId, quotation }\n});\nexport const failAddingQuotation = (oldId, error) => ({\n type: types.QUOTATIONS_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingQuotation = (quotation) => ({\n type: types.QUOTATIONS_EDIT_STARTED,\n payload: quotation\n});\nexport const completeEditingQuotation = (quotation) => ({\n type: types.QUOTATIONS_EDIT_COMPLETED,\n payload: quotation\n});\nexport const failEditingQuotation = (oldQuotation, error) => ({\n type: types.QUOTATIONS_EDIT_FAILED,\n payload: {\n oldQuotation,\n error\n }\n});\n\nexport const startSchedulingQuotation = (quotation) => ({\n type: types.QUOTATIONS_SCHEDULE_STARTED,\n payload: quotation\n});\nexport const completeSchedulingQuotation = (quotation) => ({\n type: types.QUOTATIONS_SCHEDULE_COMPLETED,\n payload: quotation\n});\nexport const failSchedulingQuotation = (error) => ({\n type: types.QUOTATIONS_EDIT_FAILED,\n payload: {\n error\n }\n});\n\nexport const startCheckingQuotationScheduling = (quotationId, quotationLink) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_STARTED,\n payload: { quotationId, quotationLink }\n});\nexport const completeCheckingQuotationScheduling = (quotation) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED,\n payload: quotation\n});\nexport const failCheckingQuotationScheduling = (error) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_FAILED,\n payload: { error }\n});\n\nexport const startApprovingDenyingQuotationManagement = (quotation) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED,\n payload: quotation\n});\nexport const completeApprovingDenyingQuotationManagement = (quotation) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED,\n payload: quotation\n});\nexport const failApprovingDenyingQuotationManagement = (error) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAcceptingDenyingQuotationCustomer = (quotation) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED,\n payload: quotation\n});\nexport const completeAcceptingDenyingQuotationCustomer = (quotation) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED,\n payload: quotation\n});\nexport const failAcceptingDenyingQuotationCustomer = (error) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED,\n payload: {\n error\n }\n});\n\nexport const startSettingTimesupQuotation = (quotation, showAlerts = true) => ({\n type: types.QUOTATIONS_SET_TIMESUP_STARTED,\n payload: { quotation, showAlerts }\n});\nexport const completeSettingTimesupQuotation = (quotation) => ({\n type: types.QUOTATIONS_SET_TIMESUP_COMPLETED,\n payload: quotation\n});\nexport const failSettingTimesupQuotation = (error) => ({\n type: types.QUOTATIONS_SET_TIMESUP_FAILED,\n payload: {\n error\n }\n});\n\nexport const startRemovingQuotation = (quotationId) => ({\n type: types.QUOTATIONS_REMOVE_STARTED,\n payload: {\n quotationId\n }\n});\nexport const completeRemovingQuotation = (quotationId) => ({\n type: types.QUOTATIONS_REMOVE_COMPLETED,\n payload: {\n quotationId\n }\n});\nexport const failRemovingQuotation = (quotationId, error) => ({\n type: types.QUOTATIONS_REMOVE_FAILED,\n payload: {\n quotationId,\n error\n }\n});\n\nexport const changeQuotationOrganization = (quotation, organization) => ({\n type: types.QUOTATIONS_SELECTED,\n payload: { quotation, organization }\n});\n\nexport const selectQuotation = (quotationId) => ({\n type: types.QUOTATIONS_SELECTED,\n payload: quotationId\n});\n\nexport const selectAllQuotations = (\n quotationIds = [] //List of quotationIds\n) => ({\n type: types.QUOTATIONS_ALL_SELECTED,\n payload: quotationIds\n});\n\nexport const deselectQuotation = (quotationId) => ({\n type: types.QUOTATIONS_DESELECTED,\n payload: quotationId\n});\n\nexport const deselectAllQuotations = (\n quotationIds = [] //List of quotationIds\n) => ({\n type: types.QUOTATIONS_ALL_DESELECTED,\n payload: quotationIds\n});\n\nexport const startCopyingQuotation = (quotation) => ({\n type: types.QUOTATION_COPY_STARTED,\n payload: { quotation }\n});\nexport const completeCopyingQuotation = (quotation) => ({\n type: types.QUOTATION_COPY_COMPLETED,\n payload: { quotation }\n});\nexport const failCopyingQuotation = (quotationId, error) => ({\n type: types.QUOTATION_COPY_FAILED,\n payload: {\n quotationId,\n error\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingSchedules = (filters = {}) => ({\n type: types.SCHEDULES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingSchedules = (entities, order) => ({\n type: types.SCHEDULES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingSchedules = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SCHEDULES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSchedules = (entityTypeId) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingSchedules = (entities, order) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingSchedules = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSchedule = (schedule) => ({\n type: types.SCHEDULE_ADD_STARTED,\n payload: schedule\n});\nexport const completeAddingSchedule = (oldId, schedule) => ({\n type: types.SCHEDULE_ADD_COMPLETED,\n payload: { oldId, schedule }\n});\nexport const failAddingSchedule = (oldId, error) => ({\n type: types.SCHEDULE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startAddingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_ADD_STARTED,\n payload: schedule\n});\nexport const completeAddingShift = (oldId, schedule) => ({\n type: types.SCHEDULE_SHIFT_ADD_COMPLETED,\n payload: { oldId, schedule }\n});\nexport const failAddingShift = (oldId, error) => ({\n type: types.SCHEDULE_SHIFT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSchedule = (schedule) => ({\n type: types.SCHEDULE_EDIT_STARTED,\n payload: schedule\n});\nexport const completeEditingSchedule = (schedule) => ({\n type: types.SCHEDULE_EDIT_COMPLETED,\n payload: schedule\n});\nexport const failEditingSchedule = (oldSchedule, error) => ({\n type: types.SCHEDULE_EDIT_FAILED,\n payload: {\n oldSchedule,\n error\n }\n});\nexport const startEditingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_EDIT_STARTED,\n payload: schedule\n});\nexport const completeEditingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_EDIT_COMPLETED,\n payload: schedule\n});\nexport const failEditingShift = (oldSchedule, error) => ({\n type: types.SCHEDULE_SHIFT_EDIT_FAILED,\n payload: {\n oldSchedule,\n error\n }\n});\n\nexport const startRemovingSchedule = (scheduleId) => ({\n type: types.SCHEDULE_REMOVE_STARTED,\n payload: {\n scheduleId\n }\n});\nexport const completeRemovingSchedule = (scheduleId) => ({\n type: types.SCHEDULE_REMOVE_COMPLETED,\n payload: {\n scheduleId\n }\n});\nexport const failRemovingSchedule = (scheduleId, error) => ({\n type: types.SCHEDULE_REMOVE_FAILED,\n payload: {\n scheduleId,\n error\n }\n});\n\nexport const selectSchedule = (scheduleId) => ({\n type: types.SCHEDULE_SELECTED,\n payload: scheduleId\n});\n\nexport const selectAllSchedules = (\n scheduleIds = [] //List of ScheduleIds\n) => ({\n type: types.SCHEDULES_ALL_SELECTED,\n payload: scheduleIds\n});\n\nexport const deselectSchedule = (scheduleId) => ({\n type: types.SCHEDULE_DESELECTED,\n payload: scheduleId\n});\n\nexport const deselectAllSchedules = (\n scheduleIds = [] //List of ScheduleIds\n) => ({\n type: types.SCHEDULES_ALL_DESELECTED,\n payload: scheduleIds\n});\n","const permissions = {\n //permisos catalogos\n sparepartsCatalog: 'MV006',\n workshopCatalog: 'MV005',\n categoriesCatalog: 'MV024',\n providersCatalog: 'MV020',\n\n //permisos add\n addSpareparts: 'MV012',\n addWorkshop: 'MV015',\n addCategories: 'MV025',\n addProviders: 'MV021',\n\n //permisos edit\n editSpareparts: 'MV013',\n editWorkshop: 'MV016',\n editCategories: 'MV026',\n editProviders: 'MV022',\n\n //permisos remove\n removeSpareparts: 'MV014',\n removeWorkshop: 'MV017',\n removeCategories: 'MV027',\n removeProviders: 'MV023',\n\n //reportes\n generalReport: 'MV003',\n byCategoryReport: 'MV006',\n byUnitReport: 'MV006',\n byWorkShopReport: 'MV006',\n\n //tickets\n importTicket: 'MV002',\n addTickets: 'MV032',\n\n //maintenanceLines\n maintenanceLines: 'MV028',\n maintenanceLineAdd: 'MV029',\n maintenanceLineEdit: 'MV030',\n maintenanceLineRemove: 'MV031',\n\n //preventiveNotices\n preventiveNotices: 'MV007',\n addPreventiveNotices: 'MV008',\n editPreventiveNotices: 'MV009',\n removePreventiveNotices: 'MV011',\n reschedulePreventiveNotice: 'MV010',\n totalNotices: 'MV006',\n expiredNotices: 'MV006',\n activeNotices: 'MV006'\n};\n\nexport default permissions;\n","export const COUNTRIES_FETCH_STARTED = 'COUNTRIES_FETCH_STARTED';\nexport const COUNTRIES_FETCH_COMPLETED = 'COUNTRIES_FETCH_COMPLETED';\nexport const COUNTRIES_FETCH_FAILED = 'COUNTRIES_FETCH_FAILED';\n\nexport const COUNTRIES_PARTIAL_FETCH_STARTED = 'COUNTRIES_PARTIAL_FETCH_STARTED';\nexport const COUNTRIES_PARTIAL_FETCH_COMPLETED = 'COUNTRIES_PARTIAL_FETCH_COMPLETED';\nexport const COUNTRIES_PARTIAL_FETCH_FAILED = 'COUNTRIES_PARTIAL_FETCH_FAILED';\n\nexport const COUNTRY_FETCH_STARTED = 'COUNTRY_FETCH_STARTED';\nexport const COUNTRY_FETCH_COMPLETED = 'COUNTRY_FETCH_COMPLETED';\nexport const COUNTRY_FETCH_FAILED = 'COUNTRY_FETCH_FAILED';\n\nexport const COUNTRY_SELECTED = 'COUNTRY_SELECTED';\nexport const COUNTRIES_ALL_SELECTED = 'COUNTRIES_ALL_SELECTED';\nexport const COUNTRY_DESELECTED = 'COUNTRY_DESELECTED';\nexport const COUNTRIES_ALL_DESELECTED = 'COUNTRIES_ALL_DESELECTED';\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED IMPORT\n case types.LOCATIONS_IMPORT_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((id) => {\n newState[id] = {\n isSelected: false,\n isShownInMap: false,\n ...state[id],\n ...entities[id],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED IMPORT\n case types.LOCATIONS_IMPORT_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst isImporting = (state = false, action) => {\n switch (action.type) {\n case types.LOCATIONS_IMPORT_STARTED: {\n return true;\n }\n case types.LOCATIONS_IMPORT_COMPLETED:\n case types.LOCATIONS_IMPORT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorImporting = (state = null, action) => {\n switch (action.type) {\n case types.LOCATIONS_IMPORT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_IMPORT_STARTED:\n case types.LOCATIONS_IMPORT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst importedLocations = combineReducers({\n byId,\n order,\n isImporting,\n errorImporting\n});\n\nexport default importedLocations;\n// export default locations;\n\n//Own state\nexport const getOwnState = (state) => state.locations.importedLocations;\n\n//Information\nexport const getLocation = (state, id) => getOwnState(state).byId[id];\n\nexport const getLocationsList = (state) =>\n getOwnState(state).order.map((id) => getLocation(state, id));\n\n//Status of sagas\nexport const isImportingLocations = (state) => getOwnState(state).isImporting;\n\n//Errors\nexport const getImportingLocationsErrors = (state) => getOwnState(state).errorImporting;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport importedLocations, * as importedLocationsSelectors from './importedLocations';\nimport * as officeSelectors from 'views/screens/Offices/reducers';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.LOCATIONS_FETCH_COMPLETED: {\n const { entities, order, showInMap, restartState } = action.payload;\n const newState = restartState ? {} : { ...state };\n order.forEach((locationId) => {\n newState[locationId] = {\n isSelected: false,\n isShownInMap: showInMap,\n ...state[locationId],\n ...entities[locationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.LOCATION_FETCH_COMPLETED: {\n const { location } = action.payload;\n return {\n ...state,\n [location.locationId]: {\n ...state[location.locationId],\n ...location,\n isConfirmed: false,\n isShownInMap: false,\n isSelected: true\n }\n };\n }\n\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((locationId) => {\n newState[locationId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[locationId],\n ...entities[locationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.LOCATION_ADD_COMPLETED: {\n const { oldId, location } = action.payload;\n const newState = omit(state, oldId);\n newState[location.locationId] = {\n isShownInMap: false,\n ...state[oldId],\n ...location,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.LOCATION_EDIT_COMPLETED: {\n const location = action.payload;\n return {\n ...state,\n [location.locationId]: {\n isShownInMap: false,\n ...omit(state[location.locationId], ['oldLocation']),\n ...omit(location, ['oldLocation']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.LOCATION_ADD_STARTED: {\n const location = action.payload;\n const newState = { ...state };\n newState[location.locationId] = {\n isShownInMap: false,\n isSelected: false,\n ...location,\n isConfirmed: false\n };\n return newState;\n }\n case types.LOCATION_EDIT_STARTED: {\n const location = action.payload;\n return {\n ...state,\n [location.locationId]: {\n isShownInMap: false,\n ...state[location.locationId],\n oldLocation: state[location.locationId],\n ...omit(location, 'isShownInMap'),\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.LOCATION_EDIT_FAILED: {\n const { oldLocation } = action.payload;\n return {\n ...state,\n [oldLocation.locationId]: {\n isShownInMap: false,\n ...omit(state[oldLocation.locationId], ['oldLocation']),\n ...oldLocation,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.LOCATION_REMOVE_COMPLETED: {\n const { locationId } = action.payload;\n return omit(state, locationId);\n }\n\n //TYPES SHOW AND HIDE LOCATIONS IN MAP\n case types.LOCATION_SHOW_IN_MAP: {\n const locationId = action.payload;\n const newState = {\n ...state,\n [locationId]: {\n ...state[locationId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.LOCATION_HIDE_IN_MAP: {\n const locationId = action.payload;\n return {\n ...state,\n [locationId]: {\n ...state[locationId],\n isShownInMap: false\n }\n };\n }\n\n case types.LOCATIONS_ALL_SHOW_IN_MAP: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isShownInMap: true\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.LOCATIONS_ALL_HIDE_IN_MAP: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isShownInMap: false\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.LOCATION_SELECTED: {\n const locationId = action.payload;\n const newState = {\n ...state,\n [locationId]: {\n ...state[locationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.LOCATION_DESELECTED: {\n const locationId = action.payload;\n return {\n ...state,\n [locationId]: {\n ...state[locationId],\n isSelected: false\n }\n };\n }\n\n case types.LOCATIONS_ALL_SELECTED: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isSelected: true\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.LOCATIONS_ALL_DESELECTED: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isSelected: false\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.LOCATIONS_FETCH_COMPLETED: {\n const { order, restartState } = action.payload;\n return restartState ? union(order) : uniq([...state, ...order]);\n }\n\n case types.LOCATION_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.LOCATION_ADD_COMPLETED: {\n const { oldId, location } = action.payload;\n return state.map((locationId) => (locationId === oldId ? location.locationId : locationId));\n }\n\n case types.LOCATION_REMOVE_COMPLETED: {\n const { locationId } = action.payload;\n return state.filter((locationIdState) => locationIdState !== locationId);\n }\n\n //CASE ADD STARTED\n case types.LOCATION_ADD_STARTED: {\n const location = action.payload;\n return [...state, location.locationId];\n }\n\n //CASE ADD FAILED\n case types.LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((locationIdState) => locationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_FETCH_STARTED: {\n return true;\n }\n case types.LOCATIONS_FETCH_COMPLETED:\n case types.LOCATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingLocation = (state = false, action) => {\n switch (action.type) {\n case types.LOCATION_FETCH_STARTED: {\n return true;\n }\n case types.LOCATION_FETCH_COMPLETED:\n case types.LOCATION_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED:\n case types.LOCATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_ADD_STARTED: {\n return true;\n }\n case types.LOCATION_ADD_COMPLETED:\n case types.LOCATION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_EDIT_STARTED: {\n return true;\n }\n case types.LOCATION_EDIT_COMPLETED:\n case types.LOCATION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_REMOVE_STARTED: {\n return true;\n }\n case types.LOCATION_REMOVE_COMPLETED:\n case types.LOCATION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_FETCH_STARTED:\n case types.LOCATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_PARTIAL_FETCH_STARTED:\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_ADD_STARTED:\n case types.LOCATION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_EDIT_STARTED:\n case types.LOCATION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_REMOVE_STARTED:\n case types.LOCATION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst locations: any = combineReducers({\n byId,\n order,\n importedLocations,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched,\n isFetchingLocation\n});\n\nconst locationsPersistedConfig = {\n key: 'locations',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'importedLocations',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isFetchingList',\n 'isPartialFetchingList'\n ],\n whitelist: ['byId', 'order']\n // blackList: [],\n};\n\nexport default persistReducer(locationsPersistedConfig, locations);\n// export default locations;\n\n//Own state\nexport const getOwnState = (state) => state.locations;\n\n//Information\nexport const getLocation = (state, locationId) => {\n return getOwnState(state).byId[locationId];\n};\n\nexport const getLocationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getLocation(state, id))\n .filter((location) => location.locationStatus > 0);\n\nexport const getLocationByPrivateCode = (state, privateCode) => {\n const location = getOwnState(state)\n .order.map((id) => getLocation(state, id))\n .find((location) => location.privateCode === privateCode);\n\n return location || undefined;\n};\n\nexport const getLocationByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n return getLocationsListByMembership(state, membership).find(\n (location) => location?.privateCode === privateCode\n );\n};\n\nexport const getLocationByGooglePlaceId = (state, googlePlaceId) => {\n if (googlePlaceId) {\n const locationsList = getLocationsList(state).filter(\n (location) => location?.googleLocation?.googlePlaceId == googlePlaceId\n );\n if (locationsList.length === 1) return locationsList[0];\n }\n return undefined;\n};\n\nexport const getLocationsListByOrganization = (state, organizationId) =>\n organizationId != null\n ? getLocationsList(state).filter((location) => location.organizationId == organizationId)\n : getLocationsList(state);\n\nexport const getLocationsListByLocationClassId = (state, locationClassId) =>\n locationClassId != null\n ? getLocationsList(state).filter((location) => location.locationClassId == locationClassId)\n : getLocationsList(state);\n\nexport const getLocationsListByMembership = (state, membership) => {\n //Se filtra por membership\n return getLocationsList(state).filter(\n (location) =>\n membership &&\n (!membership.operatorId || membership.operatorId === location.operatorId) &&\n (!membership.organizationId || membership.organizationId === location.organizationId) &&\n (!membership.divisionId || membership.divisionId === location.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === location.subdivisionId) &&\n (!membership.groupId ||\n location.groups?.split(',').includes(String(membership.groupId)) ||\n membership.groupId + '' === location.groups)\n );\n};\n\nexport const getLocationsListByMapBounds = (state, bounds) => {\n return getLocationsList(state).filter(\n (location) =>\n bounds &&\n location.latitude >= bounds.minLat &&\n location.latitude <= bounds.maxLat &&\n location.longitude >= bounds.minLng &&\n location.longitude <= bounds.maxLng\n );\n};\n\nexport const getLocationOffice = (state, locationId, useOnlyOffices) => {\n const location = getOwnState(state).byId[locationId];\n if (location) {\n const office = officeSelectors.getOffice(state, location.officeId) ?? {};\n if (!useOnlyOffices || office?.officeId)\n return {\n ...location,\n ...omit(office, ['privateCode', 'isConfirmed', 'isSelected']),\n officePrivateCode: office?.privateCode\n };\n } else return undefined;\n};\n\nexport const getLocationsOfficesList = (state, useOnlyOffices) =>\n getOwnState(state)\n .order.map((id) => getLocationOffice(state, id, useOnlyOffices))\n .filter((location) => location && location.locationStatus > 0);\n\nexport const getLocationsOfficesListByMembership = (state, membership, useOnlyOffices) => {\n //Se filtra por membership\n return getLocationsOfficesList(state, useOnlyOffices).filter(\n (location) =>\n membership &&\n (!membership.operatorId || membership.operatorId === location.operatorId) &&\n (!membership.organizationId || membership.organizationId === location.organizationId) &&\n (!membership.divisionId || membership.divisionId === location.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === location.subdivisionId)\n );\n};\nexport const getSelectedLocations = (state) => {\n const selectedLocations = getLocationsList(state).filter((location) => location.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedLocations.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedLocations.length > 0) return selectedLocations;\n};\n\nexport const getSelectedLocation = (state) => {\n const selectedLocations = getLocationsList(state).filter((location) => location.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedLocations.length === 1) return selectedLocations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListLocations = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListLocations = (state) => getOwnState(state).isFetchingList;\nexport const haveLocationsBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingLocation = (state) => getOwnState(state).isAdding;\nexport const isEditingLocation = (state) => getOwnState(state).isEditing;\nexport const isRemovingLocation = (state) => getOwnState(state).isRemoving;\nexport const isCopyingLocation = (state) => getOwnState(state).isCopying;\nexport const isAssigningGeofenceLocation = (state) => getOwnState(state).isAssigningGeofence;\nexport const isFetchingLocationById = (state) => getOwnState(state).isFetchingLocation;\n\n//Errors\nexport const getPartialFetchingListLocationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListLocationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingLocationErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingLocationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingLocationErrors = (state) => getOwnState(state).errorRemoving;\n\n/* -------------------------------------------------------------------------- */\n/* IMPORTED LOCATIONS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getImportedLocationsList = (state) =>\n importedLocationsSelectors.getLocationsList(state);\n\nexport const getImportedLocation = (state, locationId) =>\n importedLocationsSelectors.getLocation(state, locationId);\n\nexport const getImportedLocationsByPrivateCode = (state, privateCode) => {\n const importedLocations = getImportedLocationsList(state);\n return importedLocations.find((location) => location?.privateCode === privateCode);\n};\n\n//Status of sagas\nexport const isImportingLocations = (state) =>\n importedLocationsSelectors.isImportingLocations(state);\n\n//Errors\nexport const getImportingLocationsErrors = (state) =>\n importedLocationsSelectors.getImportingLocationsErrors(state);\n","import * as types from 'views/screens/Contacts/types';\n\nexport const startFetchingContacts = (query: any = {}) => ({\n type: types.CONTACTS_FETCH_STARTED,\n payload: { query }\n});\nexport const completeFetchingContacts = (entities, order) => ({\n type: types.CONTACTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingContacts = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.CONTACTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingContacts = (entityTypeId) => ({\n type: types.CONTACTS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId }\n});\nexport const completePartialFetchingContacts = (entities, order) => ({\n type: types.CONTACTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingContacts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CONTACTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingContact = (contact) => ({\n type: types.CONTACT_ADD_STARTED,\n payload: contact\n});\nexport const completeAddingContact = (oldId, contact) => ({\n type: types.CONTACT_ADD_COMPLETED,\n payload: { oldId, contact }\n});\nexport const failAddingContact = (oldId, error) => ({\n type: types.CONTACT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingContact = (contact) => ({\n type: types.CONTACT_EDIT_STARTED,\n payload: contact\n});\nexport const completeEditingContact = (contact) => ({\n type: types.CONTACT_EDIT_COMPLETED,\n payload: contact\n});\nexport const failEditingContact = (oldContact, error) => ({\n type: types.CONTACT_EDIT_FAILED,\n payload: {\n oldContact,\n error\n }\n});\n\nexport const startRemovingContact = (contacts, contactsName) => ({\n type: types.CONTACT_REMOVE_STARTED,\n payload: {\n contacts,\n contactsName\n }\n});\nexport const completeRemovingContact = (contacts, contactsName) => ({\n type: types.CONTACT_REMOVE_COMPLETED,\n payload: {\n contacts,\n contactsName\n }\n});\nexport const failRemovingContact = (contacts, error) => ({\n type: types.CONTACT_REMOVE_FAILED,\n payload: {\n contacts,\n error\n }\n});\n\nexport const selectContact = (contactId) => ({\n type: types.CONTACT_SELECTED,\n payload: contactId\n});\n\nexport const deselectContact = (contactId) => ({\n type: types.CONTACT_DESELECTED,\n payload: contactId\n});\n\nexport const deselectAllContacts = (\n contactIds = [] //List of ContactIds\n) => ({\n type: types.CONTACTS_ALL_DESELECTED,\n payload: contactIds\n});\n","import * as types from '../types';\n\nexport const startFetchingLocations = (filters = {}) => ({\n type: types.LOCATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingLocations = (\n entities,\n order,\n operatorId,\n organizationId,\n showInMap = false,\n restartState = true\n) => ({\n type: types.LOCATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n showInMap,\n restartState\n }\n});\nexport const failFetchingLocations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.LOCATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingLocation = (locationId) => ({\n type: types.LOCATION_FETCH_STARTED,\n payload: locationId\n});\n\nexport const completeFetchingLocation = (location, order) => ({\n type: types.LOCATION_FETCH_COMPLETED,\n payload: {\n location,\n order\n }\n});\n\nexport const failFetchingLocation = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.LOCATION_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingLocations = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingLocations = (entities, order, operatorId, organizationId) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingLocations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingLocation = (location) => ({\n type: types.LOCATION_ADD_STARTED,\n payload: location\n});\nexport const completeAddingLocation = (oldId, location) => ({\n type: types.LOCATION_ADD_COMPLETED,\n payload: { oldId, location }\n});\nexport const failAddingLocation = (oldId, error) => ({\n type: types.LOCATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingLocation = (location) => ({\n type: types.LOCATION_EDIT_STARTED,\n payload: location\n});\nexport const completeEditingLocation = (location) => ({\n type: types.LOCATION_EDIT_COMPLETED,\n payload: location\n});\nexport const failEditingLocation = (oldLocation, error) => ({\n type: types.LOCATION_EDIT_FAILED,\n payload: {\n oldLocation,\n error\n }\n});\n\nexport const startRemovingLocation = (locationId) => ({\n type: types.LOCATION_REMOVE_STARTED,\n payload: {\n locationId\n }\n});\nexport const completeRemovingLocation = (locationId) => ({\n type: types.LOCATION_REMOVE_COMPLETED,\n payload: {\n locationId\n }\n});\nexport const failRemovingLocation = (locationId, error) => ({\n type: types.LOCATION_REMOVE_FAILED,\n payload: {\n locationId,\n error\n }\n});\n\nexport const startImportingLocations = (organizationId, divisionId, subdivisionId, locations) => ({\n type: types.LOCATIONS_IMPORT_STARTED,\n payload: {\n organizationId,\n divisionId,\n subdivisionId,\n locations\n }\n});\nexport const completeImportingLocations = (entities, order) => ({\n type: types.LOCATIONS_IMPORT_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failImportingLocations = (error) => ({\n type: types.LOCATIONS_IMPORT_FAILED,\n payload: {\n error\n }\n});\n\nexport const selectLocation = (locationId) => ({\n type: types.LOCATION_SELECTED,\n payload: locationId\n});\n\nexport const selectAllLocations = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_SELECTED,\n payload: locationIds\n});\n\nexport const deselectLocation = (locationId) => ({\n type: types.LOCATION_DESELECTED,\n payload: locationId\n});\n\nexport const deselectAllLocations = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_DESELECTED,\n payload: locationIds\n});\n\nexport const showLocationInMap = (locationId) => ({\n type: types.LOCATION_SHOW_IN_MAP,\n payload: locationId\n});\n\nexport const showAllLocationsInMap = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_SHOW_IN_MAP,\n payload: locationIds\n});\n\nexport const hideLocationInMap = (locationId) => ({\n type: types.LOCATION_HIDE_IN_MAP,\n payload: locationId\n});\n\nexport const hideAllLocationsInMap = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_HIDE_IN_MAP,\n payload: locationIds\n});\n","import * as types from '../../types/backlog';\n\nexport const startFetchingJobsBacklog = (filters = {}) => ({\n type: types.JOBS_BACKLOG_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingJobsBacklog = (entities, order) => ({\n type: types.JOBS_BACKLOG_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingJobsBacklog = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOBS_BACKLOG_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingJobsBacklog = (entityTypeId) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingJobsBacklog = (entities, order) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingJobsBacklog = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_ADD_STARTED,\n payload: jobBacklog\n});\nexport const completeAddingJobBacklog = (oldId, jobBacklog) => ({\n type: types.JOB_BACKLOG_ADD_COMPLETED,\n payload: { oldId, jobBacklog }\n});\nexport const failAddingJobBacklog = (oldId, error) => ({\n type: types.JOB_BACKLOG_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_EDIT_STARTED,\n payload: jobBacklog\n});\nexport const completeEditingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_EDIT_COMPLETED,\n payload: jobBacklog\n});\nexport const failEditingJobBacklog = (oldJobBacklog, error) => ({\n type: types.JOB_BACKLOG_EDIT_FAILED,\n payload: {\n oldJobBacklog,\n error\n }\n});\n\nexport const selectJobBacklog = (jobId) => ({\n type: types.JOB_BACKLOG_SELECTED,\n payload: jobId\n});\n\nexport const selectAllJobsBacklog = (\n jobIds = [] //List of JobBacklogIds\n) => ({\n type: types.JOBS_BACKLOG_ALL_SELECTED,\n payload: jobIds\n});\n\nexport const deselectJobBacklog = (jobId) => ({\n type: types.JOB_BACKLOG_DESELECTED,\n payload: jobId\n});\n\nexport const deselectAllJobsBacklog = (\n jobIds = [] //List of JobBacklogIds\n) => ({\n type: types.JOBS_BACKLOG_ALL_DESELECTED,\n payload: jobIds\n});\n\nexport const startRemovingJobsBacklog = (jobs) => ({\n type: types.JOBS_BACKLOG_REMOVE_STARTED,\n payload: {\n jobs\n }\n});\n\nexport const completeRemovingJobsBacklog = (jobs) => ({\n type: types.JOBS_BACKLOG_REMOVE_COMPLETED,\n payload: {\n jobs\n }\n});\n\nexport const failRemovingJobsBacklog = (jobs, error) => ({\n type: types.JOBS_BACKLOG_REMOVE_FAILED,\n payload: {\n jobs,\n error\n }\n});\n\nexport const startChangeStatusJobs = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_STARTED,\n payload: { jobs, jobStatus, comment }\n});\nexport const completeChangeStatusJobs = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobStatus, comment }\n});\nexport const failChangeStatusJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeJobTypeJobs = (jobs, jobTypeId) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_STARTED,\n payload: { jobs, jobTypeId }\n});\nexport const completeChangeJobTypeJobs = (jobs, jobTypeId) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobTypeId }\n});\nexport const failChangeJobTypeJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangePriorityJobs = (jobs, jobPriority) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_STARTED,\n payload: { jobs, jobPriority }\n});\nexport const completeChangePriorityJobs = (jobs, jobPriority) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED,\n payload: { jobs, jobPriority }\n});\nexport const failChangePriorityJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeStartDateJobs = (jobs, startDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_STARTED,\n payload: { jobs, startDate }\n});\nexport const completeChangeStartDateJobs = (jobs, startDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED,\n payload: { jobs, startDate }\n});\nexport const failChangeStartDateJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeDueDateJobs = (jobs, dueDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED,\n payload: { jobs, dueDate }\n});\nexport const completeChangeDueDateJobs = (jobs, dueDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED,\n payload: { jobs, dueDate }\n});\nexport const failChangeDueDateJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeMinMaxTimeJobs = (jobs, maxTime) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED,\n payload: { jobs, maxTime }\n});\nexport const completeChangeMinMaxTimeJobs = (jobs, maxTime) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED,\n payload: { jobs, maxTime }\n});\nexport const failChangeMinMaxTimeJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignUsersJobs = (jobs, userNames, users) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_STARTED,\n payload: { jobs, userNames, users }\n});\nexport const completeAssignUsersJobs = (jobs, userNames, users) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_COMPLETED,\n payload: { jobs, userNames, users }\n});\nexport const failAssignUsersJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignFormsJobs = (jobs, formIds, forms) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_STARTED,\n payload: { jobs, formIds, forms }\n});\nexport const completeAssignFormsJobs = (jobs, formIds, forms) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED,\n payload: { jobs, formIds, forms }\n});\nexport const failAssignFormsJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignFilesJobs = (jobs, fileIds) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_STARTED,\n payload: { jobs, fileIds }\n});\nexport const completeAssignFilesJobs = (jobs, order) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_COMPLETED,\n payload: { jobs, order }\n});\nexport const failAssignFilesJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startRescheduleJobs = (jobs, startDate, dueDate, comment) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED,\n payload: { jobs, startDate, dueDate, comment }\n});\nexport const completeRescheduleJobs = (jobs, startDate, dueDate, comment) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED,\n payload: { jobs, startDate, dueDate, comment }\n});\nexport const failRescheduleJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startImportingJobs = (organizationId, divisionId, subdivisionId, jobs) => ({\n type: types.JOBS_BACKLOG_IMPORT_STARTED,\n payload: {\n organizationId,\n divisionId,\n subdivisionId,\n jobs\n }\n});\nexport const completeImportingJobs = (entities, order) => ({\n type: types.JOBS_BACKLOG_IMPORT_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failImportingJobs = (error) => ({\n type: types.JOBS_BACKLOG_IMPORT_FAILED,\n payload: {\n error\n }\n});\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ORGANIZATIONS_FETCH_COMPLETED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((organizationId) => {\n newState[organizationId] = {\n isSelected: false,\n ...state[organizationId],\n ...entities[organizationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ORGANIZATION_ADD_COMPLETED: {\n const { oldId, organization } = action.payload;\n const newState = omit(state, oldId);\n newState[organization.organizationId] = {\n ...state[oldId],\n ...organization,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ORGANIZATION_EDIT_COMPLETED: {\n const organization = action.payload;\n return {\n ...state,\n [organization.organizationId]: {\n ...omit(state[organization.organizationId], ['oldOrganization']),\n ...omit(organization, ['oldOrganization']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ORGANIZATION_ADD_STARTED: {\n const { organization, isSelected } = action.payload;\n const newState = { ...state };\n newState[organization.organizationId] = {\n isSelected,\n ...omit(organization, ['quotationId', 'baseQuotationId', 'membership']),\n isConfirmed: false\n };\n return newState;\n }\n case types.ORGANIZATION_EDIT_STARTED: {\n const organization = action.payload;\n return {\n ...state,\n [organization.organizationId]: {\n ...state[organization.organizationId],\n oldOrganization: state[organization.organizationId],\n ...organization,\n isConfirmed: false\n }\n };\n }\n\n case types.ORGANIZATION_CODE_ASSIGN_COMPLETED: {\n const {\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n } = action.payload;\n return {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ORGANIZATION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ORGANIZATION_EDIT_FAILED: {\n const { oldOrganization } = action.payload;\n return {\n ...state,\n [oldOrganization.organizationId]: {\n ...omit(state[oldOrganization.organizationId], ['oldOrganization']),\n ...oldOrganization,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n const { organizationId } = action.payload;\n return omit(state, organizationId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ORGANIZATION_SELECTED: {\n const organizationId = action.payload;\n const newState = {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ORGANIZATION_DESELECTED: {\n const organizationId = action.payload;\n return {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n isSelected: false\n }\n };\n }\n\n case types.ORGANIZATIONS_ALL_SELECTED: {\n const organizationIds = action.payload;\n const newState = { ...state };\n if (organizationIds.length == 0) {\n forEach(state, (organization: any, organizationId) => {\n newState[organizationId] = {\n ...organization,\n isSelected: true\n };\n });\n } else {\n organizationIds.forEach((organizationId) => {\n newState[organizationId] = {\n ...state[organizationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ORGANIZATIONS_ALL_DESELECTED: {\n const organizationIds = action.payload;\n const newState = { ...state };\n if (organizationIds.length == 0) {\n forEach(state, (organization: any, organizationId) => {\n newState[organizationId] = {\n ...organization,\n isSelected: false\n };\n });\n } else {\n organizationIds.forEach((organizationId) => {\n newState[organizationId] = {\n ...state[organizationId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ORGANIZATIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(state, order);\n }\n\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ORGANIZATION_ADD_COMPLETED: {\n const { oldId, organization } = action.payload;\n return state.map((organizationId) =>\n organizationId === oldId ? organization.organizationId : organizationId\n );\n }\n\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n const { organizationId } = action.payload;\n return state.filter((organizationIdState) => organizationIdState !== organizationId);\n }\n\n //CASE ADD STARTED\n case types.ORGANIZATION_ADD_STARTED: {\n const { organization } = action.payload;\n return [...state, organization.organizationId];\n }\n\n //CASE ADD FAILED\n case types.ORGANIZATION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((organizationIdState) => organizationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATIONS_FETCH_COMPLETED:\n case types.ORGANIZATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_ADD_COMPLETED:\n case types.ORGANIZATION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAddingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_EDIT_COMPLETED:\n case types.ORGANIZATION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_REMOVE_COMPLETED:\n case types.ORGANIZATION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemovingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATIONS_FETCH_STARTED:\n case types.ORGANIZATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATIONS_PARTIAL_FETCH_STARTED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_ADD_STARTED:\n case types.ORGANIZATION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAddingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_EDIT_STARTED:\n case types.ORGANIZATION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_REMOVE_STARTED:\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemovingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CODE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ORGANIZATION_CODE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizations = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isAddingDowntimeReason,\n isEditing,\n isEditingDowntimeReason,\n isRemoving,\n isRemovingDowntimeReason,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorAddingDowntimeReason,\n errorEditing,\n errorEditingDowntimeReason,\n errorRemoving,\n errorRemovingDowntimeReason,\n validCode\n});\n\nexport default organizations;\n\n//Own state\nexport const getOwnState = (state) => state.organizations;\n\n//Information\nexport const getOrganizationOperator = (state, organizationId) =>\n getOwnState(state).byId[organizationId]?.operatorId;\nexport const getOrganizationOperatorName = (state, organizationId) =>\n getOwnState(state).byId[organizationId]?.operatorName;\nexport const getOrganization = (state, organizationId) => getOwnState(state).byId[organizationId];\nexport const getOrganizationName = (state, organizationId) =>\n getOrganization(state, organizationId)?.organizationName;\nexport const getOrganizationLoginextParams = (state, organizationId) => {\n return {\n organizationId: getOrganization(state, organizationId)?.organizationId,\n loginextEffectiveVisitingTime:\n getOrganization(state, organizationId)?.loginextEffectiveVisitingTime / 60,\n loginextDeliveryDelay: getOrganization(state, organizationId)?.loginextDeliveryDelay / 60\n };\n};\nexport const getOrganizationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getOrganization(state, id))\n .filter((organization) => organization.organizationStatus > 0);\nexport const getOrganizationsListByMembership = (state, membership) => {\n //Se filtra por operatorId\n if (membership.operatorId)\n return getOrganizationsList(state).filter(\n (organization) => organization.operatorId === membership.operatorId\n );\n //Si no se ha seleccionado un operador se devuelvela lista completa\n return getOrganizationsList(state);\n};\nexport const getOrganizationsListBySelectedOperator = (state, membership) => {\n //Se filtra por operatorId\n if (membership.operatorId)\n return getOrganizationsList(state).filter(\n (organization) => organization.operatorId === membership.operatorId\n );\n //Si no se ha seleccionado un operador se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedOrganizations = (state) => {\n const selectedOrganizations = getOrganizationsList(state).filter(\n (organization) => organization.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedOrganizations.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedOrganizations.length > 0) return selectedOrganizations;\n};\n\nexport const getSelectedOrganization = (state) => {\n const selectedOrganizations = getOrganizationsList(state).filter(\n (organization) => organization.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOrganizations.length === 1) return selectedOrganizations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOrganizations = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOrganizations = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOrganization = (state) => getOwnState(state).isAdding;\nexport const isEditingOrganization = (state) => getOwnState(state).isEditing;\nexport const isRemovingOrganization = (state) => getOwnState(state).isRemoving;\n\nexport const isAddingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isAddingDowntimeReason;\nexport const isEditingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isEditingDowntimeReason;\nexport const isRemovingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isRemovingDowntimeReason;\n\n//Errors\nexport const getPartialFetchingListOrganizationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOrganizationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingOrganizationErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOrganizationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingOrganizationErrors = (state) => getOwnState(state).errorRemoving;\n\nexport const getAddingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorAddingDowntimeReason;\nexport const getEditingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorEditingDowntimeReason;\nexport const getRemovingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorRemovingDowntimeReason;\n\n//Valid code\nexport const isValidCode = (state) => getOwnState(state).validCode;\n","import * as types from '../types';\n\nexport const startFetchingGroups = (filters = {}) => ({\n type: types.GROUPS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingGroups = (entities, order, operatorId, organizationId) => ({\n type: types.GROUPS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingGroups = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GROUPS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingGroup = (groupId) => ({\n type: types.GROUP_FETCH_STARTED,\n payload: groupId\n});\nexport const completeFetchingGroup = (entities, order, groupId) => ({\n type: types.GROUP_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n groupId\n }\n});\nexport const failFetchingGroup = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GROUP_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingGroups = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.GROUPS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingGroups = (entities, order, operatorId, organizationId) => ({\n type: types.GROUPS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingGroups = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GROUPS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingAllEntitiesGroups = (groupId) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_STARTED,\n payload: groupId\n});\nexport const completeFetchingAllEntitiesGroups = (entities, groupId) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED,\n payload: {\n entities,\n groupId\n }\n});\nexport const failFetchingAllEntitiesGroups = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingGroup = (group, users, userInSession, additionalOnSave?: () => void) => ({\n type: types.GROUP_ADD_STARTED,\n payload: { group, users, additionalOnSave }\n});\nexport const completeAddingGroup = (oldId, group) => ({\n type: types.GROUP_ADD_COMPLETED,\n payload: { oldId, group }\n});\nexport const failAddingGroup = (oldId, error) => ({\n type: types.GROUP_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startAddingGroupWithEntities = (\n group,\n userInSession,\n entityType,\n entities,\n params\n) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_STARTED,\n payload: { group, userInSession, entityType, entities, params }\n});\nexport const completeAddingGroupWithEntities = (oldId, group) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_COMPLETED,\n payload: { oldId, group }\n});\nexport const failAddingGroupWithEntities = (oldId, error) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingGroup = (group) => ({\n type: types.GROUP_EDIT_STARTED,\n payload: group\n});\nexport const completeEditingGroup = (group) => ({\n type: types.GROUP_EDIT_COMPLETED,\n payload: group\n});\nexport const failEditingGroup = (oldGroup, error) => ({\n type: types.GROUP_EDIT_FAILED,\n payload: {\n oldGroup,\n error\n }\n});\n\nexport const startRemovingGroup = (groupId) => ({\n type: types.GROUP_REMOVE_STARTED,\n payload: {\n groupId\n }\n});\nexport const completeRemovingGroup = (groupId) => ({\n type: types.GROUP_REMOVE_COMPLETED,\n payload: {\n groupId\n }\n});\nexport const failRemovingGroup = (groupId, error) => ({\n type: types.GROUP_REMOVE_FAILED,\n payload: {\n groupId,\n error\n }\n});\n\nexport const startLeavingGroup = (groupId, isAsesor, asesorUsername) => ({\n type: types.GROUP_LEAVE_STARTED,\n payload: {\n groupId,\n isAsesor,\n asesorUsername\n }\n});\nexport const completeLeavingGroup = (groupId, isAsesor, asesorUsername) => ({\n type: types.GROUP_LEAVE_COMPLETED,\n payload: {\n groupId,\n isAsesor,\n asesorUsername\n }\n});\nexport const failLeavingGroup = (groupId, error) => ({\n type: types.GROUP_LEAVE_FAILED,\n payload: {\n groupId,\n error\n }\n});\n\nexport const startEditingNotificationsConfigurationGroup = (group) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED,\n payload: group\n});\nexport const completeEditingNotificationsConfigurationGroup = (group) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED,\n payload: group\n});\nexport const failEditingNotificationsConfigurationGroup = (oldGroup, error) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED,\n payload: {\n oldGroup,\n error\n }\n});\n\nexport const startRemovingEntitiesFromGroup = (group, entityType, entities) => ({\n type: types.GROUP_REMOVE_ENTITIES_STARTED,\n payload: { group, entityType, entities }\n});\nexport const completeRemovingEntitiesFromGroup = (groupId, entityType, entities) => ({\n type: types.GROUP_REMOVE_ENTITIES_COMPLETED,\n payload: { groupId, entityType, entities }\n});\n\nexport const startAddingEntitiesToGroup = (group, entityType, entities, params) => ({\n type: types.GROUP_ADD_ENTITIES_STARTED,\n payload: { group, entityType, entities, params }\n});\nexport const completeAddingEntitiesToGroup = (group, entityType, entities, params) => ({\n type: types.GROUP_ADD_ENTITIES_COMPLETED,\n payload: { group, entityType, entities, params }\n});\n\nexport const startEditingUserProfileInGroup = (\n groupId,\n userName,\n userNameInSession,\n profileId\n) => ({\n type: types.GROUP_USER_PROFILE_EDIT_STARTED,\n payload: { groupId, userName, userNameInSession, profileId }\n});\nexport const completeEditingUserProfileInGroup = (\n groupId,\n userName,\n userNameInSession,\n profileId\n) => ({\n type: types.GROUP_USER_PROFILE_EDIT_COMPLETED,\n payload: { groupId, userName, userNameInSession, profileId }\n});\n\nexport const selectGroup = (groupId) => ({\n type: types.GROUP_SELECTED,\n payload: groupId\n});\n\nexport const selectAllGroups = (\n groupIds = [] //List of GroupIds\n) => ({\n type: types.GROUPS_ALL_SELECTED,\n payload: groupIds\n});\n\nexport const deselectGroup = (groupId) => ({\n type: types.GROUP_DESELECTED,\n payload: groupId\n});\n\nexport const deselectAllGroups = (\n groupIds = [] //List of GroupIds\n) => ({\n type: types.GROUPS_ALL_DESELECTED,\n payload: groupIds\n});\n","import * as types from '../types';\n\nexport const startFetchingOrganizations = (filters = {}) => ({\n type: types.ORGANIZATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOrganizations = (entities, order) => ({\n type: types.ORGANIZATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingOrganizations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ORGANIZATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOrganizations = (entityTypeId) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingOrganizations = (entities, order) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingOrganizations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOrganization = (organization, isSelected = false) => ({\n type: types.ORGANIZATION_ADD_STARTED,\n payload: { organization, isSelected }\n});\nexport const completeAddingOrganization = (oldId, organization) => ({\n type: types.ORGANIZATION_ADD_COMPLETED,\n payload: { oldId, organization }\n});\nexport const failAddingOrganization = (oldId, error) => ({\n type: types.ORGANIZATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOrganization = (organization) => ({\n type: types.ORGANIZATION_EDIT_STARTED,\n payload: organization\n});\nexport const completeEditingOrganization = (organization) => ({\n type: types.ORGANIZATION_EDIT_COMPLETED,\n payload: organization\n});\nexport const failEditingOrganization = (oldOrganization, error) => ({\n type: types.ORGANIZATION_EDIT_FAILED,\n payload: {\n oldOrganization,\n error\n }\n});\n\nexport const startSavingConsolidableEvents = (organization, consolidableEvents) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED,\n payload: { organization, consolidableEvents }\n});\nexport const completeSavingConsolidableEvents = (organizationId, consolidableEvents) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED,\n payload: { organizationId, consolidableEvents }\n});\nexport const failSavingConsolidableEvents = (oldOrganization, error) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED,\n payload: {\n oldOrganization,\n error\n }\n});\n\nexport const startRemovingOrganization = (organizationId) => ({\n type: types.ORGANIZATION_REMOVE_STARTED,\n payload: {\n organizationId\n }\n});\nexport const completeRemovingOrganization = (organizationId) => ({\n type: types.ORGANIZATION_REMOVE_COMPLETED,\n payload: {\n organizationId\n }\n});\nexport const failRemovingOrganization = (organizationId, error) => ({\n type: types.ORGANIZATION_REMOVE_FAILED,\n payload: {\n organizationId,\n error\n }\n});\n\nexport const selectOrganization = (organizationId) => ({\n type: types.ORGANIZATION_SELECTED,\n payload: organizationId\n});\n\nexport const selectAllOrganizations = (\n organizationIds = [] //List of OrganizationIds\n) => ({\n type: types.ORGANIZATIONS_ALL_SELECTED,\n payload: organizationIds\n});\n\nexport const deselectOrganization = (organizationId) => ({\n type: types.ORGANIZATION_DESELECTED,\n payload: organizationId\n});\n\nexport const deselectAllOrganizations = (\n organizationIds = [] //List of OrganizationIds\n) => ({\n type: types.ORGANIZATIONS_ALL_DESELECTED,\n payload: organizationIds\n});\n\nexport const startCheckingCode = (organizationId, code) => ({\n type: types.ORGANIZATION_CODE_CHECK_STARTED,\n payload: {\n organizationId,\n code\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.ORGANIZATION_CODE_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.ORGANIZATION_CODE_CHECK_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAssigningCode = (\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_STARTED,\n payload: {\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n }\n});\nexport const completeAssigningCode = (\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_COMPLETED,\n payload: {\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n }\n});\nexport const failAssigningCode = (error) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAddingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED,\n payload: downtimeReason\n});\nexport const completeAddingOrganizationDowntimeReason = (oldId, downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED,\n payload: { oldId, downtimeReason }\n});\nexport const failAddingOrganizationDowntimeReason = (oldId, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED,\n payload: downtimeReason\n});\nexport const completeEditingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED,\n payload: downtimeReason\n});\nexport const failEditingOrganizationDowntimeReason = (oldDowntimeReason, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED,\n payload: {\n oldDowntimeReason,\n error\n }\n});\n\nexport const startRemovingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED,\n payload: downtimeReason\n});\nexport const completeRemovingOrganizationDowntimeReason = (reasonId) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED,\n payload: {\n reasonId\n }\n});\nexport const failRemovingOrganizationDowntimeReason = (reasonId, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED,\n payload: {\n reasonId,\n error\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* 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/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","/* -------------------------------------------------------------------------- */\n/* Schema Groups */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const group = new schema.Entity('groups', {}, { idAttribute: 'groupId' });\nexport const groups = new schema.Array(group);\n\nexport const user = new schema.Entity('users', {}, { idAttribute: 'userName' });\nexport const users = new schema.Array(user);\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n\nexport const workplan = new schema.Entity('workplans', {}, { idAttribute: 'workPlanId' });\nexport const workplans = new schema.Array(workplan);\n\nexport const unit = new schema.Entity('units', {}, { idAttribute: 'unitId' });\nexport const units = new schema.Array(unit);\n\nexport const geofence = new schema.Entity('geofences', {}, { idAttribute: 'geofenceId' });\nexport const geofences = new schema.Array(geofence);\n\nexport const driver = new schema.Entity('drivers', {}, { idAttribute: 'driverId' });\nexport const drivers = new schema.Array(driver);\n","import { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Button, Tooltip, Spinner } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n id: string;\n icon: string;\n permissions?: any[];\n isDisabled?: boolean;\n handleClick: any;\n className?: string;\n tooltipMessage?: any;\n visible?: boolean;\n color?: string;\n iconSize?: number;\n isLoading?: boolean;\n tooltipPosition?: string;\n}\n\nconst DefaultButton = (props: Props) => {\n const store = useSelector((state) => state);\n const {\n isDisabled,\n isLoading = false,\n handleClick,\n tooltipMessage,\n icon,\n id,\n permissions,\n color,\n className,\n iconSize = 16,\n visible = true,\n tooltipPosition = 'top'\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n \n {isLoading ? (\n <>\n \n \n ) : (\n \n )}\n\n {!isDisabled && tooltipMessage && (\n \n {tooltipMessage}\n \n )}\n \n ) : null;\n};\n\nDefaultButton.defaultProps = {\n id: 'DefaultButton',\n icon: 'Plus',\n isDisabled: false,\n className: ''\n};\n\nexport default DefaultButton;\n","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 UnitTrajectoryRequest {\n unitId: number;\n limit: number | undefined;\n}\n\ninterface ExecuteDeviceActionRequest {\n unitId: number;\n deviceActionId: number;\n parameters: string;\n}\n\ninterface UnitInformation {\n unitId?: number;\n startDate?: string;\n endDate?: string;\n}\n\ninterface FleetFilters {\n unitName?: string;\n deviceIdentifier?: string;\n membership?: any;\n brandId?: number;\n}\ninterface DeviceActionsRequest {\n unitId: number;\n}\n\ninterface ChangeUnitSubState {\n unitId: number;\n subStateId: number;\n}\n\ninterface RouteAssignments {\n unitId: number;\n}\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 getUnitTrajectoryService = (\n request: UnitTrajectoryRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.unitTrajectoryErrorMessage'\n })\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitTrajectory`, request);\n};\n\nexport const executeDeviceActionService = (\n request: ExecuteDeviceActionRequest,\n configActions?: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'units.executeDeviceActionMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'units.executeDeviceActionErrorMessage'\n })\n });\n if (configActions) {\n httpWebtrack.setConfigActions(configActions);\n }\n return httpWebtrack.post(`${baseUrl}/executeDeviceAction`, request);\n};\n\nexport const acknowledgeUnitEventService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/acknowledgeEvent`, request);\n};\n\nexport const getUnitRunningTimeByHour = (\n request: UnitInformation,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'reports.reports',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitRunningTimeByHour`, request);\n};\n\nexport const getUnitScriptHistory = (request: UnitInformation, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'reports.reports',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitScriptHistory`, request);\n};\n\nexport const getUnitTemperatureHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getTemperatureSensorReport`, request);\n};\n\nexport const getUnitFuelHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getFuelSensorReportPro`, request);\n};\n\nexport const getAssetFuelHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAssetFuelSensorReport`, request);\n};\n\nexport const getUnitFuelSamples = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelSamples`, request);\n};\n\nexport const getUnitFuelInformation = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelInformation`, request);\n};\n\nexport const getUnitFuelEvents = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelEvents`, request);\n};\n\nexport const getDowntimeBinnacleService = (\n request: UnitInformation,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDowntimeBinnacle`, request);\n};\n\nexport const getUserAssignedUnits = (\n request: { userIdRequest: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUserAssignedUnits`, request);\n};\n\nexport const removeUserAssignedUnits = (\n request: { userIdRequest: number; unitsIds: number[] },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removeUserAssignedUnits`, request);\n};\n\nexport const addUserAssignedUnits = (\n request: { userIdRequest: number; unitIds: number[] },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addUserAssignedUnits`, request);\n};\n\nexport const updateOdometer = (\n request: { unitId: number; newOdometer: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateOdometer`, request);\n};\n\nexport const updateHourmeter = (\n request: { unitId: number; newHourmeter: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateHourmeter`, request);\n};\n\nexport const updateDeviceService = (\n request: { unitId: number; deviceId: number | null },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.trackingUnit',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateDevice`, request);\n};\n\nexport const updateSimCardService = (\n request: { unitId: number; simCard: number | null },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.trackingUnit',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateSimCard`, request);\n};\n\nexport const getUnitsListByFiltersService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getByFilters`, request);\n};\n\nexport const getUnitByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n\nexport const getUnitAssetsService = (\n request: DeviceActionsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitAssets`, request);\n};\n\nexport const getUnitScriptsSerivice = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'reports.reports',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitScripts`, request);\n};\n\nexport const insertUnitScriptService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.sendScripts',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/sendScript`, request);\n};\n","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 moment from 'moment';\nimport {\n ArrowDownCircle,\n BatteryCharging,\n Circle,\n Clock,\n MapPin,\n Navigation,\n PauseCircle,\n PlayCircle,\n Power,\n StopCircle,\n Watch,\n Wifi,\n WifiOff\n} from 'react-feather';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { formatHourMeter } from 'utility/Utils';\nimport { UnitMainState, UnitsMainState } from 'views/screens/Units/types';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport * as deviceActionsSelectors from '../Units/reducers/deviceActions';\nimport * as deviceMetricsSelectors from '../Units/reducers/deviceMetrics';\nimport * as groupsSelectors from '../Units/reducers/groups';\nimport * as imagesSelectors from '../Units/reducers/images';\nimport * as reportsSelectors from '../Units/reducers/reports';\nimport * as sensorsSelectors from '../Units/reducers/sensors';\n\nexport const MainStateType: UnitsMainState = {\n ONLINE: {\n id: 1000,\n intl: 'units.mainStateId.1000',\n color: '#00D57E',\n textColor: '#75BB5A',\n tooltip: 'units.mainStateId.tooltip.1000',\n shortIntl: 'units.mainStateId.1000'\n },\n OFFLINE: {\n id: 0,\n intl: 'units.mainStateId.0',\n color: '#BA0000',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.0',\n shortIntl: 'units.mainStateId.0'\n },\n OFF: {\n id: 1,\n intl: 'units.mainStateId.1',\n color: '#FFFF00',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.1',\n shortIntl: 'units.mainStateId.1'\n },\n MOVING: {\n id: 2,\n intl: 'units.mainStateId.2',\n color: '#00D57E',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.2',\n shortIntl: 'units.mainStateId.2'\n },\n ON_IDLE: {\n id: 3,\n intl: 'units.mainStateId.3',\n color: '#FF4459',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.3',\n shortIntl: 'units.mainStateId.shortIntl.3'\n },\n ON_STANDBY: {\n id: 4,\n intl: 'units.mainStateId.4',\n color: '#FF7A00',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.4',\n shortIntl: 'units.mainStateId.shortIntl.4'\n },\n ON_STARTED: {\n id: 5,\n intl: 'units.mainStateId.5',\n color: '#00EAD5',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.5',\n shortIntl: 'units.mainStateId.shortIntl.5'\n },\n DOWNTIME: {\n id: 6,\n intl: 'units.mainStateId.6',\n color: '#7B7B74',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.6',\n shortIntl: 'units.mainStateId.6'\n },\n ON_STOPPED: {\n id: 7,\n intl: 'units.mainStateId.7',\n color: '#FFC737',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.7',\n shortIntl: 'units.mainStateId.shortIntl.7'\n },\n ON_MOVING: {\n id: 8,\n intl: 'units.mainStateId.8',\n color: '#00D57E',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.8',\n shortIntl: 'units.mainStateId.shortIntl.8'\n },\n STOPPED: {\n id: 9,\n intl: 'units.mainStateId.9',\n color: '#FDAC34',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.9',\n shortIntl: 'units.mainStateId.9'\n },\n OPPORTUNITY_CHARGE: {\n id: 10,\n intl: 'units.mainStateId.10',\n color: '#7669e8',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.10',\n shortIntl: 'units.mainStateId.shortIntl.10'\n },\n DISCONNECTED: {\n id: 11,\n intl: 'units.mainStateId.11',\n color: '#DD77DD',\n textColor: '#000000',\n tooltip: 'units.mainStateId.tooltip.11',\n shortIntl: 'units.mainStateId.shortIntl.11'\n }\n};\n\n/**\n * Get Icon by state id\n * @param id id of state\n * @returns Icon as JSX element\n */\nexport const getIconByStatId = (id: number): JSX.Element => {\n switch (id) {\n case 1000:\n return ;\n case 0:\n return ;\n case 1:\n return ;\n case 2:\n return ;\n case 3:\n return ;\n case 4:\n return ;\n case 5:\n return ;\n case 6:\n return ;\n case 7:\n return ;\n case 8:\n return ;\n case 9:\n return ;\n case 10:\n return ;\n }\n return ;\n};\n\nexport const GetMainStateById = (id: number): UnitMainState => {\n //console.log('unitLiveStatus.mainStateId==>', id);\n let state = MainStateType.ONLINE;\n switch (id) {\n case 100:\n state = MainStateType.ONLINE;\n break;\n case 0:\n state = MainStateType.OFFLINE;\n break;\n case 1:\n state = MainStateType.OFF;\n break;\n case 2:\n state = MainStateType.MOVING;\n break;\n case 3:\n state = MainStateType.ON_IDLE;\n break;\n case 4:\n state = MainStateType.ON_STANDBY;\n break;\n case 5:\n state = MainStateType.ON_STARTED;\n break;\n case 6:\n state = MainStateType.DOWNTIME;\n break;\n case 7:\n state = MainStateType.ON_STOPPED;\n break;\n case 8:\n state = MainStateType.ON_MOVING;\n break;\n case 9:\n state = MainStateType.STOPPED;\n break;\n case 10:\n state = MainStateType.OPPORTUNITY_CHARGE;\n break;\n case 11:\n state = MainStateType.DISCONNECTED;\n break;\n default:\n state = MainStateType.ONLINE;\n break;\n }\n return state;\n};\n\nexport const GetMainStateStyle = (\n state: UnitMainState\n): {\n backgroundColor: string;\n color: string;\n} => ({\n backgroundColor: state.color,\n color: state.textColor\n});\n\nexport const GetMainStateName = (\n mainState: UnitMainState,\n mainStateTitle: string,\n mainStateDate: string,\n speed: string,\n downTimeReason: string,\n extraMessage: string\n): string =>\n mainStateTitle +\n ([MainStateType.MOVING.id, MainStateType.ON_MOVING.id].includes(mainState.id)\n ? ' - ' + speed\n : mainState.id === MainStateType.DOWNTIME.id\n ? ' - ' + downTimeReason\n : mainState.id === MainStateType.OFFLINE.id\n ? ''\n : mainStateDate\n ? ' - ' + extraMessage\n : '');\n\nexport const getUnitIcon = (themeId: number): string => {\n switch (themeId) {\n case 0:\n return 'Normal';\n case 1:\n return 'Car';\n case 2:\n return 'Buses';\n case 3:\n return 'Motorcycles';\n case 4:\n return 'Trucks';\n case 5:\n return 'Car';\n // return 'Funny'; //Pendiente\n case 6:\n return 'PersonalMale';\n case 7:\n return 'PersonalFemale';\n case 8:\n return 'Panel';\n case 9:\n return 'PickUp';\n case 10:\n return 'MiniMan';\n case 11:\n return 'Container';\n case 12:\n return 'Cab';\n case 13:\n return 'Platform';\n case 14:\n return 'ManHealth';\n case 15:\n return 'WomanHealth';\n case 16:\n return 'Taxis';\n case 17:\n return 'Ship';\n case 18:\n return 'CargoShip';\n case 19:\n return 'Sailboat';\n case 20:\n return 'Excavator';\n case 21:\n return 'Bulldozer';\n case 22:\n return 'LiftTruck';\n case 23:\n return 'Scooter';\n case 24:\n return 'JetSki';\n case 25:\n return 'Ambulances';\n case 26:\n return 'Planes';\n case 27:\n return 'Airplanes';\n case 28:\n return 'Helicopter';\n case 29:\n return 'DumpTruck';\n case 30:\n return 'Steamroller';\n case 31:\n return 'TankerTruck';\n case 32:\n return 'ConcreteMixerTruck';\n case 33:\n return 'CraneTruck';\n case 34:\n return 'DeliveryTruck';\n case 35:\n return 'Tank';\n case 200:\n return 'Special';\n }\n return 'Special';\n};\n\nexport const getUnitActionIcon = (deviceActionId: number): string => {\n switch (deviceActionId) {\n case 0:\n return 'RequestLocation';\n case 1:\n return 'Paralyze';\n case 2:\n return 'Enable';\n case 3:\n return 'OpenDoor';\n case 4:\n return 'OpenDoor2';\n case 5:\n return 'ScriptLoader';\n case 6:\n return 'Geofences1';\n case 8:\n return 'Measurement';\n case 9:\n return 'OpenPadlock';\n case 11:\n return 'RequestMileage';\n case 12:\n return 'ChangeTemperatureLimits';\n case 13:\n return 'ClosePadlock';\n case 20:\n return 'NormalFrequency2m_10m';\n case 21:\n return 'SlowFrequency2h';\n case 22:\n return 'FastFrequency1m_5m';\n case 23:\n return 'SlowFrequency4h_4h';\n case 30:\n return 'Band850'; //Pendiente\n case 31:\n return 'Band900'; //Pendiente\n case 32:\n return 'Band1800'; //Pendiente\n case 33:\n return 'Band1900'; //Pendiente\n case 34:\n return 'Band850_1900GuatemalaNicaragua'; //Pendiente\n case 35:\n return 'Band900_1800CostaRica'; //Pendiente\n case 36:\n return 'Band900_1900'; //Pendiente\n case 50:\n return 'Screenshot';\n case 51:\n return 'StartVideoCameraRecording';\n case 52:\n return 'StopVideoRecording';\n case 53:\n return 'CaptureImageOutdoorCamera';\n case 54:\n return 'StartOutdoorVideoCameraRecording';\n case 55:\n return 'LiveVideo';\n case 56:\n return 'LiveVideoOutdoorCamera';\n case 57:\n return 'StopLiveVideo';\n case 60:\n return 'ActivateMonitoringVoice';\n case 61:\n return 'DisableMonitoringVoice';\n case 70:\n return 'ActivateLapReport';\n case 71:\n return 'TurnOffLapReporting';\n case 80:\n return 'EnableSecurity';\n case 81:\n return 'DisableSecurity';\n case 90:\n return 'ResetUnit';\n case 91:\n return 'ResetGPS';\n case 92:\n return 'FullTank';\n case 93:\n return 'FastFrequency30seg_5m';\n case 100:\n return 'ScriptResponse';\n case 1000:\n return 'SetMaximumSpeed';\n case 1001:\n return 'SetMaximumStopTime';\n case 1002:\n return 'ManualReport';\n case 1003:\n return 'MovementTransmissionFrequency';\n case 1004:\n return 'ParkedTransmissionFrequency';\n case 1005:\n return 'InstantGPSModuleChange';\n case 1006:\n return 'Message';\n case 1007:\n return 'AssignMonitoringUser';\n case 1008:\n return 'UnassignMonitoringUser';\n case 1009:\n return 'TransmissionFrequency';\n case 1010:\n return 'ActivateLongRoutes';\n case 1011:\n return 'DisableLongRoutes';\n case 1200:\n return 'GoToNextSection';\n }\n return 'GoToNextSection';\n};\n\nexport const getUnitMainStateIconAndSize = (mainStateId: number): Array => {\n switch (mainStateId) {\n case 1:\n return ['Alert-12', 30]; //Apagado\n case 2:\n return ['Moving', 30]; //En movimiento\n case 3:\n return ['Idle', 30]; //Ocioso\n case 4:\n return ['Stopped', 30]; //Detenido\n case 5:\n return ['Alert-11', 30]; //Encendido\n default:\n return ['XCircle', 17]; //Fuera de lĆ­nea\n }\n};\n\nexport const getUnitCommunicationDiagnosticsIcon = (lastCommunicationDate) => {\n if (lastCommunicationDate) {\n const date1 = new Date();\n const date2 = new Date(lastCommunicationDate);\n const hoursDiff = Math.abs(date1.getTime() - date2.getTime()) / 36e5;\n if (hoursDiff <= 1 / 3) return 'CommunicationDiagnosticsGreen';\n else if (hoursDiff <= 24) return 'CommunicationDiagnosticsYellow';\n else return 'CommunicationDiagnosticsRed';\n } else return 'CommunicationDiagnosticsRed';\n};\n\nexport const getUnitHeadingIcon = (heading = 0) => {\n //Norte\n if (heading < 22.5) return 'ArrowUp';\n //Noreste\n else if (heading < 67.5) return 'ArrowUpRight';\n //Este\n else if (heading < 112.5) return 'ArrowRight';\n //Sureste\n else if (heading < 157.5) return 'ArrowDownRight';\n //Sur\n else if (heading < 202.5) return 'ArrowDown';\n //Suroeste\n else if (heading < 247.5) return 'ArrowDownLeft';\n //Oeste\n else if (heading < 292.5) return 'ArrowLeft';\n //Noroeste\n else if (heading < 337.5) return 'ArrowUpLeft';\n};\n\nexport const getUnitHeadingFormat = (heading = 0) => {\n //Norte\n if (heading < 22.5) return 'common.north';\n //Noreste\n else if (heading < 67.5) return 'common.northeast';\n //Este\n else if (heading < 112.5) return 'common.east';\n //Sureste\n else if (heading < 157.5) return 'common.southeast';\n //Sur\n else if (heading < 202.5) return 'common.south';\n //Suroeste\n else if (heading < 247.5) return 'common.southwest';\n //Oeste\n else if (heading < 292.5) return 'common.west';\n //Noroeste\n else return 'common.norwest';\n};\n\nexport const getDatesDifferenceString = (date1, date2, intl) => {\n const [endTime, startTime] =\n new Date(date1).getTime() > new Date(date2).getTime()\n ? [new Date(date1).getTime(), new Date(date2).getTime()]\n : [new Date(date2).getTime(), new Date(date1).getTime()];\n return getTimeDifferenceString(startTime, endTime, intl);\n};\n\nexport const getTimeDifferenceString = (startTime, endTime, intl) => {\n const days = Math.floor(Math.abs(endTime - startTime) / (1000 * 60 * 60 * 24));\n const hours = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60)\n );\n const minutes = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * 60 * (24 * days + hours))) / (1000 * 60)\n );\n const seconds = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * (24 * 60 * days + 60 * hours + minutes))) / 1000\n );\n return (\n (days > 0 ? `${days} ${intl.formatMessage({ id: 'common.days' })} ` : '') +\n (hours > 0 ? `${hours} ${intl.formatMessage({ id: 'common.hours' })} ` : '') +\n (minutes > 0 ? `${minutes} ${intl.formatMessage({ id: 'common.minutes' })} ` : '') +\n (seconds > 0 ? `${seconds} ${intl.formatMessage({ id: 'common.seconds' })} ` : '')\n );\n};\n\nexport const getIconByDatesDifference = (date1, date2) => {\n const endDate = new Date(date1).getTime();\n const startDate = new Date(date2).getTime();\n const minutes = Math.floor(Math.abs(endDate - startDate) / (1000 * 60));\n if (minutes >= 0 && minutes <= 5) {\n return 'Parking01';\n } else if (minutes > 5 && minutes <= 15) {\n return 'Parking02';\n } else if (minutes > 15 && minutes <= 30) {\n return 'Parking03';\n } else if (minutes > 30 && minutes <= 60) {\n return 'Parking04';\n } else if (minutes > 60 && minutes <= 60 * 4) {\n return 'Parking04';\n } else if (minutes > 60 * 4 && minutes <= 60 * 8) {\n return 'Parking06';\n } else if (minutes > 60 * 8) {\n return 'Parking07';\n }\n};\n\nexport const getUnitsCompleteData = (unit, liveUnit, state, selectedOrganizationId?) => {\n const intl = appIntl();\n const {\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder,\n ...unitLiveStatus\n } = liveUnit;\n\n const speedFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(\n unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed\n )\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).speed;\n\n const odometerFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(unitLiveStatus.odometer)\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance;\n\n const speedLimit = authSelectors.getParsers(state).convertKilometersToAuthUserDistanceSystem(240);\n\n const distanceFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(unitLiveStatus?.historicalPositions?.distance || 0)\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance;\n\n const deviceMetrics = deviceMetricsOrder\n ? deviceMetricsOrder.map((id) => deviceMetricsSelectors.getDeviceMetric(state, id))\n : [];\n\n const deviceActions = deviceActionsOrder\n ? deviceActionsOrder.map((id) => deviceActionsSelectors.getDeviceAction(state, id))\n : [];\n\n const groups = groupsOrder ? groupsOrder.map((id) => groupsSelectors.getGroup(state, id)) : [];\n\n const reports = reportsOrder\n ? reportsOrder.map((id) => reportsSelectors.getReport(state, id))\n : [];\n\n const images = imagesOrder ? imagesOrder.map((id) => imagesSelectors.getImage(state, id)) : [];\n\n const sensors = sensorsOrder\n ? sensorsOrder.map((id) => sensorsSelectors.getSensor(state, id))\n : [];\n\n return {\n ...unit,\n ...unitLiveStatus,\n speedLimit,\n odometerFormat,\n hourMeterFormat: formatHourMeter(unitLiveStatus.hourMeter),\n mainStateId: unitLiveStatus.mainStateId || 0,\n mainState: GetMainStateById(unitLiveStatus.mainStateId),\n mainStateName: GetMainStateName(\n GetMainStateById(unitLiveStatus.mainStateId),\n intl.formatMessage({ id: GetMainStateById(unitLiveStatus.mainStateId).intl }),\n unitLiveStatus.mainStateDate,\n speedFormat,\n unitLiveStatus.downtimeReasonDescription,\n moment(unitLiveStatus.mainStateDate).fromNow()\n ),\n speed: unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed,\n speedFormat,\n headingFormat: intl.formatMessage({\n id: getUnitHeadingFormat(unitLiveStatus.heading)\n }),\n historicalPositions: {\n allPositions: unitLiveStatus?.historicalPositions?.allPositions || [],\n distance: unitLiveStatus?.historicalPositions?.distance || 0,\n parkedPositions: unitLiveStatus?.historicalPositions?.parkedPositions || [],\n polyline: unitLiveStatus?.historicalPositions?.polyline || [],\n positions: unitLiveStatus?.historicalPositions?.positions || [],\n distanceFormat: distanceFormat\n },\n deviceMetrics: deviceMetrics,\n deviceActions: deviceActions,\n groups: groups,\n reports: reports,\n images: images,\n sensors: sensors,\n isShownInMap: selectedOrganizationId\n ? selectedOrganizationId === unit.organizationId\n ? true\n : false\n : true\n };\n};\n","export const env = { ...process.env, ...window['env'] };\n","import * as types from '../../types/routes';\n\nexport const startFetchingRoutes = (filters = {}) => ({\n type: types.ROUTES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutes = (entities, order, operatorId, organizationId) => ({\n type: types.ROUTES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingRoutes = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingRoutes = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.ROUTES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingRoutes = (entities, order, operatorId, organizationId) => ({\n type: types.ROUTES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingRoutes = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingRoute = (route) => ({\n type: types.ROUTE_ADD_STARTED,\n payload: route\n});\nexport const completeAddingRoute = (oldId, routeInformation) => ({\n type: types.ROUTE_ADD_COMPLETED,\n payload: { oldId, routeInformation }\n});\nexport const failAddingRoute = (oldId, error) => ({\n type: types.ROUTE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingRoute = (route) => ({\n type: types.ROUTE_EDIT_STARTED,\n payload: route\n});\nexport const completeEditingRoute = (routeInformation) => ({\n type: types.ROUTE_EDIT_COMPLETED,\n payload: routeInformation\n});\nexport const failEditingRoute = (oldRoute, error) => ({\n type: types.ROUTE_EDIT_FAILED,\n payload: {\n oldRoute,\n error\n }\n});\n\nexport const startRemovingRoute = (routeId) => ({\n type: types.ROUTE_REMOVE_STARTED,\n payload: {\n routeId\n }\n});\nexport const completeRemovingRoute = (routeId) => ({\n type: types.ROUTE_REMOVE_COMPLETED,\n payload: {\n routeId\n }\n});\nexport const failRemovingRoute = (routeId, error) => ({\n type: types.ROUTE_REMOVE_FAILED,\n payload: {\n routeId,\n error\n }\n});\n\nexport const startRemovingRoutes = (routeIds) => ({\n type: types.ROUTES_REMOVE_STARTED,\n payload: {\n routeIds\n }\n});\nexport const completeRemovingRoutes = (routeIds) => ({\n type: types.ROUTES_REMOVE_COMPLETED,\n payload: {\n routeIds\n }\n});\nexport const failRemovingRoutes = (routeIds, error) => ({\n type: types.ROUTES_REMOVE_FAILED,\n payload: {\n routeIds,\n error\n }\n});\n\nexport const selectRoute = (routeId) => ({\n type: types.ROUTE_SELECTED,\n payload: routeId\n});\n\nexport const selectAllRoutes = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_SELECTED,\n payload: routeIds\n});\n\nexport const deselectRoute = (routeId) => ({\n type: types.ROUTE_DESELECTED,\n payload: routeId\n});\n\nexport const deselectAllRoutes = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_DESELECTED,\n payload: routeIds\n});\n\nexport const startCopyRoute = (\n routeId,\n newRouteName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTE_COPY_STARTED,\n payload: { routeId, newRouteName, organizationId, divisionId, subdivisionId }\n});\nexport const completeCopyRoute = (\n routeId,\n newRouteId,\n newRouteName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTE_COPY_COMPLETED,\n payload: { routeId, newRouteId, newRouteName, organizationId, divisionId, subdivisionId }\n});\nexport const failCopyRoute = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTE_COPY_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const showRouteInMap = (routeId) => ({\n type: types.ROUTE_SHOW_IN_MAP,\n payload: routeId\n});\n\nexport const showAllRoutesInMap = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_SHOW_IN_MAP,\n payload: routeIds\n});\n\nexport const hideRouteInMap = (routeId) => ({\n type: types.ROUTE_HIDE_IN_MAP,\n payload: routeId\n});\n\nexport const hideAllRoutesInMap = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_HIDE_IN_MAP,\n payload: routeIds\n});\n","export * from './backlog';\nexport * from './board';\nexport * from './report';\n\nexport const JOB_FETCH_STARTED = 'JOB_FETCH_STARTED';\nexport const JOB_FETCH_COMPLETED = 'JOB_FETCH_COMPLETED';\nexport const JOB_FETCH_FAILED = 'JOB_FETCH_FAILED';\n","export const WORKPLANS_VISITS_FETCH_STARTED = 'WORKPLANS_VISITS_FETCH_STARTED';\nexport const WORKPLANS_VISITS_FETCH_COMPLETED = 'WORKPLANS_VISITS_FETCH_COMPLETED';\nexport const WORKPLANS_VISITS_FETCH_FAILED = 'WORKPLANS_VISITS_FETCH_FAILED';\n\nexport const WORKPLANS_ALL_VISITS_FETCH_STARTED = 'WORKPLANS_ALL_VISITS_FETCH_STARTED';\nexport const WORKPLANS_ALL_VISITS_FETCH_COMPLETED = 'WORKPLANS_ALL_VISITS_FETCH_COMPLETED';\nexport const WORKPLANS_ALL_VISITS_FETCH_FAILED = 'WORKPLANS_ALL_VISITS_FETCH_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((divisionId) => {\n newState[divisionId] = {\n isSelected: false,\n ...state[divisionId],\n ...entities[divisionId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.DIVISION_ADD_COMPLETED: {\n const { oldId, division } = action.payload;\n const newState = omit(state, oldId);\n newState[division.divisionId] = {\n ...state[oldId],\n ...division,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.DIVISION_EDIT_COMPLETED: {\n const division = action.payload;\n return {\n ...state,\n [division.divisionId]: {\n ...omit(state[division.divisionId], ['oldDivision']),\n ...omit(division, ['oldDivision']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.DIVISION_ADD_STARTED: {\n const division = action.payload;\n const newState = { ...state };\n newState[division.divisionId] = {\n isSelected: false,\n ...division,\n isConfirmed: false\n };\n return newState;\n }\n case types.DIVISION_EDIT_STARTED: {\n const division = action.payload;\n return {\n ...state,\n [division.divisionId]: {\n ...state[division.divisionId],\n oldDivision: state[division.divisionId],\n ...division,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.DIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.DIVISION_EDIT_FAILED: {\n const { oldDivision } = action.payload;\n return {\n ...state,\n [oldDivision.divisionId]: {\n ...omit(state[oldDivision.divisionId], ['oldDivision']),\n ...oldDivision,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.DIVISION_REMOVE_COMPLETED: {\n const { divisionId } = action.payload;\n return omit(state, divisionId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.DIVISION_SELECTED: {\n const divisionId = action.payload;\n const newState = {\n ...state,\n [divisionId]: {\n ...state[divisionId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.DIVISION_DESELECTED: {\n const divisionId = action.payload;\n return {\n ...state,\n [divisionId]: {\n ...state[divisionId],\n isSelected: false\n }\n };\n }\n\n case types.DIVISIONS_ALL_SELECTED: {\n const divisionIds = action.payload;\n const newState = { ...state };\n if (divisionIds.length == 0) {\n forEach(state, (division: any, divisionId) => {\n newState[divisionId] = {\n ...division,\n isSelected: true\n };\n });\n } else {\n divisionIds.forEach((divisionId) => {\n newState[divisionId] = {\n ...state[divisionId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.DIVISIONS_ALL_DESELECTED: {\n const divisionIds = action.payload;\n const newState = { ...state };\n if (divisionIds.length == 0) {\n forEach(state, (division: any, divisionId) => {\n newState[divisionId] = {\n ...division,\n isSelected: false\n };\n });\n } else {\n divisionIds.forEach((divisionId) => {\n newState[divisionId] = {\n ...state[divisionId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.DIVISION_ADD_COMPLETED: {\n const { oldId, division } = action.payload;\n return state.map((divisionId) => (divisionId === oldId ? division.divisionId : divisionId));\n }\n\n case types.DIVISION_REMOVE_COMPLETED: {\n const { divisionId } = action.payload;\n return state.filter((divisionIdState) => divisionIdState !== divisionId);\n }\n\n //CASE ADD STARTED\n case types.DIVISION_ADD_STARTED: {\n const division = action.payload;\n return [...state, division.divisionId];\n }\n\n //CASE ADD FAILED\n case types.DIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((divisionIdState) => divisionIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.DIVISIONS_FETCH_STARTED: {\n return true;\n }\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.DIVISIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_ADD_STARTED: {\n return true;\n }\n case types.DIVISION_ADD_COMPLETED:\n case types.DIVISION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_EDIT_STARTED: {\n return true;\n }\n case types.DIVISION_EDIT_COMPLETED:\n case types.DIVISION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_REMOVE_STARTED: {\n return true;\n }\n case types.DIVISION_REMOVE_COMPLETED:\n case types.DIVISION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.DIVISIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISIONS_FETCH_STARTED:\n case types.DIVISIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.DIVISIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISIONS_PARTIAL_FETCH_STARTED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_ADD_STARTED:\n case types.DIVISION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_EDIT_STARTED:\n case types.DIVISION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_REMOVE_STARTED:\n case types.DIVISION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst divisions = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default divisions;\n\n//Own state\nexport const getOwnState = (state) => state.divisions;\n\n//Information\nexport const getDivision = (state, divisionId) => {\n const division = getOwnState(state).byId[divisionId];\n if (division) {\n const operator = operatorSelectors.getOperator(state, division.operatorId);\n const organization = organizationSelectors.getOrganization(state, division.organizationId);\n return {\n ...division,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : ''\n };\n } else return undefined;\n};\nexport const getDivisionsList = (state) =>\n getOwnState(state)\n .order.map((id) => getDivision(state, id))\n .filter((division) => division.divisionStatus > 0);\nexport const getDivisionsListByMembership = (state, membership) => {\n //Se filtra por operatorId y organizationId\n if (membership.operatorId) {\n if (membership.organizationId) {\n return getDivisionsList(state).filter(\n (division) =>\n division.operatorId === membership.operatorId &&\n division.organizationId === membership.organizationId\n );\n }\n return getDivisionsList(state).filter(\n (division) => division.operatorId === membership.operatorId\n );\n }\n //Si no se ha seleccionado una organizaciĆ³n se devuelve la lista completa\n else return getDivisionsList(state);\n};\n\nexport const getDivisionsListBySelectedOrganization = (state, membership) => {\n //Se filtra por organizationId\n if (membership.organizationId) {\n return getDivisionsList(state).filter(\n (division) => division.organizationId === membership.organizationId\n );\n }\n //Si no se ha seleccionado una organizaciĆ³n se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedDivisions = (state) => {\n const selectedDivisions = getDivisionsList(state).filter((division) => division.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedDivisions.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedDivisions.length > 0) return selectedDivisions;\n};\n\nexport const getSelectedDivision = (state) => {\n const selectedDivisions = getDivisionsList(state).filter((division) => division.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedDivisions.length === 1) return selectedDivisions[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListDivisions = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListDivisions = (state) => getOwnState(state).isFetchingList;\nexport const isAddingDivision = (state) => getOwnState(state).isAdding;\nexport const isEditingDivision = (state) => getOwnState(state).isEditing;\nexport const isRemovingDivision = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListDivisionsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListDivisionsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingDivisionErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingDivisionErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingDivisionErrors = (state) => getOwnState(state).errorRemoving;\n","/* -------------------------------------------------------------------------- */\n/* Componente FetchEntities */\n/* -------------------------------------------------------------------------- */\n// Este componente es utilizado para cargar cualquier entity\n// Simplemente se debe enviar el use{Entity} en verdadero\n// Si desea que se cada cierto tiempo se este viendo si el entity debe actualizarse coloque un entity timeout\n// Puede utilizar varios componentes FetchEntities para diferenciar los que necesitan timeout de los que no\n\nimport { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport * as entityActions from '../../actions';\nimport * 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\nexport interface FilterMapBounds {\n operatorId?: number;\n organizationId?: number;\n bounds?: any;\n}\n\ninterface Props {\n useUnits?: boolean;\n unitsFilters?: DefaultFilters;\n useSubdivisions?: boolean;\n subdivisionsFilters?: DefaultFilters;\n useMaintenanceLines?: boolean;\n maintenanceLinesFilters?: DefaultFilters;\n useVehicles?: boolean;\n vehiclesFilters?: DefaultFilters;\n useSims?: boolean;\n simsFilters?: DefaultFilters;\n useModules?: boolean;\n modulesFilters?: DefaultFilters;\n useDrivers?: boolean;\n driversFilters?: DefaultFilters;\n useAgents?: boolean;\n useServiceClasses?: boolean;\n useServiceClassesDropdown?: boolean;\n useUsers?: boolean;\n usersFilters?: DefaultFilters;\n useOperators?: boolean;\n useDivisions?: boolean;\n divisionsFilters?: DefaultFilters;\n useOrganizations?: boolean;\n useContacts?: boolean;\n useWorkplans?: boolean;\n workplansFilters?: DefaultFilters;\n useGeofences?: boolean;\n geofencesFilters?: FilterMapBounds;\n useSchedules?: boolean;\n useForms?: boolean;\n useRoutes?: boolean;\n routesFilters?: DefaultFilters;\n useCountries?: boolean;\n useLocations?: boolean;\n locationsFilters?: FilterMapBounds;\n useOffices?: boolean;\n officesFilters?: DefaultFilters;\n useAssets?: boolean;\n assetsFilters?: DefaultFilters;\n useSensors?: boolean;\n useJobsBacklog?: boolean;\n jobsBacklogFilters?: DefaultFilters;\n useGroups?: boolean;\n groupsFilters?: DefaultFilters;\n useOrganizationContracts?: boolean;\n organizationContractsFilters?: DefaultFilters;\n useContractTemplates?: boolean;\n contractTemplatesFilters?: DefaultFilters;\n useCustomers?: boolean;\n customersFilters?: DefaultFilters;\n useProtocols?: boolean;\n protocolsFilters?: DefaultFilters;\n 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 bounds: locationsFilters?.bounds\n }\n ]);\n };\n\n const fetchOffices = (officesFilters) => {\n if (useOffices && officesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_OFFICES,\n operatorId: officesFilters?.operatorId,\n organizationId: officesFilters?.organizationId\n }\n ]);\n };\n\n const fetchDrivers = (driversFilters) => {\n if (useDrivers && driversFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_DRIVERS,\n operatorId: driversFilters?.operatorId,\n organizationId: driversFilters?.organizationId\n }\n ]);\n };\n\n const fetchWorkplans = (workplansFilters) => {\n if (useWorkplans && workplansFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_WORKPLANS,\n operatorId: workplansFilters?.operatorId,\n organizationId: workplansFilters?.organizationId\n }\n ]);\n };\n\n const fetchGeofences = (geofencesFilters) => {\n if (useGeofences && geofencesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_GEOFENCES,\n operatorId: geofencesFilters?.operatorId,\n organizationId: geofencesFilters?.organizationId,\n bounds: geofencesFilters?.bounds\n }\n ]);\n };\n\n const fetchRoutes = (routesFilters) => {\n if (useRoutes && routesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ROUTES,\n operatorId: routesFilters?.operatorId,\n organizationId: routesFilters?.organizationId\n }\n ]);\n };\n\n const fetchUnits = (unitsFilters) => {\n if (useUnits && unitsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_UNITS,\n operatorId: unitsFilters?.operatorId,\n organizationId: unitsFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchVehicles = (vehiclesFilters) => {\n if (useVehicles && vehiclesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_VEHICLES,\n operatorId: vehiclesFilters?.operatorId,\n organizationId: vehiclesFilters?.organizationId\n }\n ]);\n };\n\n const fetchAssets = (assetsFilters) => {\n if (useAssets && assetsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ASSETS,\n operatorId: assetsFilters?.operatorId,\n organizationId: assetsFilters?.organizationId\n }\n ]);\n };\n\n const fetchJobsBacklog = (jobsFilters: DefaultFilters | undefined) => {\n if (useJobsBacklog && jobsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_JOBS_BACKLOG,\n operatorId: jobsFilters?.operatorId,\n organizationId: jobsFilters?.organizationId\n }\n ]);\n };\n\n const fetchUsers = (usersFilters) => {\n if (useUsers)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_USERS,\n operatorId: usersFilters?.operatorId,\n organizationId: usersFilters?.organizationId,\n allowNullOrganizationId: true,\n allowNullOperatorId: true\n }\n ]);\n };\n\n const fetchGroups = (groupsFilters) => {\n if (useGroups)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_GROUPS,\n operatorId: groupsFilters?.operatorId,\n organizationId: groupsFilters?.organizationId\n }\n ]);\n };\n\n const fetchOrganizationContracts = (organizationContractsFilters) => {\n if (useOrganizationContracts && organizationContractsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ORGANIZATION_CONTRACTS,\n operatorId: organizationContractsFilters?.operatorId,\n organizationId: organizationContractsFilters?.organizationId\n }\n ]);\n };\n\n const fetchContracTemplates = (contractTemplatesFilters) => {\n if (useContractTemplates && contractTemplatesFilters)\n dispatch(\n entityActions.startUpdatingEntities([\n {\n entityTypeId: ENTITY_CONTRACT_TEMPLATES,\n operatorId: contractTemplatesFilters?.operatorId,\n organizationId: contractTemplatesFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ])\n );\n };\n\n const fetchCustomers = (customersFilters) => {\n if (useCustomers && customersFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_CUSTOMERS,\n operatorId: customersFilters?.operatorId,\n organizationId: customersFilters?.organizationId\n }\n ]);\n };\n\n const fetchModules = (modulesFilters) => {\n if (useModules && modulesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_MODULES,\n operatorId: modulesFilters?.operatorId,\n organizationId: modulesFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchSims = (simsFilters) => {\n if (useSims && simsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SIM_CARDS,\n operatorId: simsFilters?.operatorId,\n organizationId: simsFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchServiceClasses = () => {\n if (useServiceClasses)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SERVICE_CLASSES,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchServiceClassesDropdown = () => {\n if (useServiceClassesDropdown) {\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SERVICE_CLASSES,\n isDropdown: true,\n allowNullOrganizationId: true\n }\n ]);\n }\n };\n\n const fetchProtocols = (protocolsFilters) => {\n if (useProtocols && protocolsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_PROTOCOLS,\n operatorId: protocolsFilters?.operatorId,\n organizationId: protocolsFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n 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","/* 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';\nimport routeCheckpoints, * as routeSelectorsCheckpoints from '../reducers/routeCheckpoints';\nimport { getDatesDifferenceString } from 'views/screens/Units/utils';\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\nexport const getRouteInformationFormat = (state, route) => {\n if (route) {\n return {\n ...route,\n distanceFormat: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.distance)\n .toFixed(2),\n speedLimitFormat: authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(route.speedLimit)\n };\n } else undefined;\n};\n\nexport const getRouteUnitFormat = (state, unit) => {\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n return {\n ...unit,\n realDistanceLabel: convertKilometersToAuthUserDistanceSystem(unit.realDistance || 0),\n calculatedDistanceLabel: convertMetersToAuthUserDistanceSystem(unit.calculatedDistance || 0),\n effectivenessLabel: (unit.effectiveness || 0).toString() + '%',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(unit.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n unit.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(unit.performanceOnRoute || 0)\n };\n};\n\nexport const getRoutesRouteInformationFormat = (state, route) => {\n return {\n ...route,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.calculatedDistance || 0),\n fuelConsumptionLabel: authSelectors\n .getParsers(state)\n .convertLitersToAuthUserCapacitySystem(route.fuelConsumption || 0),\n effectivenessLabel: (route.effectiveness || 0).toString() + '%'\n };\n};\n\nexport const getRouteExecutionInformationFormat = (state, routeExecution) => {\n const intl = appIntl();\n const parsers = authSelectors.getParsers(state);\n 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};\n","/* Tipos del reductor Entities */\n/* -------------------------------------------------------------------------- */\n\nexport const ENTITIES_FETCH_STARTED = 'ENTITIES_FETCH_STARTED';\nexport const ENTITIES_FETCH_COMPLETED = 'ENTITIES_FETCH_COMPLETED';\nexport const ENTITIES_FETCH_FAILED = 'ENTITIES_FETCH_FAILED';\nexport const ENTITIES_RESET_IS_FETCHED = 'ENTITIES_RESET_IS_FETCHED';\n\nexport const ENTITIES_UPDATE_STARTED = 'ENTITIES_UPDATE_STARTED';\nexport const ENTITIES_UPDATE_COMPLETED = 'ENTITIES_UPDATE_COMPLETED';\nexport const ENTITIES_UPDATE_FAILED = 'ENTITIES_UPDATE_FAILED';\n","/* -------------------------------------------------------------------------- */\n/* Componente Checkbox */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Switch genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\nimport { useEffect } from 'react';\nimport { FormGroup, CustomInput } from 'reactstrap';\nimport { v4 as UUIDv4 } from 'uuid';\n\ninterface Props {\n id?: string;\n field: any;\n label: string | JSX.Element;\n initialValue?: boolean;\n forceinitialvalue?: boolean;\n onChange?: (value: boolean) => void;\n onFocus?: () => void;\n style?: React.CSSProperties;\n classNameCustom?: string;\n disabled?: boolean;\n}\n\nconst CheckboxInput = (props: Props) => {\n const {\n id = `checkbox-${UUIDv4()}`,\n field,\n label,\n initialValue,\n forceinitialvalue,\n onChange,\n style = {},\n classNameCustom = '',\n disabled = false,\n onFocus\n } = props;\n useEffect(() => {\n if (!field.value) field.onChange(initialValue);\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue != undefined) field.onChange(forceinitialvalue);\n }, [forceinitialvalue]);\n return (\n \n {\n field.onChange(event.target.checked);\n if (onChange) onChange(event.target.checked);\n }}\n onFocus={onFocus}\n label={label}\n />\n \n );\n};\n\nCheckboxInput.defaultProps = {\n label: '',\n initialValue: false\n};\n\nexport default CheckboxInput;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n isSelected: false,\n ...state[subdivisionId],\n ...entities[subdivisionId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SUBDIVISION_ADD_COMPLETED: {\n const { oldId, subdivision } = action.payload;\n const newState = omit(state, oldId);\n newState[subdivision.subdivisionId] = {\n ...state[oldId],\n ...subdivision,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SUBDIVISION_EDIT_COMPLETED: {\n const subdivision = action.payload;\n return {\n ...state,\n [subdivision.subdivisionId]: {\n ...omit(state[subdivision.subdivisionId], ['oldSubdivision']),\n ...omit(subdivision, ['oldSubdivision']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SUBDIVISION_ADD_STARTED: {\n const subdivision = action.payload;\n const newState = { ...state };\n newState[subdivision.subdivisionId] = {\n isSelected: false,\n ...subdivision,\n isConfirmed: false\n };\n return newState;\n }\n case types.SUBDIVISION_EDIT_STARTED: {\n const subdivision = action.payload;\n return {\n ...state,\n [subdivision.subdivisionId]: {\n ...state[subdivision.subdivisionId],\n oldSubdivision: state[subdivision.subdivisionId],\n ...subdivision,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SUBDIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SUBDIVISION_EDIT_FAILED: {\n const { oldSubdivision } = action.payload;\n return {\n ...state,\n [oldSubdivision.subdivisionId]: {\n ...omit(state[oldSubdivision.subdivisionId], ['oldSubdivision']),\n ...oldSubdivision,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n const { subdivisionId } = action.payload;\n return omit(state, subdivisionId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SUBDIVISION_SELECTED: {\n const subdivisionId = action.payload;\n const newState = {\n ...state,\n [subdivisionId]: {\n ...state[subdivisionId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SUBDIVISION_DESELECTED: {\n const subdivisionId = action.payload;\n return {\n ...state,\n [subdivisionId]: {\n ...state[subdivisionId],\n isSelected: false\n }\n };\n }\n\n case types.SUBDIVISIONS_ALL_SELECTED: {\n const subdivisionIds = action.payload;\n const newState = { ...state };\n if (subdivisionIds.length == 0) {\n forEach(state, (subdivision: any, subdivisionId) => {\n newState[subdivisionId] = {\n ...subdivision,\n isSelected: true\n };\n });\n } else {\n subdivisionIds.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n ...state[subdivisionId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SUBDIVISIONS_ALL_DESELECTED: {\n const subdivisionIds = action.payload;\n const newState = { ...state };\n if (subdivisionIds.length == 0) {\n forEach(state, (subdivision: any, subdivisionId) => {\n newState[subdivisionId] = {\n ...subdivision,\n isSelected: false\n };\n });\n } else {\n subdivisionIds.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n ...state[subdivisionId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SUBDIVISION_ADD_COMPLETED: {\n const { oldId, subdivision } = action.payload;\n return state.map((subdivisionId) =>\n subdivisionId === oldId ? subdivision.subdivisionId : subdivisionId\n );\n }\n\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n const { subdivisionId } = action.payload;\n return state.filter((subdivisionIdState) => subdivisionIdState !== subdivisionId);\n }\n\n //CASE ADD STARTED\n case types.SUBDIVISION_ADD_STARTED: {\n const subdivision = action.payload;\n return [...state, subdivision.subdivisionId];\n }\n\n //CASE ADD FAILED\n case types.SUBDIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((subdivisionIdState) => subdivisionIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_FETCH_STARTED: {\n return true;\n }\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_ADD_STARTED: {\n return true;\n }\n case types.SUBDIVISION_ADD_COMPLETED:\n case types.SUBDIVISION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_EDIT_STARTED: {\n return true;\n }\n case types.SUBDIVISION_EDIT_COMPLETED:\n case types.SUBDIVISION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_REMOVE_STARTED: {\n return true;\n }\n case types.SUBDIVISION_REMOVE_COMPLETED:\n case types.SUBDIVISION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISIONS_FETCH_STARTED:\n case types.SUBDIVISIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISIONS_PARTIAL_FETCH_STARTED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_ADD_STARTED:\n case types.SUBDIVISION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_EDIT_STARTED:\n case types.SUBDIVISION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_REMOVE_STARTED:\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst subdivisions = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default subdivisions;\n\n//Own state\nexport const getOwnState = (state) => state.subdivisions;\n\n//Information\nexport const getSubdivision = (state, subdivisionId) => {\n const subdivision = getOwnState(state).byId[subdivisionId];\n if (subdivision) {\n const operator = subdivision.operatorId\n ? operatorSelectors.getOperator(state, subdivision.operatorId)\n : undefined;\n const organization = subdivision.organizationId\n ? organizationSelectors.getOrganization(state, subdivision.organizationId)\n : undefined;\n const division = subdivision.divisionId\n ? divisionSelectors.getDivision(state, subdivision.divisionId)\n : undefined;\n return {\n ...subdivision,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : ''\n };\n } else return undefined;\n};\nexport const getSubdivisionsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSubdivision(state, id))\n .filter((subdivision) => subdivision.subdivisionStatus > 0);\nexport const getSubdivisionsListByMembership = (state, membership) => {\n //Se filtra por divisionId\n if (membership.operatorId) {\n if (membership.organizationId) {\n if (membership.divisionId) {\n return getSubdivisionsList(state).filter(\n (subdivision) =>\n subdivision.operatorId === membership.operatorId &&\n subdivision.organizationId === membership.organizationId &&\n subdivision.divisionId === membership.divisionId\n );\n }\n return getSubdivisionsList(state).filter(\n (subdivision) =>\n subdivision.operatorId === membership.operatorId &&\n subdivision.organizationId === membership.organizationId\n );\n }\n return getSubdivisionsList(state).filter(\n (subdivision) => subdivision.operatorId === membership.operatorId\n );\n }\n //Si no se ha seleccionado una divisiĆ³n se devuelve la lista completa\n else return getSubdivisionsList(state);\n};\nexport const getSubdivisionsListBySelectedDivision = (state, membership) => {\n //Se filtra por divisionId\n if (membership.divisionId) {\n return getSubdivisionsList(state).filter(\n (subdivision) => subdivision.divisionId === membership.divisionId\n );\n }\n //Si no se ha seleccionado una divisiĆ³n se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedSubdivisions = (state) => {\n const selectedSubdivisions = getSubdivisionsList(state).filter(\n (subdivision) => subdivision.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedSubdivisions.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedSubdivisions.length > 0) return selectedSubdivisions;\n};\n\nexport const getSelectedSubdivision = (state) => {\n const selectedSubdivisions = getSubdivisionsList(state).filter(\n (subdivision) => subdivision.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSubdivisions.length === 1) return selectedSubdivisions[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSubdivisions = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSubdivisions = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSubdivision = (state) => getOwnState(state).isAdding;\nexport const isEditingSubdivision = (state) => getOwnState(state).isEditing;\nexport const isRemovingSubdivision = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListSubdivisionsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSubdivisionsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSubdivisionErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSubdivisionErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSubdivisionErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n viewWorkplanModule: 'WP001',\n assignWorkplan: 'WP002',\n searchWorkplans: 'WP020',\n viewPlansIndicator: 'WP021',\n viewLocationsIndicator: 'WP022',\n viewVisitsIndicator: 'WP023',\n viewExecutionIndicator: 'WP024',\n viewArrivalEffectivnessGraph: 'WP025',\n viewPermanenceEffectivenessGraph: 'WP026',\n viewLocationsUnitsEffectivenessGraph: 'WP027',\n changeUnit: 'WP028',\n finalizeWorkplanAssignment: 'WP029',\n viewWorkplanMonitor: 'WP019',\n cancelWorkplanAssignment: 'WP030',\n viewWorkplanReport: 'WP031',\n addWorkplan: 'WP035',\n editWorkplan: 'WP036',\n deleteWorkplan: 'WP037',\n viewWorkplanCatalog: 'WP038',\n scheduledWorkplanList: 'WP018',\n scheduledWorkplanEdit: 'WP032',\n scheduledWorkplanDelete: 'WP033',\n loginextConfiguration: 'WP042'\n};\n\nexport default permissions;\n","import * as types from '../types';\n\nexport const startFetchingMonitoringUsers = (filters = {}) => ({\n type: types.MONITORING_USERS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingMonitoringUsers = (entities, order, operatorId, organizationId) => ({\n type: types.MONITORING_USERS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingMonitoringUsers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MONITORING_USERS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingMonitoringUser = (monitoringUserId) => ({\n type: types.MONITORING_USER_FETCH_STARTED,\n payload: monitoringUserId\n});\n\nexport const completeFetchingMonitoringUser = (monitoringUser, order) => ({\n type: types.MONITORING_USER_FETCH_COMPLETED,\n payload: {\n monitoringUser,\n order\n }\n});\n\nexport const failFetchingMonitoringUser = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MONITORING_USER_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingMonitoringUsers = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingMonitoringUsers = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingMonitoringUsers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingMonitoringUser = (monitoringUser) => ({\n type: types.MONITORING_USER_ADD_STARTED,\n payload: monitoringUser\n});\nexport const completeAddingMonitoringUser = (oldId, monitoringUser) => ({\n type: types.MONITORING_USER_ADD_COMPLETED,\n payload: { oldId, monitoringUser }\n});\nexport const failAddingMonitoringUser = (oldId, error) => ({\n type: types.MONITORING_USER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingMonitoringUser = (monitoringUser) => ({\n type: types.MONITORING_USER_EDIT_STARTED,\n payload: monitoringUser\n});\nexport const completeEditingMonitoringUser = (oldId, monitoringUser) => ({\n type: types.MONITORING_USER_EDIT_COMPLETED,\n payload: { oldId, monitoringUser }\n});\nexport const failEditingMonitoringUser = (oldMonitoringUser, error) => ({\n type: types.MONITORING_USER_EDIT_FAILED,\n payload: {\n oldMonitoringUser,\n error\n }\n});\n\nexport const startRemovingMonitoringUser = (users, usersName) => ({\n type: types.MONITORING_USER_REMOVE_STARTED,\n payload: {\n users,\n usersName\n }\n});\nexport const completeRemovingMonitoringUser = (users, usersName) => ({\n type: types.MONITORING_USER_REMOVE_COMPLETED,\n payload: {\n users,\n usersName\n }\n});\nexport const failRemovingMonitoringUser = (users, error) => ({\n type: types.MONITORING_USER_REMOVE_FAILED,\n payload: {\n users,\n error\n }\n});\n\nexport const selectMonitoringUser = (monitoringUserId) => ({\n type: types.MONITORING_USER_SELECTED,\n payload: monitoringUserId\n});\n\nexport const deselectMonitoringUser = (monitoringUserId) => ({\n type: types.MONITORING_USER_DESELECTED,\n payload: monitoringUserId\n});\n\nexport const deselectAllMonitoringUsers = (\n monitoringUserIds = [] //List of MonitoringUserIds\n) => ({\n type: types.MONITORING_USERS_ALL_DESELECTED,\n payload: monitoringUserIds\n});\n\nexport const startUpdatingMonitoringUserPassword = (values) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_STARTED,\n payload: values\n});\n\nexport const completeUpdatingMonitoringUserPassword = (values) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingMonitoringUserPassword = (error) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_FAILED,\n payload: { error }\n});\n\nexport const startSavingMonitoringUserRolesAndPermissions = (values) => ({\n type: types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED,\n payload: values\n});\n\nexport const completeSavingMonitoringUserRolesAndPermissions = (values) => ({\n type: types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED,\n payload: values\n});\n\nexport const startAssigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_ASSIGN_SCHEDULE_STARTED,\n payload: userAssignSchedule\n});\n\nexport const completeAssigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_ASSIGN_SCHEDULE_COMPLETED,\n payload: userAssignSchedule\n});\n\nexport const completeUnassigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_UNASSIGN_SCHEDULE_COMPLETED,\n payload: userAssignSchedule\n});\n\nexport const startUnassigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_UNASSIGN_SCHEDULE_STARTED,\n payload: userAssignSchedule\n});\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/job';\n\ninterface JobBacklogSaveRequest {\n jobId?: number;\n jobTitle: string;\n}\n\ninterface JobsBacklogDeleteRequest {\n jobs: string;\n}\n\ninterface JobBacklogFilters {\n userFetchDate?: Date;\n}\n\ninterface JobsBacklogChangeStatusRequest {\n jobs: string;\n jobStatus?: number;\n comment?: string;\n}\n\ninterface JobsBacklogRescheduleJobsRequest {\n jobs: string;\n startDate?: any;\n dueDate?: any;\n comment?: string;\n}\n\ninterface JobsBacklogChangePriorityRequest {\n jobs: string;\n jobPriority?: number;\n}\n\ninterface JobsBacklogChangeStartDateRequest {\n jobs: string;\n startDate?: any;\n}\n\ninterface JobsBacklogChangeDueDateRequest {\n jobs: string;\n dueDate?: any;\n}\n\ninterface JobsBacklogChangeMinMaxTimeRequest {\n jobs: string;\n maxTime?: number;\n}\n\ninterface JobsBacklogAssignUsersRequest {\n jobs: string;\n userNames?: string;\n}\n\ninterface JobsBacklogAssignFormsRequest {\n jobs: string;\n formIds?: string;\n}\n\ninterface JobsBacklogAssignFilesRequest {\n jobs: string;\n fileIds?: string;\n}\n\ninterface JobBoardFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\ninterface JobsBoardChangeStatusRequest {\n jobs: string;\n jobStatus?: number;\n comment?: string;\n}\n\ninterface JobReportFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\ninterface JobReportByUserFilters {\n userName: string;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\nexport const getJobsBacklogListService = (\n request: JobBacklogFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getJobService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getJob`, request);\n};\n\nexport const saveJobBacklogService = (\n request: JobBacklogSaveRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: request.jobId ? 'Edit' : 'Create',\n name: request.jobTitle,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteJobsBacklogService = (\n request: JobsBacklogDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'jobs.job',\n action: 'Delete',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const changeJobsStatusService = (\n request: JobsBacklogChangeStatusRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStatus`, request);\n};\n\nexport const rescheduleJobsService = (\n request: JobsBacklogRescheduleJobsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rescheduleJobs`, request);\n};\n\nexport const changeJobsPriorityService = (\n request: JobsBacklogChangePriorityRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changePriority`, request);\n};\n\nexport const changeJobsStartDateService = (\n request: JobsBacklogChangeStartDateRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStartDate`, request);\n};\n\nexport const changeJobsDueDateService = (\n request: JobsBacklogChangeDueDateRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeDueDate`, request);\n};\n\nexport const changeJobsMinMaxTimeService = (\n request: JobsBacklogChangeMinMaxTimeRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeMinMaxTime`, request);\n};\n\nexport const assignJobsUsersService = (\n request: JobsBacklogAssignUsersRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignUsers`, request);\n};\n\nexport const assignJobsFormsService = (\n request: JobsBacklogAssignFormsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignForms`, request);\n};\n\nexport const assignJobsFilesService = (\n request: JobsBacklogAssignFilesRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignFiles`, request);\n};\n\nexport const getJobsBoardListService = (request: JobBoardFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getBoard`, request);\n};\n\nexport const changeJobsStatusBoardService = (\n request: JobsBoardChangeStatusRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStatus`, request);\n};\n\nexport const getJobsReportListService = (\n request: JobReportFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getReport`, request);\n};\n\nexport const getJobsReportByUserListService = (\n request: JobReportByUserFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getReportByUser`, request);\n};\n\nexport const importJobsService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importJobs`, request);\n};\n","import * as types from '../types';\n\nexport const startFetchingAgents = (filters = {}) => ({\n type: types.AGENTS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingAgents = (entities, order) => ({\n type: types.AGENTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingAgents = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingAgents = (entityTypeId) => ({\n type: types.AGENTS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingAgents = (entities, order) => ({\n type: types.AGENTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingAgents = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingAgent = (agentId) => ({\n type: types.AGENT_FETCH_STARTED,\n payload: agentId\n});\n\nexport const completeFetchingAgent = (agent) => ({\n type: types.AGENT_FETCH_COMPLETED,\n payload: agent\n});\n\nexport const failFetchingAgent = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingAgent = (agent) => ({\n type: types.AGENT_ADD_STARTED,\n payload: agent\n});\nexport const completeAddingAgent = (oldId, agent) => ({\n type: types.AGENT_ADD_COMPLETED,\n payload: { oldId, agent }\n});\nexport const failAddingAgent = (oldId, error) => ({\n type: types.AGENT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingAgent = (agent) => ({\n type: types.AGENT_EDIT_STARTED,\n payload: agent\n});\nexport const completeEditingAgent = (agent) => ({\n type: types.AGENT_EDIT_COMPLETED,\n payload: agent\n});\nexport const failEditingAgent = (oldAgent, error) => ({\n type: types.AGENT_EDIT_FAILED,\n payload: {\n oldAgent,\n error\n }\n});\n\nexport const startRemovingAgent = (agentId) => ({\n type: types.AGENT_REMOVE_STARTED,\n payload: {\n agentId\n }\n});\nexport const completeRemovingAgent = (agentId) => ({\n type: types.AGENT_REMOVE_COMPLETED,\n payload: {\n agentId\n }\n});\nexport const failRemovingAgent = (agentId, error) => ({\n type: types.AGENT_REMOVE_FAILED,\n payload: {\n agentId,\n error\n }\n});\n\nexport const selectAgent = (agentId) => ({\n type: types.AGENT_SELECTED,\n payload: agentId\n});\n\nexport const selectAllAgents = (\n agentIds = [] //List of AgentIds\n) => ({\n type: types.AGENTS_ALL_SELECTED,\n payload: agentIds\n});\n\nexport const deselectAgent = (agentId) => ({\n type: types.AGENT_DESELECTED,\n payload: agentId\n});\n\nexport const deselectAllAgents = (\n agentIds = [] //List of AgentIds\n) => ({\n type: types.AGENTS_ALL_DESELECTED,\n payload: agentIds\n});\n","import * as types from 'views/screens/Operators/types';\n\nexport const startFetchingOperators = (filters = {}) => ({\n type: types.OPERATORS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOperators = (entities, order) => ({\n type: types.OPERATORS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingOperators = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.OPERATORS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOperators = (entityTypeId) => ({\n type: types.OPERATORS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingOperators = (entities, order) => ({\n type: types.OPERATORS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingOperators = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.OPERATORS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOperator = (operator) => ({\n type: types.OPERATOR_ADD_STARTED,\n payload: operator\n});\nexport const completeAddingOperator = (oldId, operator) => ({\n type: types.OPERATOR_ADD_COMPLETED,\n payload: { oldId, operator }\n});\nexport const failAddingOperator = (oldId, error) => ({\n type: types.OPERATOR_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOperator = (operator) => ({\n type: types.OPERATOR_EDIT_STARTED,\n payload: operator\n});\nexport const completeEditingOperator = (operator) => ({\n type: types.OPERATOR_EDIT_COMPLETED,\n payload: operator\n});\nexport const failEditingOperator = (oldOperator, error) => ({\n type: types.OPERATOR_EDIT_FAILED,\n payload: {\n oldOperator,\n error\n }\n});\n\nexport const startEditingOperatorStandardPrices = (standardPrices) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_STARTED,\n payload: standardPrices\n});\nexport const completeEditingOperatorStandardPrices = (standardPrices) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_COMPLETED,\n payload: standardPrices\n});\nexport const failEditingOperatorStandardPrices = (oldStandardPrices, error) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_FAILED,\n payload: {\n oldStandardPrices,\n error\n }\n});\n\nexport const startRemovingOperator = (operatorId) => ({\n type: types.OPERATOR_REMOVE_STARTED,\n payload: {\n operatorId\n }\n});\nexport const completeRemovingOperator = (operatorId) => ({\n type: types.OPERATOR_REMOVE_COMPLETED,\n payload: {\n operatorId\n }\n});\nexport const failRemovingOperator = (operatorId, error) => ({\n type: types.OPERATOR_REMOVE_FAILED,\n payload: {\n operatorId,\n error\n }\n});\n\nexport const selectOperator = (operatorId) => ({\n type: types.OPERATOR_SELECTED,\n payload: operatorId\n});\n\nexport const selectAllOperators = (\n operatorIds = [] //List of OperatorIds\n) => ({\n type: types.OPERATORS_ALL_SELECTED,\n payload: operatorIds\n});\n\nexport const deselectOperator = (operatorId) => ({\n type: types.OPERATOR_DESELECTED,\n payload: operatorId\n});\n\nexport const deselectAllOperators = (\n operatorIds = [] //List of OperatorIds\n) => ({\n type: types.OPERATORS_ALL_DESELECTED,\n payload: operatorIds\n});\n","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","const permissions = {\n mileageReport: 'CR001',\n hourMetersReport: 'CR002',\n runningTimeReport: 'RU001',\n unitActivity: 'RU002',\n byUnitStopSummaryReport: 'RU005',\n byUnitScriptsHistoryReport: 'RU004',\n consolidatedStopSummaryReport: 'CR008',\n consolidatedOpportunityOfCharge: 'CR009',\n consolidatedUnitActivityReport: 'CR003',\n consolidatedEventActivityReport: 'CR004',\n parkedGeofenceReport: 'RP001',\n fuelSensorReport: 'CR005',\n scheduledReports: 'SR001',\n scheduledReportsCreate: 'SR002',\n scheduledReportsEdit: 'SR003',\n scheduledReportsDelete: 'SR004',\n systemCommunicationsDiagReport: 'AD014',\n systemNotificationsReport: 'AD015',\n accommodationChargesReport: 'AD016',\n administrativeReports: 'RP003',\n byUnitReports: 'RP004',\n consolidatedReports: 'RP005',\n listReports: 'RP006',\n deepSearch: 'RP007',\n consumptionAPIReport: 'AD006',\n readWebEvents: 'WE001',\n markReadedWebEvents: 'WE002',\n consolidatedSummary: 'CR007',\n readAPICost: 'AD017',\n systemUserHistory: 'AD019'\n};\n\nexport default permissions;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesReport';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { getDatesDifferenceString } from 'views/screens/Units/utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { unitsEntities, unitsOrder } = action.payload;\n const newState = { ...state };\n unitsOrder.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n ...state[unitId],\n ...unitsEntities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { unitsOrder } = action.payload;\n return union(unitsOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst routesById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { routesEntities, routesOrder } = action.payload;\n const newState = { ...state };\n routesOrder.forEach((routeId) => {\n newState[routeId] = {\n isSelected: false,\n ...state[routeId],\n ...routesEntities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst routesOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { routesOrder } = action.payload;\n return union(routesOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingReport = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_REPORT_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_REPORT_FETCH_COMPLETED:\n case types.ROUTES_REPORT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingReport = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_REPORT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_REPORT_FETCH_STARTED:\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesReport = combineReducers({\n byId,\n order,\n indicators,\n unitsById,\n unitsOrder,\n routesById,\n routesOrder,\n isFetchingReport,\n errorFetchingReport\n});\n\nexport default routesReport;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesReport;\n\n//Information\nexport const getRoutesExecution = (state, routeAssignmentId) => {\n const intl = appIntl();\n const routeExecution = getOwnState(state).byId[routeAssignmentId];\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersPerHourToAuthUserSpeedSystem,\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n return {\n ...routeExecution,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(routeExecution.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(routeExecution.calculatedDistance || 0),\n effectivenessLabel: (routeExecution.effectiveness || 0).toString() + '%',\n durationLabel: routeExecution.startDate\n ? getDatesDifferenceString(\n routeExecution.startDate,\n routeExecution.completionDate ?? routeExecution.cancelDate ?? new Date(),\n intl\n )\n : 'N/A',\n transitDurationLabel: routeExecution.transitDate\n ? getDatesDifferenceString(\n routeExecution.transitDate,\n routeExecution.completionDate ?? routeExecution.cancelDate ?? new Date(),\n intl\n )\n : 'N/A',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(routeExecution.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.performanceOnRoute || 0\n ),\n distanceProgress: convertKilometersToAuthUserDistanceSystem(\n routeExecution.distanceProgress || 0\n )\n };\n};\nexport const getRoutesExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesExecution(state, id));\nexport const getRoutesUnit = (state, unitId) => {\n const unit = getOwnState(state).unitsById[unitId];\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n return {\n ...unit,\n realDistanceLabel: convertKilometersToAuthUserDistanceSystem(unit.realDistance || 0),\n calculatedDistanceLabel: convertMetersToAuthUserDistanceSystem(unit.calculatedDistance || 0),\n effectivenessLabel: (unit.effectiveness || 0).toString() + '%',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(unit.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n unit.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(unit.performanceOnRoute || 0)\n };\n};\nexport const getRoutesUnitsList = (state) =>\n getOwnState(state).unitsOrder.map((id) => getRoutesUnit(state, id));\nexport const getRoutesRoute = (state, routeId) => {\n const route = getOwnState(state).routesById[routeId];\n return {\n ...route,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.calculatedDistance || 0),\n fuelConsumptionLabel: authSelectors\n .getParsers(state)\n .convertLitersToAuthUserCapacitySystem(route.fuelConsumption || 0),\n effectivenessLabel: (route.effectiveness || 0).toString() + '%'\n };\n};\nexport const getRoutesRoutesList = (state) =>\n getOwnState(state).routesOrder.map((id) => getRoutesRoute(state, id));\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n return [\n {\n title: intl.formatMessage({\n id: 'routes.total'\n }),\n bigIndicator: indicators.total || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.finalized'\n }),\n bigIndicator: indicators.finalized || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.canceled'\n }),\n bigIndicator: indicators.canceled || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.running'\n }),\n bigIndicator: indicators.running || 0\n }\n ];\n};\n\n//Status of sagas\nexport const isFetchingRoutesReport = (state) => getOwnState(state).isFetchingReport;\n\n//Errors\nexport const getFetchingRoutesReportErrors = (state) => getOwnState(state).errorFetchingReport;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport routesExecutions, * as routesSelectorsExecutions from '../routesExecutions';\nimport routeCheckpoints, * as routeSelectorsCheckpoints from '../routeCheckpoints';\nimport routesAssignments from '../routesAssignments';\nimport routesReport, * as routesSelectorsReport from '../routesReport';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routes';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport autoMergeLevel2 from 'redux-persist/es/stateReconciler/autoMergeLevel2';\nimport persistReducer from 'redux-persist/es/persistReducer';\nimport localforage from 'localforage';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ROUTES_FETCH_COMPLETED:\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((routeId) => {\n newState[routeId] = {\n isShownInMap: false,\n isSelected: false,\n ...state[routeId],\n ...entities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ROUTE_ADD_COMPLETED: {\n const {\n oldId,\n routeInformation: { route }\n } = action.payload;\n const newState = omit(state, oldId);\n newState[route.routeId] = {\n ...state[oldId],\n ...route,\n isShownInMap: true,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ROUTE_EDIT_COMPLETED: {\n const { route } = action.payload;\n return {\n ...state,\n [route.routeId]: {\n isShownInMap: false,\n ...omit(state[route.routeId], ['oldRoute']),\n ...omit(route, ['oldRoute']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ROUTE_ADD_STARTED: {\n const { route } = action.payload;\n const newState = { ...state };\n newState[route.routeId] = {\n isShownInMap: false,\n isSelected: false,\n ...route,\n isConfirmed: false\n };\n return newState;\n }\n case types.ROUTE_EDIT_STARTED: {\n const { route } = action.payload;\n return {\n ...state,\n [route.routeId]: {\n isShownInMap: false,\n ...state[route.routeId],\n oldRoute: state[route.routeId],\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ROUTE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ROUTE_EDIT_FAILED: {\n const { oldRoute } = action.payload;\n return {\n ...state,\n [oldRoute.routeId]: {\n isShownInMap: false,\n ...omit(state[oldRoute.routeId], ['oldRoute']),\n ...oldRoute,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ROUTE_REMOVE_COMPLETED: {\n const { routeId } = action.payload;\n return omit(state, routeId);\n }\n\n //TYPES SHOW AND HIDE ROUTES IN MAP\n case types.ROUTE_SHOW_IN_MAP: {\n const routeId = action.payload;\n const newState = {\n ...state,\n [routeId]: {\n ...state[routeId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.ROUTE_HIDE_IN_MAP: {\n const routeId = action.payload;\n return {\n ...state,\n [routeId]: {\n ...state[routeId],\n isShownInMap: false\n }\n };\n }\n\n case types.ROUTES_ALL_SHOW_IN_MAP: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isShownInMap: true\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ROUTES_ALL_HIDE_IN_MAP: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isShownInMap: false\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ROUTE_SELECTED: {\n const routeId = action.payload;\n const newState = {\n ...state,\n [routeId]: {\n ...state[routeId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ROUTE_DESELECTED: {\n const routeId = action.payload;\n return {\n ...state,\n [routeId]: {\n ...state[routeId],\n isSelected: false\n }\n };\n }\n\n case types.ROUTES_ALL_SELECTED: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isSelected: true\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ROUTES_ALL_DESELECTED: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isSelected: false\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //COPY ROUTE\n case types.ROUTE_COPY_COMPLETED: {\n const { routeId, newRouteId, newRouteName, organizationId, divisionId, subdivisionId } =\n action.payload;\n return {\n ...state,\n [newRouteId]: {\n isSelected: false,\n ...state[routeId],\n routeId: newRouteId,\n routeName: newRouteName,\n organizationId,\n divisionId,\n subdivisionId,\n isConfirmed: true\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ROUTES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ROUTE_ADD_COMPLETED: {\n const {\n oldId,\n routeInformation: { route }\n } = action.payload;\n return state.map((routeId) => (routeId === oldId ? route.routeId : routeId));\n }\n\n case types.ROUTE_REMOVE_COMPLETED: {\n const { routeId } = action.payload;\n return state.filter((routeIdState) => routeIdState !== routeId);\n }\n\n case types.ROUTES_REMOVE_COMPLETED: {\n const { routeIds } = action.payload;\n return state.filter((routeIdState) => !routeIds.includes(routeIdState));\n }\n\n //CASE ADD STARTED\n case types.ROUTE_ADD_STARTED: {\n const { route } = action.payload;\n return [...state, route.routeId];\n }\n\n //CASE ADD FAILED\n case types.ROUTE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((routeIdState) => routeIdState !== oldId);\n }\n\n //COPY ROUTE\n case types.ROUTE_COPY_COMPLETED: {\n const { newRouteId } = action.payload;\n return [...state, newRouteId];\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_FETCH_COMPLETED:\n case types.ROUTES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_PARTIAL_FETCH_COMPLETED:\n case types.ROUTES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_ADD_STARTED: {\n return true;\n }\n case types.ROUTE_ADD_COMPLETED:\n case types.ROUTE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_EDIT_STARTED: {\n return true;\n }\n case types.ROUTE_EDIT_COMPLETED:\n case types.ROUTE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_REMOVE_STARTED:\n case types.ROUTE_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_REMOVE_COMPLETED:\n case types.ROUTES_REMOVE_FAILED:\n case types.ROUTE_REMOVE_COMPLETED:\n case types.ROUTE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_COPY_STARTED: {\n return true;\n }\n case types.ROUTE_COPY_COMPLETED:\n case types.ROUTE_COPY_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_FETCH_STARTED:\n case types.ROUTES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_PARTIAL_FETCH_STARTED:\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_ADD_STARTED:\n case types.ROUTE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_EDIT_STARTED:\n case types.ROUTE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_REMOVE_FAILED:\n case types.ROUTE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_REMOVE_STARTED:\n case types.ROUTES_REMOVE_COMPLETED:\n case types.ROUTE_REMOVE_STARTED:\n case types.ROUTE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_COPY_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_COPY_COMPLETED:\n case types.ROUTE_COPY_STARTED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routes: any = combineReducers({\n routesExecutions,\n routesAssignments,\n routeCheckpoints,\n routesReport,\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n isCopying,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n errorCopying\n});\n\nconst routesPersistConfig = {\n key: 'routes',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'routesExecutions',\n 'routeCheckpoints',\n 'routesReport',\n 'isPartialFetchingList',\n 'isFetchingList',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isCopying',\n 'errorPartialFetchingList',\n 'errorFetchingList',\n 'errorAdding',\n 'errorEditing',\n 'errorRemoving',\n 'errorCopying'\n ],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(routesPersistConfig, routes);\n\n//Own state\nexport const getOwnState = (state) => state.routes;\n\n//Information\nexport const getRoute = (state, routeId): types.Route | undefined => {\n const route = getOwnState(state).byId[routeId];\n if (route) {\n return {\n ...route,\n checkpoints: routeSelectorsCheckpoints.getRouteCheckpointsListByRoute(state, route.routeId),\n distanceFormat: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.distance)\n .toFixed(2),\n speedLimitFormat: authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(route.speedLimit)\n };\n } else undefined;\n};\n\nexport const getRoutesList = (state): types.Route[] =>\n getOwnState(state)\n .order.map((id) => getRoute(state, id))\n .filter((route) => route.routeStatus > 0);\nexport const getRoutesListByMembership = (state, membership) => {\n return getRoutesList(state).filter(\n (route) =>\n membership &&\n (!membership.operatorId || membership.operatorId === route.operatorId) &&\n (!membership.organizationId || membership.organizationId === route.organizationId) &&\n (!membership.divisionId || membership.divisionId === route.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === route.subdivisionId)\n );\n};\nexport const getSelectedRoutes = (state) => {\n const selectedRoutes = getRoutesList(state).filter((route) => route.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedRoutes.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedRoutes.length > 0) return selectedRoutes;\n};\n\nexport const getSelectedRoute = (state) => {\n const selectedRoutes = getRoutesList(state).filter((route) => route.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedRoutes.length === 1) return selectedRoutes[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListRoutes = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListRoutes = (state) => getOwnState(state).isFetchingList;\nexport const isAddingRoute = (state) => getOwnState(state).isAdding;\nexport const isEditingRoute = (state) => getOwnState(state).isEditing;\nexport const isRemovingRoute = (state) => getOwnState(state).isRemoving;\nexport const isCopyingRoute = (state) => getOwnState(state).isCopying;\n\n//Errors\nexport const getPartialFetchingListRoutesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListRoutesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingRouteErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingRouteErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingRouteErrors = (state) => getOwnState(state).errorRemoving;\nexport const getCopyingRouteErrors = (state) => getOwnState(state).errorCopying;\n\n/* -------------------------------------------------------------------------- */\n/* ROUTES EXECUTIONS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getRoutesExecution = (state, assignmentId) =>\n routesSelectorsExecutions.getRoutesExecution(state, assignmentId);\nexport const getRoutesExecutionsList = (state) =>\n routesSelectorsExecutions.getRoutesExecutionsList(state);\nexport const getRoutesExecutionsIndicatorsInformation = (state) =>\n routesSelectorsExecutions.getIndicatorsInformation(state);\nexport const getRoutesExecutionsIndicators = (state) =>\n routesSelectorsExecutions.getIndicators(state);\nexport const getRoutesExecutionsTotalNotShown = (state) =>\n routesSelectorsExecutions.getTotalNotShown(state);\nexport const getRoutesExecutionsStatus = (state) =>\n routesSelectorsExecutions.getExecutionsStatus(state);\nexport const getRoutesExecutionsRunningStatus = (state) =>\n routesSelectorsExecutions.getRunningStatus(state);\n\n//Status of sagas\nexport const isFetchingRoutesExecutions = (state) =>\n routesSelectorsExecutions.isFetchingRoutesExecutions(state);\nexport const isCancelingRoutesExecution = (state) =>\n routesSelectorsExecutions.isCancelingRoutesExecution(state);\nexport const isFinalizingRoutesExecution = (state) =>\n routesSelectorsExecutions.isFinalizingRoutesExecution(state);\nexport const isCompletingRoutesExecution = (state) =>\n routesSelectorsExecutions.isCompletingRoutesExecution(state);\nexport const isRemovingRoutesExecution = (state) =>\n routesSelectorsExecutions.isRemovingRoutesExecution(state);\nexport const isPausingRoutesExecution = (state) =>\n routesSelectorsExecutions.isPausingRoutesExecution(state);\nexport const isStartingRoutesExecution = (state) =>\n routesSelectorsExecutions.isStartingRoutesExecution(state);\nexport const isUpdatingManualTransitRoutesExecution = (state) =>\n routesSelectorsExecutions.isUpdatingManualTransitRoutesExecution(state);\nexport const isSharingRoutesExecution = (state) =>\n routesSelectorsExecutions.isSharingRoutesExecution(state);\nexport const isChangingToAlternateRouteExecution = (state) =>\n routesSelectorsExecutions.isChangingToAlternateRouteExecution(state);\n\n//Errors\nexport const getFetchingRoutesExecutionsErrors = (state) =>\n routesSelectorsExecutions.getFetchingRoutesExecutionsErrors(state);\nexport const getCancelingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getCancelingRoutesExecutionErrors(state);\nexport const getFinalizingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getFinalizingRoutesExecutionErrors(state);\nexport const getCompletingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getCompletingRoutesExecutionErrors(state);\nexport const getRemovingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getRemovingRoutesExecutionErrors(state);\nexport const getPausingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getPausingRoutesExecutionErrors(state);\nexport const getStartingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getStartingRoutesExecutionErrors(state);\nexport const getUpdatingManualTransitRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getUpdatingManualTransitRoutesExecutionErrors(state);\nexport const getSharingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getSharingRoutesExecutionErrors(state);\nexport const getChangingToAlternateRouteErrors = (state) =>\n routesSelectorsExecutions.getChangingToAlternateRouteErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* ROUTES REPORT */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getRoutesReportExecution = (state, visitId) =>\n routesSelectorsReport.getRoutesExecution(state, visitId);\nexport const getRoutesReportExecutionsList = (state) =>\n routesSelectorsReport.getRoutesExecutionsList(state);\nexport const getRoutesReportUnit = (state, visitId) =>\n routesSelectorsReport.getRoutesUnit(state, visitId);\nexport const getRoutesReportUnitsList = (state) => routesSelectorsReport.getRoutesUnitsList(state);\nexport const getRoutesReportRoute = (state, visitId) =>\n routesSelectorsReport.getRoutesRoute(state, visitId);\nexport const getRoutesReportRoutesList = (state) =>\n routesSelectorsReport.getRoutesRoutesList(state);\nexport const getRoutesReportIndicators = (state) => routesSelectorsReport.getIndicators(state);\n\n//Status of sagas\nexport const isFetchingRoutesReport = (state) =>\n routesSelectorsReport.isFetchingRoutesReport(state);\n\n//Errors\nexport const getFetchingRoutesReportErrors = (state) =>\n routesSelectorsReport.getFetchingRoutesReportErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* ROUTE CHECKPOINTS */\n/* -------------------------------------------------------------------------- */\n//Status of sagas\nexport const isFetchingListRouteCheckpoints = (state) =>\n routeSelectorsCheckpoints.isFetchingListRouteCheckpoints(state);\n\n//Errors\nexport const getFetchingListRouteCheckpointsErrors = (state) =>\n routeSelectorsCheckpoints.getFetchingListRouteCheckpointsErrors(state);\n","/**\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 = (module) => ({\n type: types.MODULE_REMOVE_STARTED,\n payload: {\n module\n }\n});\nexport const completeRemovingModule = (moduleId) => ({\n type: types.MODULE_REMOVE_COMPLETED,\n payload: {\n moduleId\n }\n});\nexport const failRemovingModule = (moduleId, error) => ({\n type: types.MODULE_REMOVE_FAILED,\n payload: {\n moduleId,\n error\n }\n});\n\nexport const selectModule = (moduleId) => ({\n type: types.MODULE_SELECTED,\n payload: moduleId\n});\n\nexport const selectAllModules = (\n moduleIds = [] //List of ModuleIds\n) => ({\n type: types.MODULES_ALL_SELECTED,\n payload: moduleIds\n});\n\nexport const deselectModule = (moduleId) => ({\n type: types.MODULE_DESELECTED,\n payload: moduleId\n});\n\nexport const deselectAllModules = (\n moduleIds = [] //List of ModuleIds\n) => ({\n type: types.MODULES_ALL_DESELECTED,\n payload: moduleIds\n});\n\nexport const dirtyModule = (isDirty) => ({\n type: types.MODULE_DIRTY,\n payload: isDirty\n});\n","export const JOBS_REPORT_FETCH_STARTED = 'JOBS_REPORT_FETCH_STARTED';\nexport const JOBS_REPORT_FETCH_COMPLETED = 'JOBS_REPORT_FETCH_COMPLETED';\nexport const JOBS_REPORT_FETCH_FAILED = 'JOBS_REPORT_FETCH_FAILED';\n","export const 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 startFetchingSims = (filters = {}) => ({\n type: types.SIMS_FETCH_STARTED,\n payload: { filters }\n});\nexport const completeFetchingSims = (\n entities,\n order,\n operatorId,\n organizationId,\n divisionId = null,\n subdivisionId = null\n) => ({\n type: types.SIMS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId\n }\n});\nexport const failFetchingSims = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SIMS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingSim = (simId) => ({\n type: types.SIM_FETCH_STARTED,\n payload: simId\n});\n\nexport const completeFetchingSim = (sim, order) => ({\n type: types.SIM_FETCH_COMPLETED,\n payload: {\n sim,\n order\n }\n});\n\nexport const failFetchingSim = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SIMS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSims = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n divisionId = null,\n subdivisionId = null,\n allowNullOrganizationId\n) => ({\n type: types.SIMS_PARTIAL_FETCH_STARTED,\n payload: {\n entityTypeId,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId,\n allowNullOrganizationId\n }\n});\nexport const completePartialFetchingSims = (\n entities,\n order,\n operatorId,\n organizationId,\n divisionId = null,\n subdivisionId = null\n) => ({\n type: types.SIMS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId\n }\n});\nexport const failPartialFetchingSims = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SIMS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSim = (sim) => ({\n type: types.SIM_ADD_STARTED,\n payload: sim\n});\nexport const completeAddingSim = (oldId, sim) => ({\n type: types.SIM_ADD_COMPLETED,\n payload: { oldId, sim }\n});\nexport const failAddingSim = (oldId, error) => ({\n type: types.SIM_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSim = (sim) => ({\n type: types.SIM_EDIT_STARTED,\n payload: sim\n});\nexport const completeEditingSim = (sim) => ({\n type: types.SIM_EDIT_COMPLETED,\n payload: sim\n});\nexport const failEditingSim = (oldSim, error) => ({\n type: types.SIM_EDIT_FAILED,\n payload: {\n oldSim,\n error\n }\n});\n\nexport const startRemovingSim = (simId) => ({\n type: types.SIM_REMOVE_STARTED,\n payload: {\n simId\n }\n});\nexport const completeRemovingSim = (simId) => ({\n type: types.SIM_REMOVE_COMPLETED,\n payload: {\n simId\n }\n});\nexport const failRemovingSim = (simId, error) => ({\n type: types.SIM_REMOVE_FAILED,\n payload: {\n simId,\n error\n }\n});\n\nexport const selectSim = (simId) => ({\n type: types.SIM_SELECTED,\n payload: simId\n});\n\nexport const selectAllSims = (\n simIds = [] //List of SimIds\n) => ({\n type: types.SIMS_ALL_SELECTED,\n payload: simIds\n});\n\nexport const deselectSim = (simId) => ({\n type: types.SIM_DESELECTED,\n payload: simId\n});\n\nexport const deselectAllSims = (\n simIds = [] //List of SimIds\n) => ({\n type: types.SIMS_ALL_DESELECTED,\n payload: simIds\n});\n","import * 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","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 { 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","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","// ** React Imports\nimport { forwardRef } from 'react';\n\n// ** Third Party Components\nimport Proptypes from 'prop-types';\nimport { Badge } from 'reactstrap';\nimport classnames from 'classnames';\n\nconst Avatar = forwardRef((props, ref) => {\n // ** Props\n const {\n color,\n className,\n imgClassName,\n initials,\n size,\n badgeUp,\n content,\n icon,\n badgeColor,\n badgeText,\n img,\n imgHeight,\n imgWidth,\n status,\n tag: Tag,\n contentStyles,\n ...rest\n } = props;\n\n // ** Function to extract initials from content\n const getInitials = (str) => {\n const results = [];\n const wordArray = str.split(' ');\n wordArray.forEach((e) => {\n results.push(e[0]);\n });\n return results.join('');\n };\n\n return (\n \n {img === false || img === undefined ? (\n \n {initials ? getInitials(content) : content}\n\n {icon ? icon : null}\n {badgeUp ? (\n \n {badgeText ? badgeText : '0'}\n \n ) : null}\n \n ) : (\n \n )}\n {status ? (\n \n ) : null}\n \n );\n});\n\nexport default Avatar;\n\n// ** PropTypes\nAvatar.propTypes = {\n imgClassName: Proptypes.string,\n className: Proptypes.string,\n src: Proptypes.string,\n tag: Proptypes.oneOfType([Proptypes.func, Proptypes.string]),\n badgeUp: Proptypes.bool,\n content: Proptypes.string,\n icon: Proptypes.node,\n contentStyles: Proptypes.object,\n badgeText: Proptypes.string,\n imgHeight: Proptypes.oneOfType([Proptypes.string, Proptypes.number]),\n imgWidth: Proptypes.oneOfType([Proptypes.string, Proptypes.number]),\n size: Proptypes.oneOf(['sm', 'lg', 'xl']),\n status: Proptypes.oneOf(['online', 'offline', 'away', 'busy']),\n badgeColor: Proptypes.oneOf([\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'info',\n 'warning',\n 'dark',\n 'light-primary',\n 'light-secondary',\n 'light-success',\n 'light-danger',\n 'light-info',\n 'light-warning',\n 'light-dark'\n ]),\n color: Proptypes.oneOf([\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'info',\n 'warning',\n 'dark',\n 'light-primary',\n 'light-secondary',\n 'light-success',\n 'light-danger',\n 'light-info',\n 'light-warning',\n 'light-dark'\n ]),\n initials(props) {\n if (props['initials'] && props['content'] === undefined) {\n return new Error('content prop is required with initials prop.');\n }\n if (props['initials'] && typeof props['content'] !== 'string') {\n return new Error('content prop must be a string.');\n }\n if (typeof props['initials'] !== 'boolean' && props['initials'] !== undefined) {\n return new Error('initials must be a boolean!');\n }\n }\n};\n\n// ** Default Props\nAvatar.defaultProps = {\n tag: 'div'\n};\n","import { combineReducers } from 'redux';\n\nimport 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 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","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","/* -------------------------------------------------------------------------- */\n/* Componente TimeRangeInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un daterange genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport { Label, FormGroup, Row, Col } from 'reactstrap';\nimport moment from 'moment';\nimport Flatpickr from 'react-flatpickr';\nimport { Spanish } from 'flatpickr/dist/l10n/es';\nimport { english } from 'flatpickr/dist/l10n/default';\nimport { FormattedMessage } from 'react-intl';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { XSquare } from 'react-feather';\nimport { createDateWithHoursAndMinutes } from 'utility/Utils';\nimport { useEffect } from 'react';\n\ninterface Props {\n field: any;\n fieldstate: any;\n errorMessage?: any;\n required?: boolean;\n defaultHour?: number;\n defaultMinute?: number;\n maxTime?: any;\n minTime?: any;\n showTime?: boolean;\n enableTime?: boolean;\n label?: any;\n disabled?: boolean;\n allowNulls?: boolean;\n inFormat?: boolean;\n}\n\nconst TimeInput = (props: Props) => {\n const {\n field,\n fieldstate,\n required = false,\n maxTime,\n errorMessage,\n minTime,\n label,\n disabled,\n allowNulls = false,\n inFormat = false,\n defaultHour = 0,\n defaultMinute = 0\n } = props;\n\n const defaultDate: Date = createDateWithHoursAndMinutes(defaultHour, defaultMinute);\n\n useEffect(() => {\n if (defaultDate && !field?.value) field.onChange(defaultDate);\n }, []);\n\n return (\n \n \n \n \n ) => {\n const dateValue: Date = value[0];\n if (value.length > 0) {\n if (inFormat) field.onChange(moment(dateValue).format('HH:mm'));\n else field.onChange(dateValue);\n }\n }}\n onClose={(value) => {\n if (value.length === 0) field.onBlur(null);\n }}\n />\n \n {allowNulls && (\n \n {\n field.onChange(null);\n }}\n />\n \n )}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nTimeInput.defaultProps = {\n required: false,\n enableTime: false,\n showTime: true,\n disabled: false\n};\n\nexport default TimeInput;\n","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","import {\n Aggregate,\n AggregateColumnDirective,\n AggregateColumnsDirective,\n AggregateDirective,\n AggregatesDirective,\n ColumnChooser,\n ColumnDirective,\n ColumnsDirective,\n Edit,\n ExcelExport,\n Filter,\n Freeze,\n GridComponent,\n Group,\n Inject,\n Page,\n Reorder,\n Resize,\n RowDD,\n Search,\n Sort,\n Toolbar,\n VirtualScroll\n} from '@syncfusion/ej2-react-grids';\nimport { TooltipComponent } from '@syncfusion/ej2-react-popups';\nimport { omit } from 'lodash';\nimport { FC, Key, useContext, useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Col, Row, Spinner } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\n// ** Internationalization Context\nimport { ToolbarItems } from '@syncfusion/ej2-react-grids';\nimport { TableColumn } from 'utility/types';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport { IntlContext } from '../../../utility/context/Internationalization';\nimport { L10n, setCulture } from '@syncfusion/ej2-base';\n\n/**\n * Componente \"tonto\" para mostrar tablas en catĆ”logos\n * Props:\n * columns:\n * Una lista de objetos con la informaciĆ³n de las columnas, cada objeto debe tener fieldName y columnName\n * Por defecto, la tabla ordenarĆ” segĆŗn el primer parĆ”metro, para usar el orden por defecto debe pasarse el prop allowSorting=false\n * data:\n * Una lista de objetos con la informaciĆ³n a presentar\n * onSelect:\n * FunciĆ³n para manejar la acciĆ³n cuando se selecciona un Ć­tem, recibe un parĆ”metro, el objeto seleccionado\n * onDeselect:\n * Equivalente a onSelect, maneja la acciĆ³n de deseleccionar\n */\n\ninterface SortedColumn {\n sortedColumnIndex: number;\n direction: 'Ascending' | 'Descending';\n}\n\ninterface Props {\n setTableRef?: (value: GridComponent | null) => void;\n id?: string;\n version?: number;\n enablePersistence?: boolean;\n toolbarOptions?: ToolbarItems[];\n toolbarClick?: any;\n omitPersistenceKeys?: string[];\n enableVirtualization?: boolean;\n rerender?: Date | Key;\n selectAll?: Date | Key;\n deselectAll?: Date | Key;\n columns: TableColumn[];\n initialFilterColumns?: any[];\n sortSettings?: any;\n sortedColumn?: SortedColumn;\n data: any[];\n actionSave?: (value: any) => any;\n onDrop?: Function;\n onSelect?: Function;\n onDeselect?: Function;\n selected?: any;\n changeSelected?: Function;\n rerenderSelected?: Date;\n isFetching?: boolean;\n allowSorting?: boolean;\n allowRowDragAndDrop?: boolean;\n allowPaging?: boolean;\n pageSize?: number;\n allowResizing?: boolean;\n allowReordering?: boolean;\n allowFiltering?: boolean;\n allowMultipleSelection?: boolean;\n allowExcelExport?: boolean;\n initialSelectedRowIndex?: number;\n persistSelectIndexes?: boolean;\n frozenColumns?: number;\n height?: number;\n allowGrouping?: boolean;\n groupSettings?: any;\n allowDeleting?: boolean;\n usingAdvancedFilters?: boolean;\n}\n\nconst Table: FC = (props) => {\n const { isFetching } = props;\n\n return !isFetching ? (\n \n ) : (\n \n \n \n \n \n );\n};\nconst TableComponent = (props: Props) => {\n const {\n id,\n version,\n enablePersistence,\n omitPersistenceKeys,\n enableVirtualization,\n columns,\n rerender,\n selectAll,\n deselectAll,\n initialFilterColumns,\n sortSettings = undefined,\n data,\n actionSave,\n onDrop,\n onSelect,\n onDeselect,\n selected,\n changeSelected,\n rerenderSelected,\n allowSorting,\n allowRowDragAndDrop,\n allowPaging,\n pageSize,\n allowResizing,\n allowReordering,\n allowFiltering,\n allowMultipleSelection,\n sortedColumn,\n frozenColumns,\n initialSelectedRowIndex,\n persistSelectIndexes,\n height,\n toolbarOptions,\n allowExcelExport,\n toolbarClick,\n setTableRef,\n allowGrouping,\n groupSettings,\n usingAdvancedFilters = false\n } = props;\n\n const [state, changeState] = useState(Object);\n const [show, setShow] = useState(true);\n const [locale, setLocale] = useState();\n const stateRef = useRef(state);\n /**\n * Key must be a React.Key type\n * when its a date, javascript automatically converts to key\n */\n const [key, changeKey] = useState(new Date());\n const [tooltip, setTooltip] = useState(null);\n const [tableColumns, setTableColumns] = useState([]);\n const [selectedRowIndexes, setSelectedRowIndexes] = useState([]);\n const [scrollLeft, setScrollLeft] = useState(null);\n const intlContext = useContext(IntlContext);\n const dataTable = data?.map((row, i) => ({\n ...row,\n dataRowTableId: i\n }));\n\n const { user, authSystems } = useSelector((state) => ({\n user: authSelectors?.getAuthUser(state),\n authSystems: authSelectors?.getAuthSystems(state)\n }));\n\n const currentLocale = intlContext.locale === 'es' ? 'es-US' : intlContext.locale;\n setCulture(currentLocale);\n\n const notFoundMessage = usingAdvancedFilters\n ? appIntl()?.formatMessage({ id: 'common.noRecordsTryAdvancedFilters' })\n : appIntl()?.formatMessage({ id: 'common.noRecordsToDisplay' });\n\n L10n.load({\n [currentLocale]: {\n grid: {\n EmptyRecord: notFoundMessage // Set the dynamic \"No Records Found\" message\n }\n }\n });\n\n useEffect(() => {\n //Elimina del localStorage las keys que se quieren eliminar\n try {\n if (id && enablePersistence && omitPersistenceKeys && omitPersistenceKeys?.length > 0) {\n const value = window?.localStorage?.getItem('grid' + id);\n if (value) {\n const savedVersion = parseInt(\n JSON?.parse(window?.localStorage?.getItem('grid' + id + '_version') || '0')\n );\n if ((version || 0) === savedVersion) {\n const model = omit(JSON?.parse(value), omitPersistenceKeys);\n window?.localStorage?.setItem('grid' + id, JSON?.stringify(model));\n } else {\n window?.localStorage?.removeItem('grid' + id);\n window?.localStorage?.setItem('grid' + id + '_version', JSON?.stringify(version));\n }\n }\n }\n } catch (error) {\n console.warn('1');\n console.warn(error);\n }\n }, []);\n\n useEffect(() => {\n try {\n if (state) {\n stateRef.current = state;\n }\n //Al cargar por primera vez la tabla se realiza un autoFit de todas las columnas\n if (state?.headerModule && state?.autoFitColumns) {\n state?.autoFitColumns();\n }\n } catch (error) {\n console.warn('2');\n console.warn(error);\n }\n }, [state]);\n\n useEffect(() => {\n //Se setean la columna que se quiere ordenar en la tabla\n try {\n if (\n state?.headerModule &&\n state?.sortSettings &&\n sortedColumn?.sortedColumnIndex &&\n tableColumns?.length > 0 &&\n (state?.sortSettings?.columns?.length === 0 ||\n tableColumns[sortedColumn?.sortedColumnIndex]?.fieldName !==\n state?.sortSettings?.columns[0]?.field ||\n sortedColumn.direction !== state?.sortSettings?.columns[0]?.direction)\n ) {\n state.sortSettings.columns = [\n {\n field: tableColumns[sortedColumn?.sortedColumnIndex]?.fieldName,\n direction: sortedColumn?.direction\n }\n ];\n reset();\n }\n } catch (error) {\n console.warn('3');\n console.warn(error);\n }\n }, [state?.sortSettings, tableColumns?.length, sortedColumn?.sortedColumnIndex]);\n\n useDeepCompareEffect(() => {\n //Se restringe dependiendo del nivel de acceso del usuario\n try {\n if (columns?.length > 0) {\n if (user?.accessLevelId == 11 || user?.accessLevelId == 13) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) => column?.fieldName && !['operatorName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 7) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n !['operatorName', 'organizationName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 4) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n !['operatorName', 'organizationName', 'divisionName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 2 || user?.accessLevelId == 20) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n ![\n 'operatorName',\n 'organizationName',\n 'divisionName',\n 'subdivisionName'\n ]?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 15 || user?.accessLevelId == 9) {\n setTableColumns(columns?.filter((column) => column !== undefined && column !== null));\n }\n }\n } catch (error) {\n //\n console.warn('4');\n console.warn(error);\n }\n }, [user, columns?.length]);\n\n useEffect(() => {\n try {\n if (\n selected &&\n changeSelected &&\n dataTable?.length > 0 &&\n typeof state?.getFilteredRecords === 'function'\n ) {\n if (state?.selectRowsByRange) state?.selectRowsByRange(0, dataTable?.length);\n var selectedRows: any[] = [];\n selectedRows = state?.getFilteredRecords();\n if (selectedRows?.length === 0) {\n const input = document?.getElementById(`${id}_searchbar`);\n if (input) {\n selectedRows = dataTable?.filter((data) =>\n tableColumns\n ?.filter((column) => typeof data[column?.fieldName] === 'string')\n ?.map((column) =>\n data[column?.fieldName]\n ?.toLowerCase()\n ?.trim()\n ?.includes(input['value']?.toLowerCase()?.trim())\n )\n ?.includes(true)\n );\n } else {\n selectedRows = [\n ...selected,\n ...dataTable?.filter(\n (row, i) => !selected?.map((row) => row?.dataRowTableId)?.includes(i)\n )\n ];\n }\n }\n changeSelected(selectedRows);\n }\n } catch (error) {\n console.warn('5');\n console.warn(error);\n }\n }, [selectAll]);\n\n useEffect(() => {\n try {\n if (state?.clearSelection) state?.clearSelection();\n if (selected && changeSelected) {\n changeSelected([]);\n }\n } catch (error) {\n console.warn('6');\n console.warn(error);\n }\n }, [deselectAll]);\n\n // useEffect(() => {\n // try {\n // if (persistSelectIndexes) {\n // if (state?.selectionModule?.selectedRowIndexes?.length > 0) {\n // setSelectedRowIndexes([state?.selectionModule?.selectedRowIndexes, false]);\n // }\n // }\n // reset();\n // } catch (error) {\n // console.warn('7');\n // console.warn(error);\n // }\n // }, [dataTable]);\n\n useEffect(() => {\n try {\n if (locale) {\n setShow(false);\n setTimeout(() => setShow(true), 1000);\n } else {\n setLocale(intlContext?.locale);\n }\n } catch (error) {\n console.warn('8');\n console.warn(error);\n }\n }, [intlContext?.locale]);\n\n const compareDeps = tableColumns?.map((col) => ({\n fieldName: col?.fieldName,\n headerText: col?.headerText,\n hide: col?.hide\n }));\n useDeepCompareEffect(() => {\n try {\n console.log('rerender by tableColumns map');\n reset();\n if (rerender) setTimeout(() => changeKey(rerender), 200);\n } catch (error) {\n console.warn('9');\n console.warn(error);\n }\n }, [rerender, compareDeps]);\n\n useEffect(() => {\n try {\n if (state?.selectRows && selected)\n state?.selectRows(\n selected?.map((object) => {\n return object?.dataRowTableId;\n })\n );\n if (changeSelected) changeSelected(selected);\n } catch (error) {\n console.warn('10');\n console.warn(error);\n }\n }, [rerenderSelected]);\n\n const reset = () => {\n if (scrollLeft) {\n setTimeout(() => {\n stateRef.current.scrollModule['content'].scrollLeft = scrollLeft;\n setScrollLeft(null);\n }, 25);\n }\n /* if (state?.scrollModule?.content?.scrollTop > 0) state.scrollModule.content.scrollTop = 0; */\n if (state?.refresh) state?.refresh();\n const select: any[] = selected;\n if (selected && changeSelected) changeSelected([]);\n };\n\n const select = (event: any) => {\n if (selected && changeSelected) {\n if (Array?.isArray(event?.data)) {\n if (event?.data?.length > 0)\n changeSelected([\n ...selected,\n ...event?.data?.filter(\n (row) => !selected?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n ]);\n else\n changeSelected([\n ...selected,\n ...dataTable?.filter(\n (row, i) =>\n event?.rowIndexes?.includes(i) &&\n !selected?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n ]);\n } else if (event?.data === undefined)\n changeSelected([...selected, ...dataTable?.filter((row, i) => i === event?.rowIndex)]);\n else changeSelected([...selected, event?.data]);\n if (onSelect) onSelect(event);\n }\n };\n\n const deselect = (event: any) => {\n if (selected && changeSelected) {\n if (Array?.isArray(event?.data))\n changeSelected(\n selected?.filter(\n (row) => !event?.data?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n );\n else\n changeSelected(\n selected?.filter(\n (row) =>\n row?.dataRowTableId !==\n (event?.data?.dataRowTableId ?? dataTable[event?.rowIndex]?.dataRowTableId)\n )\n );\n if (onDeselect) onDeselect(event);\n }\n };\n\n const toolbar: ToolbarItems[] | undefined =\n toolbarOptions ??\n (tableColumns && tableColumns?.some((column) => column.allowEditing) ? undefined : ['Search']);\n\n return show ? (\n {\n if (t) {\n setTooltip(t);\n }\n }}\n beforeRender={(arg) => {\n if (arg && tooltip) {\n const target = arg?.target;\n const idColumnTooltip = target?.id;\n const indexColumnTooltip = target?.getAttribute('index') || 0;\n const parent =\n arg?.target?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement\n ?.children[1]?.children[0]?.children[1]?.children[indexColumnTooltip] ||\n arg?.target?.parentElement;\n if (idColumnTooltip && parent) {\n if (tableColumns[idColumnTooltip]?.tooltipColumn) {\n for (let index = 0; index < parent?.childElementCount; index++) {\n const children = parent?.children[index];\n const columnTitle = children?.getAttribute('aria-label');\n if (\n columnTitle &&\n children?.classList?.contains('e-hide') &&\n children\n ?.getAttribute('aria-label')\n ?.includes(tableColumns[idColumnTooltip]?.tooltipColumn)\n ) {\n tooltip.content = children?.innerHTML;\n tooltip.cssClass = children?.innerHTML ? '' : 'hidden-tooltip';\n }\n }\n } else {\n tooltip.content = tableColumns[idColumnTooltip]?.tooltipText;\n tooltip.cssClass = tableColumns[idColumnTooltip]?.tooltipText ? '' : 'hidden-tooltip';\n }\n }\n }\n }}\n >\n {tableColumns?.length > 0 && (\n {\n try {\n if (event && event?.name === 'cellSave') {\n const columns = event?.rowData;\n columns[event?.columnName] = event?.value;\n setScrollLeft(state?.scrollModule?.content?.scrollLeft);\n if (actionSave) actionSave(columns);\n }\n } catch (error) {\n console.warn('cs');\n console.warn(error);\n }\n }}\n rowDrop={(event) => {\n try {\n if (onDrop) onDrop(event);\n } catch (error) {\n console.warn('rd');\n console.warn(error);\n }\n }}\n enablePersistence={enablePersistence}\n enableVirtualization={\n tableColumns &&\n (tableColumns?.some((column) => column?.allowEditing) || dataTable?.length <= 100)\n ? false\n : enableVirtualization\n }\n locale={currentLocale}\n dataSource={dataTable?.map((row, i) => ({\n ...row,\n ...tableColumns\n ?.filter((col) => col?.type === 'dateTime')\n ?.reduce(\n (obj, item) =>\n Object?.assign(obj, {\n [item?.fieldName]: row[item?.fieldName] ? new Date(row[item?.fieldName]) : null\n }),\n {}\n )\n }))}\n gridLines={'Horizontal'}\n rowSelected={(event) => {\n select(event);\n }}\n rowDeselected={(event) => {\n deselect(event);\n }}\n ref={(ref) => {\n if (setTableRef) setTableRef(ref);\n changeState(ref);\n }}\n allowPaging={allowPaging}\n pageSettings={{\n pageSize: enableVirtualization ? 100 : pageSize,\n currentPage: initialSelectedRowIndex\n ? Math?.ceil((initialSelectedRowIndex + 1) / (pageSize ?? 15))\n : undefined\n }}\n allowResizing={allowResizing}\n allowRowDragAndDrop={allowRowDragAndDrop}\n allowExcelExport={allowExcelExport}\n allowReordering={allowReordering}\n allowFiltering={allowFiltering}\n filterSettings={{\n columns: initialFilterColumns,\n type: 'Menu'\n }}\n allowSorting={allowSorting}\n sortSettings={\n sortSettings\n ? sortSettings\n : tableColumns[0]\n ? {\n columns: [{ field: tableColumns[0]?.fieldName, direction: 'Ascending' }]\n }\n : undefined\n }\n toolbarClick={toolbarClick}\n className={toolbar && toolbar?.length > 0 ? 'grid-round-header' : 'grid-round-header'}\n toolbar={toolbar}\n resizeSettings={{\n mode: 'Auto'\n }}\n selectionSettings={\n allowMultipleSelection\n ? {\n enableSimpleMultiRowSelection: true,\n type: 'Multiple'\n }\n : undefined\n }\n selectedRowIndex={\n initialSelectedRowIndex != null ? initialSelectedRowIndex % (pageSize ?? 15) : undefined\n }\n dataBound={() => {\n try {\n if (selectedRowIndexes?.length > 0 && selectedRowIndexes[0]?.length > 0) {\n if (selectedRowIndexes[1]) {\n state?.selectRows(selectedRowIndexes[0]);\n setSelectedRowIndexes([]);\n } else setSelectedRowIndexes([selectedRowIndexes[0], true]);\n }\n } catch (error) {\n console.warn('dbound');\n console.warn(error);\n }\n }}\n editSettings={{\n allowEditing:\n toolbarOptions?.includes('Edit') ||\n (tableColumns && tableColumns?.some((column) => column?.allowEditing)),\n allowAdding: toolbarOptions?.includes('Add'),\n allowDeleting: toolbarOptions?.includes('Delete'),\n mode: 'Batch'\n }}\n groupSettings={groupSettings}\n allowGrouping={allowGrouping}\n noRecordsTemplate={usingAdvancedFilters && appIntl().formatMessage({ id: 'common.id' })}\n >\n \n {tableColumns?.map((column, i) =>\n column?.columns && column?.columns?.length > 0 ? (\n \n stackedColumn?.columns && stackedColumn?.columns?.length > 0\n ? {\n autoFit: true,\n customAttributes: stackedColumn?.customAttributes,\n headerText:\n (stackedColumn?.staticText ||\n (stackedColumn?.headerText\n ? appIntl()?.formatMessage({ id: stackedColumn?.headerText })\n : '')) +\n (stackedColumn?.metric\n ? stackedColumn?.staticText || stackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric) +\n ')'\n : authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric\n : ''),\n key: stackedColumn?.fieldName || stackedColumn?.customKey,\n type: stackedColumn.type || 'string',\n visible: stackedColumn?.hide !== true,\n columns: stackedColumn?.columns?.map((stackedStackedColumn) => ({\n autoFit: true,\n key: stackedStackedColumn?.fieldName,\n field: stackedStackedColumn?.fieldName,\n maxWidth: stackedStackedColumn?.maxWidth,\n minWidth: stackedStackedColumn?.minWidth,\n // commandsTemplate: stackedColumn.template,\n headerText:\n (stackedStackedColumn?.staticText ||\n (stackedStackedColumn?.headerText\n ? appIntl()?.formatMessage({\n id: stackedStackedColumn?.headerText\n })\n : '')) +\n (stackedStackedColumn?.metric\n ? stackedColumn?.staticText || stackedStackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedStackedColumn?.metric] !== undefined\n ? authSystems[stackedStackedColumn?.metric]\n : stackedStackedColumn?.metric) +\n ')'\n : authSystems[stackedStackedColumn?.metric] !== undefined\n ? authSystems[stackedStackedColumn?.metric]\n : stackedStackedColumn?.metric\n : ''),\n allowEditing: stackedStackedColumn?.allowEditing ?? false,\n isPrimaryKey: stackedStackedColumn?.isPrimaryKey,\n editType:\n stackedStackedColumn?.editType ??\n (stackedStackedColumn?.type === 'number'\n ? 'numericedit'\n : stackedStackedColumn?.type === 'boolean'\n ? 'booleanedit'\n : stackedStackedColumn?.type === 'dateTime'\n ? 'datetimeedit'\n : 'stringedit'),\n editTemplate: stackedStackedColumn?.editTemplate ?? null,\n headerTemplate: stackedStackedColumn?.headerTemplate,\n format: stackedStackedColumn?.formatColumn,\n type: stackedStackedColumn?.type || 'string',\n displayAsCheckBox: stackedStackedColumn?.type === 'boolean',\n template: stackedStackedColumn?.template,\n customAttributes: stackedStackedColumn?.customAttributes\n ? stackedStackedColumn?.customAttributes\n : {\n class: stackedStackedColumn?.hasTooltip\n ? 'hasTooltip'\n : 'withoutTooltip',\n id: i + '-' + j\n },\n visible: stackedStackedColumn?.hide !== true,\n freeze: j < (frozenColumns ?? -1) ? 'Left' : undefined,\n // valueAccessor: (field, data) =>\n // stackedColumn.format ? stackedColumn.format(data[field]) : data[field],\n edit: stackedStackedColumn?.edit,\n textAlign: stackedStackedColumn?.textAlign\n ? stackedStackedColumn?.textAlign\n : 'Left'\n }))\n }\n : {\n autoFit: true,\n key: stackedColumn?.fieldName,\n field: stackedColumn?.fieldName,\n maxWidth: stackedColumn?.maxWidth,\n minWidth: stackedColumn?.minWidth,\n // commandsTemplate: stackedColumn.template,\n headerText:\n (stackedColumn?.staticText ||\n (stackedColumn?.headerText\n ? appIntl()?.formatMessage({ id: stackedColumn?.headerText })\n : '')) +\n (stackedColumn?.metric\n ? stackedColumn?.staticText || stackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric) +\n ')'\n : authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric\n : ''),\n allowEditing: stackedColumn?.allowEditing ?? false,\n isPrimaryKey: stackedColumn?.isPrimaryKey,\n editType:\n stackedColumn?.editType ??\n (stackedColumn?.type === 'number'\n ? 'numericedit'\n : stackedColumn?.type === 'boolean'\n ? 'booleanedit'\n : stackedColumn?.type === 'dateTime'\n ? 'datetimeedit'\n : 'stringedit'),\n editTemplate: stackedColumn?.editTemplate ?? null,\n headerTemplate: stackedColumn?.headerTemplate,\n format: stackedColumn?.formatColumn,\n type: stackedColumn?.type || 'string',\n displayAsCheckBox: stackedColumn?.type === 'boolean',\n template: stackedColumn?.template,\n customAttributes: column?.customAttributes\n ? {\n class: 'side-borders-columns-subColumns',\n id: i + '-' + j\n }\n : {\n class: column?.hasTooltip ? 'hasTooltip' : 'withoutTooltip',\n id: i + '-' + j\n },\n visible: stackedColumn?.hide !== true,\n freeze: j < (frozenColumns ?? -1) ? 'Left' : undefined,\n // valueAccessor: (field, data) =>\n // stackedColumn?.format ? stackedColumn.format(data[field]) : data[field],\n edit: stackedColumn?.edit,\n textAlign: stackedColumn?.textAlign ? stackedColumn?.textAlign : 'Left'\n }\n )}\n >\n ) : (\n \n column?.format ? column?.format(data[field]) : data[field]\n }\n edit={column?.edit}\n textAlign={column?.textAlign ? column?.textAlign : 'Left'}\n >\n )\n )}\n {tableColumns\n ?.filter((column) => column?.tooltipColumn)\n ?.map((column) => (\n \n ))}\n \n {frozenColumns === 0 && (\n \n \n {tableColumns &&\n tableColumns?.filter((column) => column?.aggregateType)?.length > 0 ? (\n \n {tableColumns\n ?.filter((column) => column?.aggregateType)\n ?.map((column) => (\n (\n \n {appIntl()?.formatMessage({\n id: column?.aggregateText || 'common.table' + column?.aggregateType\n })}\n :{' '}\n {column?.aggregateType === 'Average'\n ? props[column?.aggregateType]?.toFixed(2)\n : props[column?.aggregateType]}\n \n )}\n />\n ))}\n \n ) : (\n \n (\n \n {appIntl()?.formatMessage({ id: 'common.tableCount' })}: {props?.Count}\n \n )}\n />\n \n )}\n \n \n )}\n \n \n )}\n \n ) : (\n \n \n \n \n \n );\n};\n\nTable.defaultProps = {\n enablePersistence: true,\n omitPersistenceKeys: [\n 'selectedRowIndex',\n 'searchSettings',\n 'filterSettings',\n 'scrollPosition',\n 'pageSettings'\n ],\n enableVirtualization: false,\n isFetching: false,\n allowSorting: true,\n allowPaging: true,\n pageSize: 15,\n allowRowDragAndDrop: false,\n allowResizing: true,\n allowFiltering: true,\n allowReordering: true,\n sortedColumn: {\n sortedColumnIndex: 0,\n direction: 'Ascending'\n },\n allowMultipleSelection: false,\n frozenColumns: 0,\n height: 450,\n allowDeleting: false,\n allowGrouping: false\n};\n\nexport default Table;\n","//** React Imports\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { ENTITY_OPERATORS, ENTITY_ORGANIZATIONS } from 'views/screens/Entities/constants';\nimport * as AuthSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../screens/Entities/reducers';\n\nexport interface Membership {\n operatorId: number | undefined;\n organizationId: number | undefined;\n divisionId: number | undefined;\n subdivisionId: number | undefined;\n groupId: number | undefined;\n}\n\nexport interface DefaultOptions {\n // TamaƱo de los inputs\n colSize?: any;\n // Permitir deseleccionar dropdowns\n showAllOperator?: boolean;\n showAllOrganization?: boolean;\n showAllAgent?: boolean;\n showAllDivision?: boolean;\n showAllSubdivision?: boolean;\n showAllGroup?: boolean;\n // Usar la membreship del usuario como valor por defecto\n useUserOperator?: boolean;\n useUserOrganization?: boolean;\n useUserAgent?: boolean;\n useUserDivision?: boolean;\n useUserSubdivision?: boolean;\n useUserGroup?: boolean;\n // Setear la membreship del usuario como valor por defecto aunque el usuario sea de nivel menor (Se usa para crear/editar una entidad)\n setUserOperator?: boolean;\n setUserOrganization?: boolean;\n setUserAgent?: boolean;\n setUserDivision?: boolean;\n setUserSubdivision?: boolean;\n setUserGroup?: boolean;\n // Filtrar por organizacion\n filterOrganization?: number;\n // Mostrar/ocultar un dropdown\n useOperator?: boolean;\n useOrganization?: boolean;\n useAgent?: boolean;\n useDivision?: boolean;\n useSubdivision?: boolean;\n useGroup?: boolean;\n // Habilitar/Deshabilitar un dropdown\n isOperatorDisabled?: boolean;\n isOrganizationDisabled?: boolean;\n isAgentDisabled?: boolean;\n isDivisionDisabled?: boolean;\n isSubdivisionDisabled?: boolean;\n isGroupDisabled?: boolean;\n // Placeholder de un dropdown\n subdivisionPlaceholder?: any;\n}\n\nconst defaultOptions = {\n colSize: '3',\n showAllOperator: false,\n showAllOrganization: false,\n showAllAgent: false,\n showAllDivision: false,\n showAllSubdivision: false,\n showAllGroup: false,\n useUserOperator: false,\n useUserOrganization: false,\n useUserAgent: false,\n useUserDivision: false,\n useUserSubdivision: false,\n useUserGroup: false,\n setUserOperator: true,\n setUserOrganization: true,\n setUserAgent: false,\n setUserDivision: true,\n setUserSubdivision: true,\n setUserGroup: true,\n useOperator: true,\n useOrganization: true,\n useAgent: false,\n useDivision: true,\n useSubdivision: true,\n useGroup: false,\n isOperatorDisabled: false,\n isOrganizationDisabled: false,\n isAgentDisabled: false,\n isDivisionDisabled: false,\n isSubdivisionDisabled: false,\n isGroupDisabled: false\n};\n\nexport const useMembership = (options, model) => {\n //Initialize State\n const [isInitialize, setIsInitialize] = useState(false);\n //State Model\n const [membershipDefaultValue, setMembershipDefaultValue] = useState(model);\n //State Options\n const [membershipOptions, setMembershipOptions] = useState({\n ...defaultOptions,\n ...options\n });\n\n //Al cambiar las opciones\n useDeepCompareEffect(() => {\n updateOptions(options);\n }, [options]);\n\n //Al cargar por primera vez el componente\n useEffect(() => {\n membershipAccessLevel();\n updateOptions({\n ...membershipOptions,\n ...membershipAccessLevel()\n });\n }, []);\n\n //Selectors\n const { user, areAllEntitiesUpdated } = useSelector((state) => ({\n user: AuthSelectors.getAuthUserForMembership(state),\n areAllEntitiesUpdated: entitySelectors.areAllEntitiesUpdated(state, [\n ENTITY_OPERATORS,\n ENTITY_ORGANIZATIONS\n ])\n }));\n\n //Al terminar de hacer update de las entities\n useEffect(() => {\n if (areAllEntitiesUpdated) {\n updateUserMembership({\n ...membershipOptions,\n ...membershipAccessLevel()\n });\n setIsInitialize(true);\n }\n }, [areAllEntitiesUpdated]);\n\n //Se restringe dependiendo del nivel de acceso del usuario\n const membershipAccessLevel = () => {\n var useOperator = membershipOptions.useOperator;\n var useOrganization = membershipOptions.useOrganization;\n var useDivision = membershipOptions.useDivision;\n var useSubdivision = membershipOptions.useSubdivision;\n if (user.accessLevelId == 11 || user.accessLevelId == 13) {\n useOperator = false;\n }\n if (user.accessLevelId == 7) {\n useOperator = false;\n useOrganization = false;\n }\n if (user.accessLevelId == 4) {\n useOperator = false;\n useOrganization = false;\n useDivision = false;\n }\n if (user.accessLevelId == 2 || user.accessLevelId == 20) {\n useOperator = false;\n useOrganization = false;\n useDivision = false;\n useSubdivision = false;\n }\n return {\n useOperator,\n useOrganization,\n useDivision,\n useSubdivision\n };\n };\n\n //Actualiza el modelo de defaultValues segun el membership del usuario\n const updateUserMembership = (membershipOptions) => {\n //Se cargan las membership del usuario\n var userMembership: any = membershipDefaultValue;\n //Se setea el operador del usuario en sesiĆ³n\n if (\n ((membershipOptions.useOperator && membershipOptions.useUserOperator) ||\n (membershipOptions.setUserOperator && ![9, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.operatorId)\n ) {\n userMembership.operatorId = parseInt(user.operatorId);\n userMembership.operatorName = user.operatorName;\n }\n //Se setea la organizaciĆ³n del usuario en sesiĆ³n\n if (\n ((membershipOptions.useOrganization && membershipOptions.useUserOrganization) ||\n (membershipOptions.setUserOrganization &&\n ![9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.organizationId)\n ) {\n userMembership.organizationId = parseInt(user.organizationId);\n userMembership.organizationName = user.organizationName;\n }\n //Se setea la divisiĆ³n del usuario en sesiĆ³n\n if (\n ((membershipOptions.useDivision && membershipOptions.useUserDivision) ||\n (membershipOptions.setUserDivision &&\n ![7, 9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.divisionId)\n ) {\n userMembership.divisionId = parseInt(user.divisionId);\n userMembership.divisionName = user.divisionName;\n }\n //Se setea la subdivisiĆ³n del usuario en sesiĆ³n\n if (\n ((membershipOptions.useSubdivision && membershipOptions.useUserSubdivision) ||\n (membershipOptions.setUserSubdivision &&\n ![4, 7, 9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.subdivisionId)\n ) {\n userMembership.subdivisionId = parseInt(user.subdivisionId);\n userMembership.subdivisionName = user.subdivisionName;\n }\n updateModel(userMembership);\n };\n\n //Se actualiza todo el modelo\n const updateModel = (model) => {\n setMembershipDefaultValue({\n ...membershipDefaultValue,\n ...model\n });\n };\n\n //Se actualiza todas las opciones\n const updateOptions = (options) => {\n setMembershipOptions({\n ...membershipOptions,\n ...options\n });\n };\n\n return [membershipDefaultValue, membershipOptions, isInitialize];\n};\n","import { Fragment, useEffect, FC } from 'react';\nimport { Controller, useController } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { Col, Spinner } from 'reactstrap';\nimport * as groupsSelectors from 'views/screens/Groups/reducers';\nimport * as agentsSelectors from 'views/screens/Agents/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport FetchEntities, { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport DropdownInput from '../DropdownInput';\nimport { DefaultOptions, useMembership } from './hooks/useMembership';\nimport { group } from 'console';\n\n/* -------------------------------------------------------------------------- */\n/* COMPONENTE MEMBERSHIP */\n/* -------------------------------------------------------------------------- */\n// Lista de opciones que se le puede enviar al componente\n// dentro del prop \"options\":\n// ----------------------------------------\n// | Option | Default Value |\n// ----------------------------------------\n// | colSize | \"3\" |\n// | showAllOperator | false |\n// | showAllOrganization | false |\n// | showAllAgent | false |\n// | showAllDivision | false |\n// | showAllSubdivision | false |\n// | useUserOperator | false |\n// | useUserOrganization | false |\n// | useUserAgent | false |\n// | useUserDivision | false |\n// | useUserSubdivision | false |\n// | useOperator | true |\n// | useOrganization | true |\n// | useAgent | false |\n// | useDivision | true |\n// | useSubdivision | true |\n// | isOperatorDisabled | false |\n// | isOrganizationDisabled | false |\n// | isDivisionDisabled | false |\n// | isSubdivisionDisabled | false |\n// | isAgentDisabled | false |\n// | operatorPlaceholder | null |\n// | organizationPlaceholder| null |\n// | agentPlaceholder | null |\n// | divisionPlaceholder | null |\n// | subdivisionPlaceholder | null |\n// ----------------------------------------\n\ninterface PropsDropDowns {\n name: any;\n control: any;\n shouldUnregister?: boolean;\n isInModal?: boolean;\n additionalonchangefunction?: (\n newMembership: DefaultFilters,\n options: DefaultOptions | MembershipOptions\n ) => void;\n membershipDefaultValue: any;\n membershipOptions: MembershipOptions;\n}\n\ninterface Props extends Omit {\n options: DefaultOptions;\n defaultValue?: any;\n fetchEntities?: any;\n showDropdowns?: any;\n}\n\ninterface MembershipOptions {\n useOperator: boolean;\n useOrganization: boolean;\n useDivision: boolean;\n useSubdivision: boolean;\n useAgent: boolean;\n useGroup: boolean;\n showAllOperator: boolean;\n showAllOrganization: boolean;\n showAllDivision: boolean;\n showAllSubdivision: boolean;\n showAllAgent: boolean;\n showAllGroup: boolean;\n filterOperator: boolean;\n filterOrganization: boolean;\n filterDivision: boolean;\n filterSubdivision: boolean;\n filterGroup: boolean;\n isOperatorDisabled: boolean;\n isOrganizationDisabled: boolean;\n isDivisionDisabled: boolean;\n isSubdivisionDisabled: boolean;\n isAgentDisabled: boolean;\n isGroupDisabled: boolean;\n //\n colSize: number;\n subdivisionPlaceholder: string;\n}\n\nconst Dropdowns: FC = (props) => {\n const {\n name,\n control,\n shouldUnregister = false,\n isInModal = false,\n additionalonchangefunction = (newMembership, options) => null,\n membershipDefaultValue,\n membershipOptions\n } = props;\n\n const { field: operatorField, fieldState: operatorFieldState } = useController({\n name: name + '.operatorId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.operatorId,\n rules: { required: membershipOptions.useOperator && !membershipOptions.showAllOperator }\n });\n\n const { field: organizationField, fieldState: organizationFieldState } = useController({\n name: name + '.organizationId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.organizationId,\n rules: { required: membershipOptions.useOrganization && !membershipOptions.showAllOrganization }\n });\n\n const { field: divisionField, fieldState: divisionFieldState } = useController({\n name: name + '.divisionId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.divisionId,\n rules: { required: membershipOptions.useDivision && !membershipOptions.showAllDivision }\n });\n\n const { field: subdivisionField, fieldState: subdivisionFieldState } = useController({\n name: name + '.subdivisionId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.subdivisionId,\n rules: { required: membershipOptions.useSubdivision && !membershipOptions.showAllSubdivision }\n });\n\n const { field: groupField, fieldState: groupFieldState } = useController({\n name: name + '.groupId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.groupId,\n rules: { required: membershipOptions.useGroup && !membershipOptions.showAllGroup }\n });\n\n const intl = useIntl();\n //Selectors de las listas para los dropdowns\n const {\n operatorsList,\n organizationsList,\n divisionsList,\n subdivisionsList,\n agentsList,\n groupList\n } = useSelector((state) => ({\n operatorsList: operatorSelectors.getOperatorsList(state).map((operator) => ({\n value: operator.operatorId,\n label: operator.operatorName\n })),\n organizationsList: membershipOptions.useOperator\n ? organizationSelectors\n .getOrganizationsListBySelectedOperator(state, {\n operatorId: operatorField.value\n })\n .map((organization) => ({\n value: organization.organizationId,\n label: organization.organizationName\n }))\n : organizationSelectors.getOrganizationsList(state).map((organization) => ({\n value: organization.organizationId,\n label: organization.organizationName\n })),\n divisionsList:\n membershipOptions.useOrganization || membershipOptions.filterOrganization\n ? divisionSelectors\n .getDivisionsListBySelectedOrganization(state, {\n operatorId: operatorField.value,\n organizationId: organizationField.value ?? membershipOptions.filterOrganization\n })\n .map((division) => ({\n value: division.divisionId,\n label: division.divisionName\n }))\n : divisionSelectors.getDivisionsList(state).map((division) => ({\n value: division.divisionId,\n label: division.divisionName\n })),\n subdivisionsList: membershipOptions.useDivision\n ? subdivisionSelectors\n .getSubdivisionsListBySelectedDivision(state, {\n operatorId: operatorField.value,\n organizationId: organizationField.value,\n divisionId: divisionField.value\n })\n .map((subdivision) => ({\n value: subdivision.subdivisionId,\n label: subdivision.subdivisionName\n }))\n : subdivisionSelectors.getSubdivisionsList(state).map((subdivision) => ({\n value: subdivision.subdivisionId,\n label: subdivision.subdivisionName\n })),\n agentsList: membershipOptions.useAgent\n ? agentsSelectors\n .getAgentsListByMembership(state, {\n operatorId: operatorField.value\n })\n .map((agent) => ({\n value: agent.agentId,\n label: agent.agentName\n }))\n : agentsSelectors.getAgentsList(state).map((agent) => ({\n value: agent.agentId,\n label: agent.agentName\n })),\n groupList: groupsSelectors.getGroupsList(state).map((group) => ({\n value: group.groupId,\n label: group.groupName\n }))\n }));\n\n //Actualizar el modelo que tiene el padre del componente\n useEffect(() => {\n finalOnChange({\n operatorId: operatorField.value,\n organizationId: organizationField.value,\n divisionId: divisionField.value,\n subdivisionId: subdivisionField.value,\n groupId: groupField.value\n });\n }, [\n operatorField.value,\n organizationField.value,\n divisionField.value,\n subdivisionField.value,\n groupField.value\n ]);\n\n const finalOnChange = (values) => {\n additionalonchangefunction(values, membershipOptions);\n };\n return (\n \n \n {membershipOptions.useOperator && (\n \n {\n if (operatorField.value !== value) {\n operatorField.onChange(value);\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={operatorFieldState}\n forceinitialvalue={membershipDefaultValue.operatorId}\n required={!membershipOptions.showAllOperator}\n isClearable={membershipOptions.showAllOperator}\n onClear={() => {\n operatorField.onChange(null);\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'operatorInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isOperatorDisabled}\n options={operatorsList}\n label={intl.formatMessage({\n id: 'operators.operator'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllOperator ? 'common.all' : 'operators.selectOperator'\n })}\n />\n \n )}\n {membershipOptions.useOrganization && (\n \n {\n if (organizationField.value !== value) {\n organizationField.onChange(value);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={organizationFieldState}\n forceinitialvalue={membershipDefaultValue.organizationId}\n required={!membershipOptions.showAllOrganization}\n isClearable={membershipOptions.showAllOrganization}\n onClear={() => {\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'organizationInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isOrganizationDisabled}\n options={organizationsList}\n label={intl.formatMessage({\n id: 'organizations.organization'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllOrganization\n ? 'common.all'\n : 'organizations.selectOrganization'\n })}\n />\n \n )}\n {membershipOptions.useDivision && (\n \n {\n if (divisionField.value !== value) {\n divisionField.onChange(value);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={divisionFieldState}\n forceinitialvalue={membershipDefaultValue.divisionId}\n required={!membershipOptions.showAllDivision}\n isClearable={membershipOptions.showAllDivision}\n onClear={() => {\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'divisionInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isDivisionDisabled}\n options={divisionsList}\n label={intl.formatMessage({\n id: 'divisions.division'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllDivision ? 'common.all' : 'divisions.selectDivision'\n })}\n />\n \n )}\n {membershipOptions.useSubdivision && (\n \n \n \n )}\n {membershipOptions.useAgent && (\n \n (\n \n )}\n />\n \n )}\n {membershipOptions.useGroup && (\n \n {\n if (groupField.value !== value) {\n groupField.onChange(value);\n }\n }\n }}\n fieldstate={groupFieldState}\n forceinitialvalue={membershipDefaultValue.groupId}\n required={!membershipOptions.showAllGroup}\n isClearable={membershipOptions.showAllGroup}\n onClear={() => {\n groupField.onChange(null);\n }}\n id={'groupInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isGroupDisabled}\n options={groupList}\n label={intl.formatMessage({\n id: 'groups.group'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllGroup ? 'common.all' : 'users.selectGroup'\n })}\n />\n \n )}\n \n );\n};\n\nconst Membership: FC = (props) => {\n const {\n options = {},\n defaultValue = {\n groupId: null,\n agentId: null,\n operatorId: null,\n organizationId: null,\n divisionId: null,\n subdivisionId: null,\n operatorName: '',\n organizationName: '',\n divisionName: '',\n subdivisionName: '',\n agentName: '',\n groupName: ''\n },\n fetchEntities = true,\n showDropdowns = true,\n additionalonchangefunction\n } = props;\n //Se inicializa model y options\n const [membershipDefaultValue, membershipOptions, isInitialize] = useMembership(\n options,\n defaultValue\n );\n\n return (\n \n {fetchEntities && }\n {showDropdowns &&\n (isInitialize ? (\n \n ) : (\n \n \n \n ))}\n \n );\n};\n\nexport default Membership;\n","/* -------------------------------------------------------------------------- */\n/* Componente Switch */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Switch genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\nimport { useEffect, useState, Fragment } from 'react';\nimport { FormGroup, CustomInput, Tooltip } from 'reactstrap';\n\ninterface Props {\n field: any;\n label: any;\n tooltipMessage?: string;\n forceinitialvalue?: boolean;\n additionalonchangefunction?: Function;\n className?: string;\n disabled?: boolean;\n onAfterChange?: Function;\n}\n\nconst SwitchInput = (props: Props) => {\n const {\n field,\n label,\n forceinitialvalue,\n disabled = false,\n additionalonchangefunction,\n tooltipMessage = null,\n className = 'mt-2 mb-2',\n onAfterChange = (v, t) => {}\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n useEffect(() => {\n if (field.value != undefined) onChangeFinal(field.value);\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue != undefined) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n <>\n \n {label}}\n checked={field.value ?? ''}\n onChange={() => {\n onChangeFinal(!field.value);\n onAfterChange(!field.value, field.name);\n }}\n disabled={disabled}\n />\n \n {tooltipMessage && (\n \n {tooltipMessage}\n \n )}\n \n );\n};\n\nSwitchInput.defaultProps = {\n label: '',\n initialValue: false\n};\n\nexport default SwitchInput;\n","import 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.GROUP_FETCH_COMPLETED: {\n const { entities, order, groupId } = action.payload;\n const newState = { ...state };\n const {\n entities: { users }\n } = normalize(\n entities[groupId].entities[0].map((entity) => camelcaseKeys(entity)),\n schemas.users\n ); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(\n entities[groupId].entities[1].map((entity) => camelcaseKeys(entity)),\n schemas.locations\n ); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(\n entities[groupId].entities[2].map((entity) => camelcaseKeys(entity)),\n schemas.workplans\n ); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(\n entities[groupId].entities[3].map((entity) => camelcaseKeys(entity)),\n schemas.units\n ); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(\n entities[groupId].entities[4].map((entity) => camelcaseKeys(entity)),\n schemas.geofences\n ); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(\n entities[groupId].entities[5].map((entity) => camelcaseKeys(entity)),\n schemas.drivers\n ); //normalize data to byId for drivers\n\n newState[groupId] = {\n ...state[groupId],\n isSelected: false,\n users: users ?? {},\n locations: locations ?? {},\n workplans: workplans ?? {},\n units: units ?? {},\n geofences: geofences ?? {},\n drivers: drivers ?? {},\n ...omit(entities[groupId], 'entities')\n };\n\n return newState;\n }\n\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((groupId) => {\n const {\n entities: { users }\n } = normalize(\n entities[groupId].entities[0].map((entity) => camelcaseKeys(entity)),\n schemas.users\n ); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(\n entities[groupId].entities[1].map((entity) => camelcaseKeys(entity)),\n schemas.locations\n ); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(\n entities[groupId].entities[2].map((entity) => camelcaseKeys(entity)),\n schemas.workplans\n ); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(\n entities[groupId].entities[3].map((entity) => camelcaseKeys(entity)),\n schemas.units\n ); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(\n entities[groupId].entities[4].map((entity) => camelcaseKeys(entity)),\n schemas.geofences\n ); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(\n entities[groupId].entities[5].map((entity) => camelcaseKeys(entity)),\n schemas.drivers\n ); //normalize data to byId for drivers\n\n newState[groupId] = {\n ...state[groupId],\n isSelected: false,\n users: users ?? {},\n locations: locations ?? {},\n workplans: workplans ?? {},\n units: units ?? {},\n geofences: geofences ?? {},\n drivers: drivers ?? {},\n ...omit(entities[groupId], 'entities')\n };\n });\n return newState;\n }\n\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED: {\n const { entities, groupId } = action.payload;\n const newState = { ...state };\n newState[groupId] = {\n users: entities.users,\n locations: entities.locations,\n workplans: entities.workplans,\n units: entities.units,\n geofences: entities.geofences,\n drivers: entities.drivers,\n ...state[groupId]\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.GROUP_ADD_STARTED: {\n const { group, users, userInSession } = action.payload;\n const newState = { ...state };\n const usersToAdd = {};\n users\n .filter((user) => (group.isInGroup === 0 ? user.userName !== userInSession : user))\n .map((user) => {\n usersToAdd[user.userName] = user;\n });\n newState[group.groupId] = {\n isSelected: true,\n users: usersToAdd,\n locations: {},\n workplans: {},\n units: {},\n geofences: {},\n drivers: {},\n profileId: 1,\n locationsCount: 0,\n workPlansCount: 0,\n userCount: users.length,\n unitCount: 0,\n geofenceCount: 0,\n driverCount: 0,\n ...group,\n isInGroup: group.isInGroup\n };\n return newState;\n }\n\n case types.GROUP_ADD_WITH_ENTITIES_STARTED: {\n const { group, userInSession, entityType, entities, params } = action.payload;\n const newState = { ...state };\n const usersToAdd = { [`${userInSession.userName}`]: userInSession };\n const entitiesToAdd = entities.map((entity) =>\n entityType === 'users'\n ? {\n userId: entity.userId,\n userName: entity.userName,\n completeName: entity.completeName,\n userImage: entity.userImage,\n profileId: params.profileId\n }\n : entityType === 'locations'\n ? {\n locationId: entity.locationId,\n locationName: entity.locationName,\n radius: entity.radius,\n latitude: entity.latitude,\n longitude: entity.longitude,\n organizationName: entity.organizationName\n }\n : entityType === 'workplans'\n ? {\n workPlanId: entity.workplanId,\n workPlanName: entity.workplanName,\n organizationName: entity.organizationName\n }\n : entityType === 'units'\n ? {\n unitId: entity.unitId,\n groupName: group.groupName,\n unitName: entity.unitName,\n themeId: entity.themeId,\n privateCode: entity.privateCode,\n organizationName: entity.organizationName\n }\n : entityType === 'geofences'\n ? {\n geofenceId: entity.geofenceId,\n geofenceName: entity.geofenceName,\n notifyAdmin: params.notifyAdmin,\n notifyOwner: params.notifyOwner,\n shape: entity.shape,\n notifyEmails: params.notifyEmails\n }\n : entityType === 'drivers'\n ? {\n driverId: entity.driverId,\n driverName: entity.driverName,\n driverPhoto: entity.driverPhoto,\n licenseNumber: entity.licenseNumber,\n licenseType: entity.licenseType,\n licenseExpireDate: entity.licenseExpireDate\n }\n : entity\n );\n\n newState[group.groupId] = {\n isSelected: false,\n users: usersToAdd,\n locations: {},\n workplans: {},\n units: {},\n geofences: {},\n drivers: {},\n profileId: 1,\n locationsCount: 0,\n workPlansCount: 0,\n userCount: 1,\n unitCount: 0,\n geofenceCount: 0,\n driverCount: 0,\n ...group,\n isInGroup: group.isInGroup\n };\n\n entitiesToAdd.forEach((entity) => {\n newState[group.groupId] = {\n ...newState[group.groupId],\n [entityType]: {\n ...newState[group.groupId][entityType],\n [entityType === 'users'\n ? entity.userName\n : entityType === 'locations'\n ? entity.locationId\n : entityType === 'workplans'\n ? entity.workplanId\n : entityType === 'units'\n ? entity.unitId\n : entityType === 'geofences'\n ? entity.geofenceId\n : entityType === 'drivers'\n ? entity.driverId\n : entity.entityId]: entity\n },\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n newState[group.groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] + 1\n };\n });\n return newState;\n }\n\n case types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED:\n case types.GROUP_EDIT_STARTED: {\n const group = action.payload;\n return {\n ...state,\n [group.groupId]: {\n ...state[group.groupId],\n oldGroup: state[group.groupId],\n ...group\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED:\n case types.GROUP_EDIT_FAILED: {\n const { oldGroup } = action.payload;\n return {\n ...state,\n [oldGroup.groupId]: {\n ...omit(state[oldGroup.groupId], ['oldGroup']),\n ...oldGroup\n }\n };\n }\n\n //TYPES REMOVE AND ADD ENTITIES\n case types.GROUP_REMOVE_ENTITIES_COMPLETED: {\n const groupId = action.payload.groupId;\n const entityType = action.payload.entityType; // users, locations, workplans, units, geofences, drivers\n const entities = action.payload.entities;\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n [entityType]: omit(state[groupId][entityType], entities),\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n state[groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] - entities.length\n }\n };\n return newState;\n }\n\n case types.GROUP_ADD_ENTITIES_COMPLETED: {\n const group = action.payload.group;\n const entityType = action.payload.entityType; // users, locations, workplans, units, geofences, drivers\n const entities = action.payload.entities;\n const params = action.payload.params;\n const newState = { ...state };\n\n const entitiesToAdd = entities.map((entity) =>\n entityType === 'users'\n ? {\n userId: entity.userId,\n userName: entity.userName,\n completeName: entity.completeName,\n userImage: entity.userImage,\n profileId: params.profileId\n }\n : entityType === 'locations'\n ? {\n locationId: entity.locationId,\n locationName: entity.locationName,\n radius: entity.radius,\n latitude: entity.latitude,\n longitude: entity.longitude,\n organizationName: entity.organizationName\n }\n : entityType === 'workplans'\n ? {\n workPlanId: entity.workPlanId,\n workPlanName: entity.workPlanName,\n organizationName: entity.organizationName\n }\n : entityType === 'units'\n ? {\n unitId: entity.unitId,\n groupName: group.groupName,\n unitName: entity.unitName,\n themeId: entity.themeId,\n privateCode: entity.privateCode,\n organizationName: entity.organizationName\n }\n : entityType === 'geofences'\n ? {\n geofenceId: entity.geofenceId,\n geofenceName: entity.geofenceName,\n notifyAdmin: params.notifyAdmin,\n notifyOwner: params.notifyOwner,\n shape: entity.shape,\n notifyEmails: params.notifyEmails\n }\n : entityType === 'drivers'\n ? {\n driverId: entity.driverId,\n driverName: entity.driverName,\n driverPhoto: entity.driverPhoto,\n licenseNumber: entity.licenseNumber,\n licenseType: entity.licenseType,\n licenseExpireDate: entity.licenseExpireDate\n }\n : entity\n );\n\n entitiesToAdd.forEach((entity) => {\n newState[group.groupId] = {\n ...state[group.groupId],\n [entityType]: {\n ...newState[group.groupId][entityType],\n [entityType === 'users'\n ? entity.userName\n : entityType === 'locations'\n ? entity.locationId\n : entityType === 'workplans'\n ? entity.workPlanId\n : entityType === 'units'\n ? entity.unitId\n : entityType === 'geofences'\n ? entity.geofenceId\n : entityType === 'drivers'\n ? entity.driverId\n : entity.entityId]: entity\n },\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n newState[group.groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] + 1\n };\n });\n return newState;\n }\n\n //TYPE EDIT USER PROFILE IN GROUP\n case types.GROUP_USER_PROFILE_EDIT_COMPLETED: {\n const { groupId, userName, userNameInSession, profileId } = action.payload;\n const users = { ...state[groupId].users };\n users[userName] = { ...users[userName], profileId: profileId };\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n users: users,\n profileId: userNameInSession === userName ? profileId : state[groupId]['profileId']\n }\n };\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.GROUP_REMOVE_COMPLETED: {\n const { groupId } = action.payload;\n return omit(state, groupId);\n }\n\n //TYPES LEAVE COMPLETED\n case types.GROUP_LEAVE_COMPLETED: {\n const { groupId, isAsesor, asesorUsername } = action.payload;\n if (isAsesor === true) {\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n users: omit(state[groupId]['users'], asesorUsername),\n userCount: state[groupId]['userCount'] - 1,\n isInGroup: 0,\n profileId: 1\n }\n };\n return newState;\n }\n return omit(state, groupId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.GROUP_SELECTED: {\n const groupId = action.payload;\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.GROUP_DESELECTED: {\n const groupId = action.payload;\n return {\n ...state,\n [groupId]: {\n ...state[groupId],\n isSelected: false\n }\n };\n }\n\n case types.GROUPS_ALL_SELECTED: {\n const groupIds = action.payload;\n const newState = { ...state };\n if (groupIds.length == 0) {\n forEach(state, (group: any, groupId) => {\n newState[groupId] = {\n ...group,\n isSelected: true\n };\n });\n } else {\n groupIds.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GROUPS_ALL_DESELECTED: {\n const groupIds = action.payload;\n const newState = { ...state };\n if (groupIds.length == 0) {\n forEach(state, (group: any, groupId) => {\n newState[groupId] = {\n ...group,\n isSelected: false\n };\n });\n } else {\n groupIds.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.GROUPS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.GROUP_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_COMPLETED: {\n const { oldId, group } = action.payload;\n return state.map((groupId) => (groupId === oldId ? group.groupId : groupId));\n }\n\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GROUP_REMOVE_COMPLETED: {\n const { groupId } = action.payload;\n return state.filter((groupIdState) => groupIdState !== groupId);\n }\n\n case types.GROUP_LEAVE_COMPLETED: {\n const { groupId, isAsesor } = action.payload;\n return state.filter((groupIdState) =>\n isAsesor === true ? groupIdState : groupIdState !== groupId\n );\n }\n\n //CASE ADD STARTED\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_ADD_STARTED: {\n const { group, user } = action.payload;\n return [...state, group.groupId];\n }\n\n //CASE ADD FAILED\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((groupIdState) => groupIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_FETCH_COMPLETED:\n case types.GROUPS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingGroup = (state = false, action) => {\n switch (action.type) {\n case types.GROUP_FETCH_STARTED: {\n return true;\n }\n case types.GROUP_FETCH_COMPLETED:\n case types.GROUP_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingAllEntities = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED:\n case types.GROUPS_ALL_ENTITIES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_PARTIAL_FETCH_COMPLETED:\n case types.GROUPS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_ADD_STARTED: {\n return true;\n }\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_COMPLETED:\n case types.GROUP_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_ADD_ENTITIES_STARTED:\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_REMOVE_ENTITIES_STARTED:\n case types.GROUP_EDIT_STARTED: {\n return true;\n }\n case types.GROUP_ADD_COMPLETED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_COMPLETED:\n case types.GROUP_EDIT_COMPLETED:\n case types.GROUP_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_REMOVE_STARTED: {\n return true;\n }\n case types.GROUP_REMOVE_COMPLETED:\n case types.GROUP_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isLeaving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_LEAVE_STARTED: {\n return true;\n }\n case types.GROUP_LEAVE_COMPLETED:\n case types.GROUP_LEAVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_STARTED:\n case types.GROUP_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_EDIT_STARTED:\n case types.GROUP_ADD_ENTITIES_STARTED:\n case types.GROUP_ADD_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_STARTED:\n case types.GROUP_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_REMOVE_STARTED:\n case types.GROUP_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorLeaving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_LEAVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_LEAVE_STARTED:\n case types.GROUP_LEAVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_FETCH_STARTED:\n case types.GROUPS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingGroup = (state = null, action) => {\n switch (action.type) {\n case types.GROUP_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_FETCH_STARTED:\n case types.GROUP_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAllEntities = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_STARTED:\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_PARTIAL_FETCH_STARTED:\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst groups: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isFetchingAllEntities,\n isAdding,\n isEditing,\n isRemoving,\n isLeaving,\n errorPartialFetchingList,\n errorFetchingList,\n errorFetchingAllEntities,\n errorAdding,\n errorEditing,\n errorRemoving,\n errorLeaving,\n isFetchingGroup,\n errorFetchingGroup\n});\n\nconst groupsPersistedConfig = {\n key: 'groups',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(groupsPersistedConfig, groups);\n\n//Own state\nexport const getOwnState = (state) => state.groups;\n\n//Information\nexport const getGroup = (state, groupId) => {\n const group = getOwnState(state).byId[groupId];\n if (group) {\n return {\n ...group\n };\n } else return undefined;\n};\nexport const getUsersInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.users ? Object.values(group.users) : [];\n};\nexport const getLocationsInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.locations ? Object.values(group.locations) : [];\n};\nexport const getWorkplansInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.workplans ? Object.values(group.workplans) : [];\n};\nexport const getUnitsInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.units ? Object.values(group.units) : [];\n};\nexport const getGeofencesInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.geofences ? Object.values(group.geofences) : [];\n};\nexport const getDriversInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.divers ? Object.values(group.divers) : [];\n};\n\nexport const getGroupsList = (state) =>\n getOwnState(state)\n .order.map((id) => getGroup(state, id))\n .filter((group) => group.groupStatus > 0);\n\nexport const getAllGroupsList = (state) =>\n getOwnState(state).order.map((id) => getGroup(state, id));\n\nexport const getSelectedGroups = (state) => {\n const selectedGroups = getGroupsList(state).filter((group) => group.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedGroups.length === 0) return null;\n //Si se selecciona mƔs de cero se devuelve el arreglo de los seleccionados\n if (selectedGroups.length > 0) return selectedGroups;\n};\n\nexport const getUnfilteredSelectedGroup = (state) =>\n getAllGroupsList(state).find((group) => group.isSelected) ?? null;\n\nexport const getSelectedGroup = (state) => {\n const selectedGroups = getGroupsList(state).filter((group) => group.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedGroups.length === 1) return selectedGroups[0];\n //De lo contrario se devuelve null\n else return null;\n};\nexport const getGroupsListByMembership = (state, membership) => {\n return getGroupsList(state).filter(\n (group) =>\n membership &&\n (!membership.operatorId || membership.operatorId === group.operatorId) &&\n (!membership.organizationId || membership.organizationId === group.organizationId) &&\n (!membership.divisionId || membership.divisionId === group.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === group.subdivisionId) &&\n group.unitStatus > 0\n );\n};\n\n//Status of sagas\nexport const isPartialFetchingListGroups = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListGroups = (state) => getOwnState(state).isFetchingList;\nexport const isFetchingAllEntitiesGroups = (state) => getOwnState(state).isFetchingAllEntitities;\nexport const isAddingGroup = (state) => getOwnState(state).isAdding;\nexport const isEditingGroup = (state) => getOwnState(state).isEditing;\nexport const isRemovingGroup = (state) => getOwnState(state).isRemoving;\nexport const isLeavingGroup = (state) => getOwnState(state).isLeaving;\nexport const isFetchingGroupById = (state) => getOwnState(state).isFetchingGroup;\n\n//Errors\nexport const getPartialFetchingListGroupsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListGroupsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getFetchingAllEntitiesErrors = (state) => getOwnState(state).errorFetchingAllEntities;\nexport const getAddingGroupErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingGroupErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingGroupErrors = (state) => getOwnState(state).errorRemoving;\nexport const getLeavingGroupErrors = (state) => getOwnState(state).errorLeaving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../../types/configurations';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((configurationId) => {\n newState[configurationId] = {\n isSelected: false,\n ...entities[configurationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONFIGURATIONS_FETCH_STARTED: {\n return true;\n }\n case types.CONFIGURATIONS_FETCH_COMPLETED:\n case types.CONFIGURATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONFIGURATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONFIGURATIONS_FETCH_STARTED:\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst configurations = combineReducers({\n byId,\n order,\n isFetchingList,\n errorFetchingList\n});\n\nexport default configurations;\n\n//Own state\nexport const getOwnState = (state) => state.staticCatalogs.brands.models.configurations;\n\n//Information\nexport const getConfiguration = (state, configurationId) =>\n getOwnState(state).byId[configurationId];\nexport const getConfigurationsList = (state) =>\n getOwnState(state).order.map((id) => getConfiguration(state, id));\n\nexport const getConfigurationsFromBrand = (state, brandId) =>\n getConfigurationsList(state).filter((configuration) => configuration.brandId === brandId);\n\n//Status of sagas\nexport const isFetchingListConfigurations = (state) => getOwnState(state).isFetchingList;\n\n//Errors\nexport const getFetchingListConfigurationsErrors = (state) => getOwnState(state).errorFetchingList;\n","import { SaveCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\n\nexport const startFetchingCategories = (filters = {}) => ({\n type: types.CATEGORIES_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingCategories = (entities, order) => ({\n type: types.CATEGORIES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingCategories = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.CATEGORIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingCategories = (entityTypeId) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingCategories = (entities, order) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingCategories = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingCategory = (category: SaveCategoryDTO) => ({\n type: types.CATEGORY_ADD_STARTED,\n payload: category\n});\n\nexport const completeAddingCategory = (id: string, oldId: string, category) => ({\n type: types.CATEGORY_ADD_COMPLETED,\n payload: { id, oldId, category }\n});\n\nexport const failAddingCategory = (oldId, error) => ({\n type: types.CATEGORY_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingCategory = (category: SaveCategoryDTO) => ({\n type: types.CATEGORY_EDIT_STARTED,\n payload: category\n});\n\nexport const completeEditingCategory = (category) => ({\n type: types.CATEGORY_EDIT_COMPLETED,\n payload: category\n});\n\nexport const failEditingCategory = (oldCategory, error) => ({\n type: types.CATEGORY_EDIT_FAILED,\n payload: {\n oldCategory,\n error\n }\n});\n\nexport const startRemovingCategory = (request: { categoryId: number; categoryName: string }) => ({\n type: types.CATEGORY_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingCategory = (id) => ({\n type: types.CATEGORY_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingCategory = (id, error) => ({\n type: types.CATEGORY_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import * as types from '../../types/routesExecutions';\n\nexport const startFetchingRoutesExecutions = (filters = {}) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutesExecutions = (entities, order, indicators) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators\n }\n});\nexport const failFetchingRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCancelRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_CANCEL_STARTED,\n payload: { routes }\n});\nexport const completeCancelRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_CANCEL_COMPLETED,\n payload: { routes }\n});\nexport const failCancelRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_CANCEL_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditRouteExecution = (routeExecution) => ({\n type: types.ROUTE_EXECUTION_EDIT_STARTED,\n payload: routeExecution\n});\nexport const completeEditRouteExecution = (routeExecution) => ({\n type: types.ROUTE_EXECUTION_EDIT_COMPLETED,\n payload: routeExecution\n});\nexport const failEditRouteExecution = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTE_EXECUTION_EDIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFinalizeRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_STARTED,\n payload: { routes }\n});\nexport const completeFinalizeRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_COMPLETED,\n payload: { routes }\n});\nexport const failFinalizeRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCompleteRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_STARTED,\n payload: { routes }\n});\nexport const completeCompleteRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_COMPLETED,\n payload: { routes }\n});\nexport const failCompleteRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startRemoveRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_REMOVE_STARTED,\n payload: { routes }\n});\nexport const completeRemoveRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_REMOVE_COMPLETED,\n payload: { routes }\n});\nexport const failRemoveRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_REMOVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPauseRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_PAUSE_STARTED,\n payload: { routes }\n});\nexport const completePauseRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_PAUSE_COMPLETED,\n payload: { routes }\n});\nexport const failPauseRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_PAUSE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startStartRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_START_STARTED,\n payload: { routes }\n});\nexport const completeStartRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_START_COMPLETED,\n payload: { routes }\n});\nexport const failStartRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_START_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startManualTransitRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED,\n payload: { routes }\n});\nexport const completeManualTransitRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED,\n payload: { routes }\n});\nexport const failManualTransitRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeToAlternateRoute = (routeAssignmentId, routeId, reason) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED,\n payload: { routeAssignmentId, routeId, reason }\n});\nexport const completeChangeToAlternateRoute = (routeAssignmentId, routeId, reason) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED,\n payload: { routeAssignmentId, routeId, reason }\n});\nexport const failChangeToAlternateRoute = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startShareRoutesExecutions = (routeAssignments: string, emailList: string) => ({\n type: types.ROUTES_EXECUTION_SHARE_STARTED,\n payload: { routeAssignments, emailList }\n});\nexport const completeShareRoutesExecutions = (routeAssignments: string, emailList: string) => ({\n type: types.ROUTES_EXECUTION_SHARE_COMPLETED,\n payload: { routeAssignments, emailList }\n});\nexport const failShareRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_SHARE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignUnitRoutesExecutions = (assignation) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitRoutesExecutions = (assignation) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import { NoticeByOdometerRequest } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer';\n\nexport const startFetchingNotices = (filters = {}) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingNotices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingNotices = (entityTypeId) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingNotices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_STARTED,\n payload: notice\n});\n\nexport const completeAddingNotice = (id: string, oldId: string, notice) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_COMPLETED,\n payload: { id, oldId, notice }\n});\n\nexport const failAddingNotice = (oldId, error) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_STARTED,\n payload: notice\n});\n\nexport const completeEditingNotice = (notice) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_COMPLETED,\n payload: notice\n});\n\nexport const failEditingNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\n//===================== RENEW ========================================\nexport const startRenewNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_STARTED,\n payload: notice\n});\n\nexport const completeRenewNotice = (notice) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_COMPLETED,\n payload: notice\n});\n\nexport const failRenewNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\nexport const startRemovingNotice = (request: { noticeId: number; unitId: number }) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingNotice = (id) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingNotice = (id, error) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import deburr from 'lodash/deburr';\nimport { useState } from 'react';\nimport { renderToString } from 'react-dom/server';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Select, { components } from 'react-select';\nimport CreatableSelect from 'react-select/creatable';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport {\n Badge,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n Label,\n UncontrolledTooltip\n} from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport DefaultButton from 'views/components/DefaultButton';\nimport {\n isNullOrUndefined,\n isValidEmail,\n normalizeInputText,\n normalizeString\n} from '../../../utility/Utils';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport Icon from '../../../utility/icomoon';\n\nconst { Option, SingleValue, MultiValue, NoOptionsMessage, MultiValueLabel } = components;\n\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data &&\n candidate.data.label &&\n deburr(candidate.data.label.toLowerCase()).includes(deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n deburr(candidate.data.label_intl.toLowerCase()).includes(deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {`${props.data.label}`}\n
\n
\n );\n};\n\nconst IconMultipleValue = (props) => {\n return (\n \n {props.data.identifierIcon && (\n
{props.data.identifierIcon}
\n )}\n
\n {props.data.icon != null &&
{props.data.icon}
}\n {`${props.data.label}`}\n
\n {props.data.edit && (\n
\n props.data.edit(props.data.id)} />\n
\n )}\n
\n );\n};\n\nconst MultiSelectInput = (props) => {\n const {\n field,\n fieldstate,\n options = [],\n isInModal = false,\n isMultiple = true,\n canCreate = false,\n isLoading = false,\n errorMessage,\n underText = '',\n ...inputProps\n } = props;\n const intl = useIntl();\n\n const [inputValue, setInputValue] = useState('');\n const [innerOptions, setOptions] = useState([]);\n useDeepCompareEffect(() => {\n if (field.value && options.length > 0) {\n if (typeof field.value === 'string') {\n const newValue = options\n .filter((option) =>\n field.value\n .split(',')\n .includes(isNaN(option.value) ? option.value : option.value.toString())\n )\n .map((option) => option.value)\n .join(',');\n if (field.value.length !== newValue.length) field.onChange(newValue);\n } else {\n field.onChange('');\n }\n }\n setOptions(options);\n }, [\n options.map((op) => ({\n ...op,\n icon: typeof op.icon === 'object' ? renderToString(op.icon) : op.icon\n })),\n intl.locale\n ]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const styles = {\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused ? `1px solid ${primary} !important` : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n multiValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n // backgroundColor: 'rgba(0, 51, 204, 0.12)',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n };\n const SelectComponent = canCreate ? CreatableSelect : Select;\n\n const cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n });\n\n const MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n };\n\n const isOptionSelected = (option, value: string): boolean => {\n if (typeof value !== 'string') {\n return false;\n }\n const values = value.split(',');\n const optionValue = isNaN(option.value) ? option.value : option.value.toString();\n return values.includes(optionValue);\n };\n\n return (\n \n \n \n {props.prependcomponent}\n option.label.replace(/\\s+/g, ' ')}\n // formatOptionLabel={(option) => getValidOptions(option.label)}\n components={\n inputProps.components\n ? inputProps.components\n : {\n Option: IconOption,\n SingleValue: IconSingleValue,\n MultiValue: IconMultipleValue,\n MenuList\n }\n }\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={\n fieldstate.error != null ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'\n }\n onChange={(selectedOptions, action) => {\n if (action.action === 'create-option') {\n if (inputProps.onCreate) inputProps.onCreate(selectedOptions);\n }\n\n if (action.action === 'input-change') {\n const inputValue = selectedOptions.inputValue.replace(/\\s+/g, ' ');\n return { ...selectedOptions, inputValue };\n }\n\n field.onChange(\n selectedOptions\n ? isMultiple\n ? selectedOptions.map((selected) => selected.value.toString()).join(',')\n : selectedOptions.value.toString()\n : null\n );\n if (inputProps.onSelect) inputProps.onSelect(selectedOptions);\n setInputValue('');\n }}\n onBlur={field.onBlur}\n isValidNewOption={canCreate ? (fieldValue) => isValidEmail(fieldValue) : null}\n options={innerOptions}\n filterOption={filterOption}\n isClearable={inputProps.isClearable === true}\n value={options.filter((option) =>\n typeof field.value === 'string'\n ? field.value\n .split(',')\n .map((value) => value)\n .includes(isNaN(option.value) ? option.value : option.value.toString())\n : ''\n )}\n noOptionsMessage={(currentValue) =>\n canCreate\n ? appIntl().formatMessage(\n { id: 'common.invalidEmail' },\n { value: currentValue.fieldValue }\n )\n : appIntl().formatMessage({ id: 'common.noOptions' })\n }\n maxMenuHeight={250}\n formatCreateLabel={\n canCreate\n ? (value) => appIntl().formatMessage({ id: 'common.create' }, { value })\n : undefined\n }\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n inputValue={inputValue}\n onInputChange={(inputValue, action, c) => {\n const inputValueNormalized = normalizeInputText(inputValue);\n if (inputProps.onInputChange) inputProps.onInputChange(inputValueNormalized, action);\n\n if (typeof inputValueNormalized === 'string') {\n setInputValue(inputValueNormalized);\n }\n }}\n />\n {props.appendcomponent}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n {underText !== '' && (\n
\n {inputProps.underIcon &&\n (inputProps.underIcon.iconAction ? (\n \n ) : (\n \n ))}\n
\n {underText}\n
\n
\n )}\n
\n );\n};\n\nexport default MultiSelectInput;\n","import 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","const permissions = {\n listFleet: 'BA002',\n deviceAction1: 'UA001',\n deviceAction2: 'UA002',\n deviceAction3: 'UA026',\n deviceAction4: 'UA034',\n deviceAction5: 'UA035',\n deviceAction6: 'UA043',\n deviceAction8: 'UA048',\n deviceAction9: 'UA051',\n deviceAction11: 'UA023',\n deviceAction12: 'UA024',\n deviceAction13: 'UA055',\n deviceAction20: 'UA003',\n deviceAction21: 'UA004',\n deviceAction22: 'UA005',\n deviceAction23: 'UA006',\n deviceAction30: 'UA027',\n deviceAction31: 'UA028',\n deviceAction32: 'UA029',\n deviceAction33: 'UA030',\n deviceAction34: 'UA031',\n deviceAction35: 'UA032',\n deviceAction36: 'UA033',\n deviceAction50: 'UA007',\n deviceAction51: 'UA036',\n deviceAction52: 'UA037',\n deviceAction53: 'UA038',\n deviceAction54: 'UA039',\n deviceAction55: 'UA040',\n deviceAction56: 'UA041',\n deviceAction57: 'UA042',\n deviceAction60: 'UA044',\n deviceAction61: 'UA045',\n deviceAction70: 'UA046',\n deviceAction71: 'UA047',\n deviceAction80: 'UA049',\n deviceAction81: 'UA050',\n deviceAction90: 'UA008',\n deviceAction91: 'UA052',\n deviceAction92: 'UA053',\n deviceAction93: 'UA054',\n deviceAction100: 'UA013',\n deviceAction1000: 'UA009',\n deviceAction1001: 'UA014',\n deviceAction1002: 'UA010',\n deviceAction1003: 'UA015',\n deviceAction1004: 'UA016',\n deviceAction1005: 'UA017',\n deviceAction1006: 'UA018',\n deviceAction1007: 'UA019',\n deviceAction1008: 'UA020',\n deviceAction1009: 'UA011',\n deviceAction1010: 'UA021',\n deviceAction1011: 'UA022',\n deviceAction1200: 'UA025',\n downtime: 'UP027',\n sendScripts: 'SP001'\n};\n\nexport default permissions;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/workplan';\n\nexport interface deleteWorkplanExecutionLocationFilters {\n visitId: number;\n locationId: number;\n sequenceNumber: number;\n applyToWorkplan: boolean;\n locationName: string;\n}\n\nexport const getWorkplansListService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getAssignedWorkplansWithScheduleService = (\n request: any,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/getAssignedWithSchedule`, request);\n};\n\nexport const getAssignedWorkplansWithDateTimeService = (\n request: any,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/getAssignedWithDateTime`, request);\n};\n\nexport interface BulkInsertRequest {\n workplanType: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n workplans: string; // JSON string\n}\nexport const workplansBulkInsert = (request: BulkInsertRequest, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/workplansBulkInsert`, request);\n};\n\nexport const deleteWorkplanService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.workplanName}`,\n object: 'workplans.workplan',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const saveWorkplanService = (request: any, configAction: ConfigActions, isNew: boolean) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.workplanName}`,\n object: 'workplans.workplan',\n action: isNew ? 'Create' : 'Edit',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteWorkplanExecutionLocationService = (\n request: deleteWorkplanExecutionLocationFilters,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'workplans.location',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/deleteWorkplanExecutionLocation`, request);\n};\n\nexport const saveWorkplanExecutionLocationService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'workplans.location',\n action: 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/saveWorkplanExecutionLocation`, request);\n};\n","const permissions = {\n temperatureCatalog: 'TE001',\n temperatureStadistics: 'TE002',\n fuelCatalog: 'TE003',\n fuelReport: 'TE007',\n fuelStadistics: 'TE004',\n tirePressureCatalog: 'TE005',\n obd2Monitor: 'TE006',\n telemtryUnits: 'TU001',\n downtime: 'UP027'\n};\n \nexport default permissions;\n","import { NoticeByDateRequest } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate';\n\nexport const startFetchingNotices = (filters = {}) => ({\n type: types.NOTICES_BY_DATE_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_DATE_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingNotices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.NOTICES_BY_DATE_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingNotices = (entityTypeId) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingNotices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_ADD_STARTED,\n payload: notice\n});\n\nexport const completeAddingNotice = (id: string, oldId: string, notice) => ({\n type: types.NOTICE_BY_DATE_ADD_COMPLETED,\n payload: { id, oldId, notice }\n});\n\nexport const failAddingNotice = (oldId, error) => ({\n type: types.NOTICE_BY_DATE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_EDIT_STARTED,\n payload: notice\n});\n\nexport const completeEditingNotice = (notice) => ({\n type: types.NOTICE_BY_DATE_EDIT_COMPLETED,\n payload: notice\n});\n\nexport const failEditingNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_DATE_EDIT_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\n//===================== RENEW ========================================\nexport const startRenewNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_RENEW_STARTED,\n payload: notice\n});\n\nexport const completeRenewNotice = (notice) => ({\n type: types.NOTICE_BY_DATE_RENEW_COMPLETED,\n payload: notice\n});\n\nexport const failRenewNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_DATE_RENEW_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\nexport const startRemovingNotice = (request: { noticeId: number; unitId: number }) => ({\n type: types.NOTICE_BY_DATE_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingNotice = (id) => ({\n type: types.NOTICE_BY_DATE_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingNotice = (id, error) => ({\n type: types.NOTICE_BY_DATE_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect, useRef } from 'react';\nimport { Marker, Popup, Rectangle, useMap, Circle, GeoJSON, Polygon } from 'react-leaflet';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport wkx from 'wkx';\n\nexport interface MapGeofenceEditOptions {\n usePopovers?: boolean;\n geofence: any;\n onGeofenceDragend?: Function;\n onGeofenceEdit?: Function;\n showGeofence: boolean;\n isMapFullScreen?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* MapGeofenceEdit to edit a geofence in map */\n/* -------------------------------------------------------------------------- */\nconst MapGeofenceEdit = (props: MapGeofenceEditOptions) => {\n const map = useMap();\n const { showGeofence, geofence, onGeofenceEdit, usePopovers, isMapFullScreen = false } = props;\n\n const zoomMapAfterEdit = !isMapFullScreen;\n const zoomMapToGeofence = (geofence) => {\n if (geofence.shape == 'C') {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n let feature = L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0]);\n map.flyToBounds(feature.toBounds(geofence.radius * 2 ?? 300), {});\n } else {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n // map.setView(feature.getBounds().getCenter(), 16);\n map.flyToBounds(feature.getBounds(), {});\n }\n };\n const WKBtoGeoJSON = (geofence, wkt) => {\n // let wkbBuffer = new Buffer(hex);\n if (wkt) {\n let geometry = wkx.Geometry.parse(wkt);\n if (geofence.shape == 'P') {\n geometry.type = 'LineString';\n }\n const geoJSON = geometry.toGeoJSON();\n\n return geoJSON;\n }\n return undefined;\n };\n\n useEffect(() => {\n try {\n geofenceRef.current.pm.enableLayerDrag();\n geofenceRef.current.pm.enable({ removeLayerBelowMinVertexCount: false, draggable: true });\n if (usePopovers) {\n geofenceRef.current.openPopup();\n }\n } catch {}\n if (geofence && Object.keys(geofence).length > 0) {\n if (zoomMapAfterEdit) zoomMapToGeofence(geofence);\n }\n }, [geofence.geofenceId]);\n\n useEffect(() => {\n try {\n if (geofenceRef.current) {\n geofenceRef.current.pm.enableLayerDrag();\n geofenceRef.current.pm.enable({ removeLayerBelowMinVertexCount: false, draggable: true });\n }\n } catch {}\n }, [geofence.geofenceWktString]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const geofenceRef = useRef(null);\n\n const geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n\n return (\n <>\n {showGeofence && geofenceGeoJSON && (\n
\n {geofence.shape == 'C' && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n\n if (onGeofenceEdit)\n onGeofenceEdit({\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n if (onGeofenceEdit)\n onGeofenceEdit({\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'R' && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n ['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'P' &&\n !['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n [coords[1], coords[0]])\n // geofenceGeoJSON.coordinates[0].map((coords) => [coords[1], coords[0]])\n L.GeoJSON.coordsToLatLngs(geofenceGeoJSON.coordinates[0])\n }\n pathOptions={{ color: geofence.color ?? primary }}\n eventHandlers={{\n click: (e) => {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'U' && (\n \n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n )}\n
\n )}\n )\n \n );\n};\n\nMapGeofenceEdit.defaultProps = {\n geofence: {},\n showGeofence: false,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapGeofenceEdit;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport React, { Fragment, useEffect, useState } from 'react';\nimport { Circle, GeoJSON, Polygon, Tooltip, Rectangle, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport wkx from 'wkx';\nimport * as geofenceActions from '../../../../screens/Geofences/actions';\nimport * as geofenceSelectors from '../../../../screens/Geofences/reducers';\nimport SlidingpanelGeofenceInformation from '../../../../screens/Geofences/views/SlidingpanelGeofenceInformation';\nimport MarkerClusterGroup from '../MarkerClusterGroup';\n\nexport interface MapGeofencesOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToGeofenceBounds?: boolean;\n useSlidingpanelGeofenceInformation?: boolean;\n usePopovers?: boolean;\n geofences?: any[];\n selectedGeofenceIds?: any[];\n showGeofences?: boolean;\n clusterMarkers?: boolean;\n isMapFullScreen?: boolean;\n useIsShownGeofence?: boolean; //param only when you have a property in each geofence isShownInMap to show geofences on map\n initialShowSlidingPanelGeofenceInformationOpen?: boolean;\n initialGeofenceInformationOpenId?: any;\n editingGeofenceParent?: any;\n setEditingGeofenceParent?: Function;\n editingGeofenceParentRef?: any;\n startClusteringAt?: number; // receives the zoom level where it starts clustering\n membership?: any;\n resetMapHome?: any;\n}\n\nconst WKBtoGeoJSON = (wkt) => {\n // let wkbBuffer = new Buffer(hex);\n let geometry = wkx.Geometry.parse(wkt);\n\n return geometry.toGeoJSON();\n};\n\nexport const zoomMapToGeofence = (map, isMapFullScreen, geofence) => {\n if (geofence.shape == 'C') {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n let feature = L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0]);\n map.flyToBounds(\n feature.toBounds(geofence.radius * 2.5 ?? 300),\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n : {\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n } else {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence?.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n map.flyToBounds(\n feature.getBounds(),\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n : {\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n};\n\nconst MapGeofences = (props: MapGeofencesOptions) => {\n const context = useLeafletContext();\n const map = useMapEvents({\n moveend: () => {\n displayGeofences();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showGeofences = false,\n useIsShownGeofence = false,\n geofences = [],\n selectedGeofenceIds,\n setMapPositionToGeofenceBounds = false,\n useSlidingpanelGeofenceInformation = true,\n clusterMarkers = false,\n usePopovers,\n isMapFullScreen = false,\n initialShowSlidingPanelGeofenceInformationOpen = false,\n initialGeofenceInformationOpenId,\n editingGeofenceParent,\n setEditingGeofenceParent,\n editingGeofenceParentRef,\n startClusteringAt = undefined,\n resetMapHome\n } = props;\n const store = useSelector((state) => state);\n const dispatch = useDispatch();\n const [showGeofenceInformationSlidepanel, setShowGeofenceInformationSlidepanel] = useState(false);\n const [initialGeofenceId, setInitialGeofenceId] = useState();\n const [selectedGeofence, setSelectedGeofence] = useState({});\n const { isEditing, isAdding, mainGeofence } = useSelector((state) => ({\n isEditing: geofenceSelectors.isEditingGeofence(state),\n isAdding: geofenceSelectors.isAddingGeofence(state),\n mainGeofence: geofenceSelectors.getGeofence(\n state,\n editingGeofenceParentRef?.current?.parentGeofenceId\n )\n }));\n\n useEffect(() => {\n if (mainGeofence?.geofenceId) {\n zoomMapToGeofence(map, isMapFullScreen, mainGeofence);\n dispatch(geofenceActions.showGeofenceInMap(mainGeofence.geofenceId));\n return () => {\n dispatch(geofenceActions.hideGeofenceInMap(mainGeofence.geofenceId));\n };\n }\n }, [mainGeofence?.geofenceId]);\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n geofences: selectedGeofence?.geofenceId != null\n });\n }\n }, [selectedGeofence]);\n\n useEffect(() => {\n if (!isEditing && selectedGeofence.geofenceId) {\n setSelectedGeofence(geofenceSelectors.getGeofence(store, selectedGeofence.geofenceId));\n setShowGeofenceInformationSlidepanel(true);\n }\n }, [isEditing]);\n\n useEffect(() => {\n if (setMapPositionToGeofenceBounds && map && geofences.length > 0) {\n if (geofences.length == 1) {\n zoomMapToGeofence(map, isMapFullScreen, geofences[0]);\n } else {\n var bounds = [];\n geofences.map((geofence) => {\n let geofenceGeoJSON;\n\n geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (geofence.shape == 'C') {\n bounds = [\n ...bounds,\n L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0])\n ];\n } else if (geofence.shape == 'R') {\n bounds = [\n ...bounds,\n ...geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]]))\n ];\n } else if (geofence.shape == 'P') {\n bounds = [\n ...bounds,\n ...(geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => L.latLng([coords[1], coords[0]]))\n : geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]])))\n ];\n } else if (geofence.shape == 'U') {\n bounds = [\n ...bounds,\n _.flatten(\n geofenceGeoJSON.coordinates.map((coordinate) =>\n coordinate.map((coords) =>\n coords[1] && coords[0] ? L.latLng([coords[1], coords[0]]) : null\n )\n )\n )\n ];\n }\n });\n map.fitBounds(\n L.latLngBounds(bounds.filter((bound) => bound != null && bound instanceof L.LatLng))\n );\n }\n }\n }, [geofences.length, setMapPositionToGeofenceBounds]);\n\n //Open and select geofence if params are set\n useEffect(() => {\n if (initialShowSlidingPanelGeofenceInformationOpen && useSlidingpanelGeofenceInformation) {\n if (initialGeofenceInformationOpenId) {\n const initialGeofenceInformation = geofenceSelectors.getGeofence(\n store,\n initialGeofenceInformationOpenId\n );\n\n if (\n initialGeofenceId !== initialGeofenceInformationOpenId &&\n initialGeofenceInformation.shape\n ) {\n setInitialGeofenceId(initialGeofenceInformation.geofenceId);\n setSelectedGeofence(initialGeofenceInformation);\n zoomMapToGeofence(map, isMapFullScreen, initialGeofenceInformation);\n }\n setShowGeofenceInformationSlidepanel(true);\n }\n } else {\n setInitialGeofenceId(undefined);\n setSelectedGeofence({});\n setShowGeofenceInformationSlidepanel(false);\n }\n }, [initialGeofenceInformationOpenId]);\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n // Check if you want to cluster markers\n let WrapperMarkerClusterGroup = Fragment;\n const wrapperProps = {};\n if (clusterMarkers) {\n WrapperMarkerClusterGroup = MarkerClusterGroup;\n wrapperProps['disableClusteringAtZoom'] = startClusteringAt;\n }\n\n const [geofencesBounds, setGeofencesBounds] = useState([]);\n const displayGeofences = () => {\n setGeofencesBounds(\n geofences.filter((geofence) => {\n if (!geofence.geofenceWktString) return false;\n let geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n return map\n ? map.getBounds().contains(feature.getBounds()) ||\n map.getBounds().overlaps(feature.getBounds())\n : true;\n })\n );\n };\n useDeepCompareEffect(() => {\n displayGeofences();\n }, [showGeofences, isEditing, isAdding, geofences]);\n\n const onClickGeofence = (e, geofence) => {\n if (editingGeofenceParentRef?.current) {\n dispatch(geofenceActions.showGeofenceInMap(editingGeofenceParentRef?.current.geofenceId));\n if (setEditingGeofenceParent) setEditingGeofenceParent(undefined);\n }\n\n setSelectedGeofence({ ...geofence, layer: e.target });\n if (useSlidingpanelGeofenceInformation) {\n setShowGeofenceInformationSlidepanel(true);\n }\n zoomMapToGeofence(map, isMapFullScreen, geofence);\n };\n\n return (\n <>\n {(showGeofences || useIsShownGeofence) && (\n \n {geofencesBounds.map((geofence) => {\n const geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (\n geofenceGeoJSON.type == 'MultiPolygon' ||\n geofenceGeoJSON.type == 'GeometryCollection'\n ) {\n console.log('geofence = ', geofence.geofenceName);\n }\n return (\n ((showGeofences && !useIsShownGeofence) ||\n (useIsShownGeofence && geofence.isShownInMap)) && (\n
\n {geofence.shape == 'C' && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n center={L.latLng(\n geofenceGeoJSON.coordinates[1],\n geofenceGeoJSON.coordinates[0]\n )}\n radius={geofence.radius}\n pathOptions={{\n color:\n selectedGeofenceIds?.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'rgba(128, 128, 128, 0.6)'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'R' && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n bounds={geofenceGeoJSON.coordinates[0].map((coords) => [\n coords[1],\n coords[0]\n ])}\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n ['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n data={geofenceGeoJSON}\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n !['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n positions={\n geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => [coords[1], coords[0]])\n : geofenceGeoJSON.coordinates[0].map((coords) => [\n coords[1],\n coords[0]\n ])\n }\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'U' && (\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n // pmIgnore={true}\n style={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color\n }}\n data={geofenceGeoJSON}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n )}\n
\n )\n );\n })}\n
\n )}\n\n {\n setShowGeofenceInformationSlidepanel(false);\n setSelectedGeofence({});\n if (\n initialGeofenceInformationOpenId &&\n initialShowSlidingPanelGeofenceInformationOpen &&\n resetMapHome\n ) {\n resetMapHome();\n }\n }}\n isSlidepanelOpen={showGeofenceInformationSlidepanel}\n title={selectedGeofence.geofenceName}\n geofence={selectedGeofence}\n editingGeofenceParent={editingGeofenceParent}\n editingGeofenceParentRef={editingGeofenceParentRef}\n setEditingGeofenceParent={setEditingGeofenceParent}\n />\n \n );\n};\n\nMapGeofences.defaultProps = {\n setMapPositionToGeofenceBounds: false,\n useSlidingpanelGeofenceInformation: true,\n geofences: [],\n showGeofences: false,\n clusterMarkers: false,\n isMapFullScreen: false,\n initialShowSlidingPanelGeofenceInformationOpen: false,\n usePopovers: true,\n initialGeofenceInformationOpenId: undefined,\n useIsShownGeofence: false\n};\n\nexport default MapGeofences;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect, useRef } from 'react';\nimport { Marker, Popup, Rectangle, useMap } from 'react-leaflet';\nimport { getRectBoundsFromLatLng } from '../../utils';\n\nexport interface MapLocationEditOptions {\n usePopovers?: boolean;\n location: any;\n onLocationDragend?: Function;\n showLocation: boolean;\n useRectangleBounds: boolean;\n isMapFullScreen?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* MapLocationEdit to edit a marker in map */\n/* -------------------------------------------------------------------------- */\nconst MapLocationEdit = (props: MapLocationEditOptions) => {\n const map = useMap();\n const {\n showLocation,\n location,\n useRectangleBounds = true,\n useSlidingpanelLocationInformation,\n onLocationDragend,\n usePopovers,\n isMapFullScreen = false\n } = props;\n\n const zoomMapToLocation = (latLng) => {\n const maxZoom = Math.max(15, map.getZoom());\n setTimeout(function () {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds(\n [ll],\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom,\n animate: 15 > map.getZoom()\n }\n : {\n maxZoom,\n animate: 15 > map.getZoom()\n }\n );\n }, 500);\n };\n\n useEffect(() => {\n try {\n markerRef.current.pm.enable({ preventMarkerRemoval: true });\n if (usePopovers) {\n markerRef.current.openPopup();\n }\n } catch {}\n if (location.latitude != null && location.longitude != null) {\n zoomMapToLocation(L.latLng(location.latitude, location.longitude));\n }\n }, [location]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const markerRef = useRef(null);\n const popupRef = useRef(null);\n\n return (\n <>\n {showLocation && location?.latitude != null && location?.longitude != null && (\n
\n
`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })}\n position={[location.latitude, location.longitude]}\n eventHandlers={{\n click: (e) => {\n zoomMapToLocation(e.latlng);\n },\n 'pm:dragend': (e) => {\n if (onLocationDragend) onLocationDragend(e.target.getLatLng());\n }\n }}\n >\n {usePopovers && (\n \n \n {location.locationName}\n \n \n )}\n \n\n {useRectangleBounds && (\n \n )}\n \n )}\n )\n \n );\n};\n\nMapLocationEdit.defaultProps = {\n location: {},\n showLocation: false,\n useRectangleBounds: true,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapLocationEdit;\n","// @ts-nocheck\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Marker, Rectangle, Tooltip, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Media } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport Icon from 'utility/icomoon';\nimport { showUnitByZoomAndRadius } from 'views/screens/Locations/utils';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationActions from '../../../../screens/Locations/actions';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport SlidingpanelLocationInformation from '../../../../screens/Locations/views/SlidingpanelLocationInformation';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport MarkerClusterGroup from '../MarkerClusterGroup';\n\nexport interface MapLocationsOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToLocationBounds?: boolean;\n useSlidingpanelLocationInformation?: boolean;\n usePopovers?: boolean;\n locations?: any[];\n selectedLocationIds?: any[];\n showLocations?: boolean;\n useRectangleBounds?: boolean;\n clusterMarkers?: boolean;\n hideMarkersByZoom?: boolean;\n isMapFullScreen?: boolean;\n useIsShownLocation?: boolean; //param only when you have a property in each location isShownInMap to show locations on map\n initialShowSlidingPanelLocationInformationOpen?: boolean;\n initialLocationInformationOpenId?: any;\n editingLocationParent?: any;\n setEditingLocationParent?: Function;\n editingLocationParentRef?: any;\n selectedLocationInTable?: any;\n startClusteringAt?: number;\n membership?: any;\n zoomLimitSet?: any;\n resetMapHome?: any;\n spiderfyProps?: any;\n}\n\nconst MapLocations = (props: MapLocationsOptions) => {\n const map = useMapEvents({\n moveend: () => {\n displayMarkers();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showLocations = false,\n useIsShownLocation = false,\n locations = [],\n selectedLocationIds,\n useRectangleBounds = true,\n setMapPositionToLocationBounds = false,\n useSlidingpanelLocationInformation = true,\n clusterMarkers = false,\n hideMarkersByZoom = true,\n usePopovers,\n isMapFullScreen = false,\n initialShowSlidingPanelLocationInformationOpen = false,\n initialLocationInformationOpenId,\n editingLocationParent,\n setEditingLocationParent,\n editingLocationParentRef,\n selectedLocationInTable,\n startClusteringAt = undefined,\n zoomLimitSet = false,\n resetMapHome,\n spiderfyProps\n } = props;\n const dispatch = useDispatch();\n const [showLocationInformationSlidepanel, setShowLocationInformationSlidepanel] = useState(false);\n const [initialLocationId, setInitialLocationId] = useState();\n const [selectedLocation, setSelectedLocation] = useState({});\n const [isStartClusteringAtSet, setIsStartClusteringAtSet] = useState(false);\n const { store, user, isEditing, isAdding, isFetching } = useSelector((state) => ({\n store: state,\n user: authSelectors.getAuthUser(state),\n isEditing: locationSelectors.isEditingLocation(state),\n isAdding: locationSelectors.isAddingLocation(state),\n isFetching: locationSelectors.isFetchingListLocations(state)\n }));\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n locations: selectedLocation?.locationId != null\n });\n }\n }, [selectedLocation]);\n\n useEffect(() => {\n if (!isEditing && selectedLocation.locationId) {\n setSelectedLocation(locationSelectors.getLocation(store, selectedLocation.locationId));\n setShowLocationInformationSlidepanel(true);\n }\n }, [isEditing]);\n\n const zoomMapToLocation = (latLng) => {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds([ll], {\n paddingBottomRight: [selectedLocationInTable ? 0 : 550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n });\n };\n\n useDeepCompareEffect(() => {\n if (setMapPositionToLocationBounds && map && locations.length > 0) {\n if (locations.length == 1) {\n if (locations[0].latitude != null && locations[0].longitude != null) {\n var ll = L.latLng(locations[0].latitude, locations[0].longitude);\n map.flyToBounds(ll.toBounds(800), {});\n }\n } else {\n let bounds = L.latLngBounds(locations.map((loc) => [loc.latitude, loc.longitude]));\n map.fitBounds(bounds);\n }\n }\n }, [\n locations?.map((location) => ({\n latitude: location?.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n setMapPositionToLocationBounds\n ]);\n\n useEffect(() => {\n if (selectedLocationInTable) {\n var ll = L.latLng(selectedLocationInTable.latitude, selectedLocationInTable.longitude);\n zoomMapToLocation(ll);\n }\n }, [selectedLocationInTable]);\n\n //Open and select location if params are set\n useEffect(() => {\n if (initialShowSlidingPanelLocationInformationOpen && useSlidingpanelLocationInformation) {\n if (initialLocationInformationOpenId) {\n const initialLocationInformation = locationSelectors.getLocation(\n store,\n initialLocationInformationOpenId\n );\n\n if (\n initialLocationId !== initialLocationInformationOpenId &&\n initialLocationInformation.latitude != null &&\n initialLocationInformation.longitude != null\n ) {\n setInitialLocationId(initialLocationInformation.locationId);\n setSelectedLocation(initialLocationInformation);\n var ll = L.latLng(\n initialLocationInformation.latitude,\n initialLocationInformation.longitude\n );\n zoomMapToLocation(ll);\n }\n setShowLocationInformationSlidepanel(true);\n }\n } else {\n setInitialLocationId(undefined);\n setSelectedLocation({});\n setShowLocationInformationSlidepanel(false);\n }\n }, [initialLocationInformationOpenId]);\n\n useEffect(() => {\n if (\n showLocationInformationSlidepanel &&\n selectedLocation.locationId &&\n !initialLocationInformationOpenId\n ) {\n dispatch(locationActions.startFetchingLocation(selectedLocation.locationId));\n }\n }, [showLocationInformationSlidepanel, selectedLocation, initialLocationInformationOpenId]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n // Check if you want to cluster markers\n let WrapperMarkerClusterGroup = Fragment;\n\n let icon: JSX.Element | undefined = undefined;\n if (clusterMarkers) {\n WrapperMarkerClusterGroup = MarkerClusterGroup;\n icon = ;\n }\n\n const [markersComponents, setMarkersComponents] = useState([]);\n\n const displayMarkers = () => {\n const newMarkers = locations\n .filter(\n (location) =>\n location &&\n location.latitude != null &&\n location.longitude != null &&\n (map ? map.getBounds().contains(L.latLng(location.latitude, location.longitude)) : true)\n )\n .filter(\n (location) =>\n location.latitude != null &&\n location.longitude != null &&\n ((showLocations && !useIsShownLocation) || (useIsShownLocation && location.isShownInMap))\n )\n .map((location) => (\n
\n 0 &&\n selectedLocationIds.includes(location.locationId)\n ? 850\n : 800\n }\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: `
${\n location.locationClassContent ??\n ``\n }`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })}\n position={[location.latitude, location.longitude]}\n eventHandlers={{\n click: (e) => {\n if (editingLocationParentRef?.current) {\n dispatch(\n locationActions.showLocationInMap(editingLocationParentRef?.current.locationId)\n );\n if (setEditingLocationParent) setEditingLocationParent(undefined);\n }\n setSelectedLocation(location);\n if (useSlidingpanelLocationInformation) {\n setShowLocationInformationSlidepanel(true);\n }\n zoomMapToLocation(e.latlng);\n }\n }}\n >\n {usePopovers && (\n \n \n {location.locationName}\n \n\n {location.fullImageUrl && (\n <>\n

\n \n \n )}\n \n )}\n \n\n {useRectangleBounds && (\n \n )}\n
\n ));\n if (zoomLimitSet && !isStartClusteringAtSet) {\n setMarkersComponents([]);\n setIsStartClusteringAtSet(true);\n } else if (spiderfyProps && spiderfyProps.spiderfyActivated) {\n setMarkersComponents([]);\n spiderfyProps.setSpiderfyActivated(false);\n } else {\n setMarkersComponents(newMarkers);\n }\n };\n\n useDeepCompareEffect(() => {\n if (showLocations || useIsShownLocation) {\n displayMarkers();\n }\n }, [\n showLocations,\n isEditing,\n isAdding,\n locations?.map((location) => ({\n latitude: location.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n startClusteringAt,\n isStartClusteringAtSet\n ]);\n\n return (\n <>\n {(showLocations || useIsShownLocation) && (\n \n {markersComponents.length > 0 ? markersComponents : null}\n \n )}\n\n {\n setShowLocationInformationSlidepanel(false);\n setSelectedLocation({});\n if (\n initialLocationInformationOpenId &&\n initialShowSlidingPanelLocationInformationOpen &&\n resetMapHome\n ) {\n resetMapHome();\n }\n }}\n isSlidepanelOpen={showLocationInformationSlidepanel}\n title={selectedLocation.locationName}\n location={selectedLocation}\n editingLocationParent={editingLocationParent}\n editingLocationParentRef={editingLocationParentRef}\n setEditingLocationParent={setEditingLocationParent}\n />\n \n );\n};\n\nMapLocations.defaultProps = {\n setMapPositionToLocationBounds: false,\n useSlidingpanelLocationInformation: true,\n locations: [],\n showLocations: false,\n useRectangleBounds: true,\n clusterMarkers: false,\n hideMarkersByZoom: true,\n isMapFullScreen: false,\n initialShowSlidingPanelLocationInformationOpen: false,\n usePopovers: true,\n initialLocationInformationOpenId: undefined,\n useIsShownLocation: false\n};\n\nexport default MapLocations;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect } from 'react';\nimport { useMap } from 'react-leaflet';\nimport { useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { getRouteBounds } from 'views/screens/Routes/utils';\nimport wkx from 'wkx';\n\nexport interface MapObjectsBoundsOptions {\n isSelectedSomething?: any;\n setMapPositionToGeofenceBounds?: boolean;\n setMapPositionToLocationBounds?: boolean;\n setMapPositionToUnitBounds?: boolean;\n setMapPositionToUnitPositionsBounds?: boolean;\n setMapPositionToRouteBounds?: boolean;\n geofences?: any[];\n locations?: any[];\n units?: any[];\n routes?: any[];\n rerenderMapObjectBounds?: date;\n paddingBottomRight?: any[];\n paddingTopLeft?: any[];\n}\n\nconst MapObjectsBounds = (props: MapObjectsBoundsOptions) => {\n const context = useLeafletContext();\n\n const {\n isSelectedSomething,\n setMapPositionToGeofenceBounds = false,\n setMapPositionToLocationBounds = false,\n setMapPositionToUnitBounds = false,\n setMapPositionToUnitPositionsBounds = false,\n setMapPositionToRouteBounds = false,\n geofences = [],\n locations = [],\n units = [],\n routes = [],\n rerenderMapObjectBounds,\n paddingBottomRight,\n paddingTopLeft\n } = props;\n const store = useSelector((state) => state);\n const map = useMap();\n\n const zoomMapToObjects = () => {\n var bounds = [];\n if (setMapPositionToLocationBounds) {\n locations\n .filter((location) => location?.latitude != null && location?.longitude != null)\n .map((location) => {\n bounds = [...bounds, L.latLng(location.latitude, location.longitude)];\n });\n }\n if (setMapPositionToGeofenceBounds) {\n geofences.map((geofence) => {\n let geofenceGeoJSON;\n geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (geofence.shape == 'C') {\n bounds = [\n ...bounds,\n L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0])\n ];\n } else if (geofence.shape == 'R') {\n bounds = [\n ...bounds,\n ...geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]]))\n ];\n } else if (geofence.shape == 'P') {\n bounds = [\n ...bounds,\n ...(geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => L.latLng([coords[1], coords[0]]))\n : geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]])))\n ];\n } else if (geofence.shape == 'U') {\n bounds = [\n ...bounds,\n _.flatten(\n geofenceGeoJSON.coordinates.map((coordinate) =>\n coordinate.map((coords) =>\n coords[1] && coords[0] ? L.latLng([coords[1], coords[0]]) : null\n )\n )\n )\n ];\n }\n });\n }\n if (setMapPositionToUnitBounds) {\n units\n .filter((unit) => unit?.latitude != null && unit?.longitude != null)\n .map((unit) => {\n bounds = [...bounds, L.latLng(unit.latitude, unit.longitude)];\n });\n }\n if (setMapPositionToUnitPositionsBounds) {\n units\n .filter((unit) => unit?.historicalPositions?.polyline)\n .map((unit) => {\n unit.historicalPositions.polyline.map((position) => {\n bounds = [...bounds, L.latLng(position.latitude, position.longitude)];\n });\n });\n }\n if (setMapPositionToRouteBounds) {\n routes.map((route) => {\n bounds = [...bounds, ...getRouteBounds(route)];\n });\n }\n if (\n (setMapPositionToGeofenceBounds ||\n setMapPositionToLocationBounds ||\n setMapPositionToUnitBounds ||\n setMapPositionToUnitPositionsBounds ||\n setMapPositionToRouteBounds) &&\n bounds.length > 0\n ) {\n map.flyToBounds(\n L.latLngBounds(bounds.filter((bound) => bound != null && bound instanceof L.LatLng)),\n {\n paddingBottomRight: paddingBottomRight ?? undefined,\n paddingTopLeft: paddingTopLeft ?? undefined,\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n };\n\n const WKBtoGeoJSON = (wkt) => {\n // let wkbBuffer = new Buffer(hex);\n let geometry = wkx.Geometry.parse(wkt);\n\n return geometry.toGeoJSON();\n };\n useDeepCompareEffect(() => {\n if (\n isSelectedSomething == null ||\n Object.values(isSelectedSomething).filter((s) => s).length === 0\n )\n zoomMapToObjects();\n }, [\n isSelectedSomething,\n geofences,\n locations,\n setMapPositionToGeofenceBounds,\n rerenderMapObjectBounds\n ]);\n return null;\n};\n\nMapObjectsBounds.defaultProps = {\n setMapPositionToGeofenceBounds: false,\n setMapPositionToLocationBounds: false,\n geofences: [],\n locations: []\n};\n\nexport default MapObjectsBounds;\n","'use strict';\n\n/**\n * Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm)\n *\n * Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js)\n * by [Mark McClure](http://facstaff.unca.edu/mcmcclur/)\n *\n * @module polyline\n */\n\nvar polyline = {};\n\nfunction encode(coordinate, factor) {\n coordinate = Math.round(coordinate * factor);\n coordinate <<= 1;\n if (coordinate < 0) {\n coordinate = ~coordinate;\n }\n var output = '';\n while (coordinate >= 0x20) {\n output += String.fromCharCode((0x20 | (coordinate & 0x1f)) + 63);\n coordinate >>= 5;\n }\n output += String.fromCharCode(coordinate + 63);\n return output;\n}\n\n/**\n * Decodes to a [latitude, longitude] coordinates array.\n *\n * This is adapted from the implementation in Project-OSRM.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Array}\n *\n * @see https://github.com/Project-OSRM/osrm-frontend/blob/master/WebContent/routing/OSRM.RoutingGeometry.js\n */\npolyline.decode = function (str, precision) {\n var index = 0,\n lat = 0,\n lng = 0,\n coordinates = [],\n shift = 0,\n result = 0,\n byte = null,\n latitude_change,\n longitude_change,\n factor = Math.pow(10, precision || 5);\n\n // Coordinates have variable length when encoded, so just keep\n // track of whether we've hit the end of the string. In each\n // loop iteration, a single coordinate is decoded.\n while (index < str.length) {\n // Reset shift, result, and byte\n byte = null;\n shift = 0;\n result = 0;\n\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n\n latitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n\n shift = result = 0;\n\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n\n longitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n\n lat += latitude_change;\n lng += longitude_change;\n\n coordinates.push([lat / factor, lng / factor]);\n }\n\n return coordinates;\n};\n\n/**\n * Encodes the given [latitude, longitude] coordinates array.\n *\n * @param {Array.>} coordinates\n * @param {Number} precision\n * @returns {String}\n */\npolyline.encode = function (coordinates, precision) {\n if (!coordinates.length) {\n return '';\n }\n\n var factor = Math.pow(10, precision || 5),\n output = encode(coordinates[0][0], factor) + encode(coordinates[0][1], factor);\n\n for (var i = 1; i < coordinates.length; i++) {\n var a = coordinates[i],\n b = coordinates[i - 1];\n output += encode(a[0] - b[0], factor);\n output += encode(a[1] - b[1], factor);\n }\n\n return output;\n};\n\nfunction flipped(coords) {\n var flipped = [];\n for (var i = 0; i < coords.length; i++) {\n flipped.push(coords[i].slice().reverse());\n }\n return flipped;\n}\n\n/**\n * Encodes a GeoJSON LineString feature/geometry.\n *\n * @param {Object} geojson\n * @param {Number} precision\n * @returns {String}\n */\npolyline.fromGeoJSON = function (geojson, precision) {\n if (geojson && geojson.type === 'Feature') {\n geojson = geojson.geometry;\n }\n if (!geojson || geojson.type !== 'LineString') {\n throw new Error('Input must be a GeoJSON LineString');\n }\n return polyline.encode(flipped(geojson.coordinates), precision);\n};\n\n/**\n * Decodes to a GeoJSON LineString geometry.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Object}\n */\npolyline.toGeoJSON = function (str, precision) {\n var coords = polyline.decode(str, precision);\n return {\n type: 'LineString',\n coordinates: flipped(coords)\n };\n};\n\nexport default polyline;\n","import polyline from './poliyline';\n\nL.Routing = L.Routing || {};\nL.Routing.Google = L.Class.extend({\n options: {},\n initialize: function (options) {\n this.options = L.extend(this.options, {\n travelMode: google.maps.TravelMode.DRIVING,\n unitSystem: google.maps.UnitSystem.METRIC,\n provideRouteAlternatives: true\n });\n this.directionsService = new google.maps.DirectionsService();\n L.Util.setOptions(this, options);\n },\n _flatten: function (arrs) {\n var arr = [],\n i;\n for (i = 0; i < arrs.length; i++) arr = arr.concat(arrs[i]);\n return arr;\n },\n _decodePolyline: function (geometry) {\n var coords = polyline.decode(geometry, 5),\n latlngs = new Array(coords.length),\n i;\n for (i = 0; i < coords.length; i++) {\n latlngs[i] = new L.LatLng(coords[i][0], coords[i][1]);\n }\n\n return latlngs;\n },\n _maneuverToInstructionType: function (maneuver) {\n switch (maneuver) {\n case 'turn-right':\n return 'Right';\n case 'turn-slight-right':\n case 'ramp-right':\n case 'fork-right':\n return 'SlightRight';\n case 'turn-sharp-right':\n return 'SharpRight';\n case 'turn-left':\n return 'Left';\n case 'turn-slight-left':\n case 'ramp-left':\n case 'fork-left':\n return 'SlightLeft';\n case 'turn-sharp-left':\n return 'SharpLeft';\n case 'uturn-right':\n case 'uturn-left':\n return 'TurnAround';\n case 'roundabout-left':\n case 'roundabout-right':\n return 'Roundabout';\n default:\n return 'Straight';\n }\n },\n route: function (waypoints, callback, context, options) {\n var that = this;\n var directions = L.extend({}, this.options);\n if (options.geometryOnly) {\n directions.provideRouteAlternatives = false;\n }\n directions.origin = waypoints[0].latLng.lat + ',' + waypoints[0].latLng.lng;\n directions.destination =\n waypoints[waypoints.length - 1].latLng.lat + ',' + waypoints[waypoints.length - 1].latLng.lng;\n directions.waypoints = waypoints.slice(1, waypoints.length - 1).map(function (waypoint) {\n return {\n location: waypoint.latLng.lat + ',' + waypoint.latLng.lng,\n stopover: false\n };\n });\n\n this.directionsService.route(directions, function (result, status) {\n if (status == google.maps.DirectionsStatus.OK) {\n var r = result.routes.map(function (route) {\n var iroute = {},\n i,\n j,\n step;\n iroute.name = route.summary;\n iroute.summary = {\n totalDistance: that\n ._flatten(\n route.legs.map(function (leg) {\n return leg.steps.map(function (step) {\n return step.distance.value;\n });\n })\n )\n .reduce(function (previousValue, currentValue) {\n return previousValue + currentValue;\n }),\n totalTime: that\n ._flatten(\n route.legs.map(function (leg) {\n return leg.steps.map(function (step) {\n return step.duration.value;\n });\n })\n )\n .reduce(function (previousValue, currentValue) {\n return previousValue + currentValue;\n })\n };\n\n iroute.coordinates = [];\n var indices = [],\n indicesSecondary = [];\n\n var waypointIndices = [0];\n var nWaypoint = 1;\n\n for (i = 0; i < route.legs.length; i++) {\n indicesSecondary = [];\n var stepsPoints = [];\n\n for (j = 0; j < route.legs[i].steps.length; j++) {\n step = route.legs[i].steps[j];\n var points = that._decodePolyline(step.polyline.points);\n stepsPoints[j] = points.length;\n indicesSecondary.push(iroute.coordinates.length);\n iroute.coordinates = iroute.coordinates.concat(points);\n }\n indices.push(indicesSecondary);\n\n for (var j = 0; j < route.legs[i].via_waypoints.length; j++) {\n var si = route.legs[i].via_waypoint[j].step_index;\n var sp = route.legs[i].via_waypoint[j].step_interpolation;\n\n waypointIndices[nWaypoint] = indicesSecondary[si] + Math.floor(stepsPoints[si] * sp);\n nWaypoint++;\n }\n }\n\n iroute.inputWaypoints = waypoints || [];\n iroute.waypoints = iroute.actualWaypoints = waypoints;\n\n waypointIndices[nWaypoint] = iroute.coordinates.length - 1;\n iroute.waypointIndices = waypointIndices;\n\n if (!options.geometryOnly) {\n iroute.instructions = [];\n for (i = 0; i < route.legs.length; i++)\n for (j = 0; j < route.legs[i].steps.length; j++) {\n step = route.legs[i].steps[j];\n iroute.instructions.push({\n type: that._maneuverToInstructionType(step.maneuver),\n text: step.instructions.replace(/<(?:.|\\n)*?>/gm, ''),\n distance: step.distance.value,\n time: step.duration.value,\n index: indices[i][j],\n exit: null //instr.exit_number\n });\n }\n }\n return iroute;\n });\n try {\n callback.call(context || callback, null, r);\n } catch {}\n } else {\n try {\n callback.call(context, {\n status: status,\n message: result\n });\n } catch {}\n }\n });\n return this;\n }\n});\n\nL.Routing.google = function (options) {\n return new L.Routing.Google(options);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\n// @ts-nocheck\nimport '@geoman-io/leaflet-geoman-free';\nimport 'leaflet-routing-machine';\nimport { useState } from 'react';\nimport { Edit2, MapPin, MoreVertical, Plus, Trash } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { Col, InputGroupText, ListGroupItem, Media, Row, Tooltip } from 'reactstrap';\nimport { Controller } from 'react-hook-form';\nimport Icon from 'utility/icomoon';\nimport LocationsDropdownInput from 'views/formComponents/LocationDropDown';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport '../../utils/lrm-google';\n\ninterface Props {\n control: any;\n formValues: any;\n checkpoints: any[];\n createdLocations: any[];\n addCheckpoint: any;\n editCheckpoint: any;\n editPath: any;\n deleteCheckpoint: any;\n addNewMarkerOnMap: any;\n addGoogleLocationToCheckpoint: any;\n addLocationToCheckpoint: any;\n deleteLocationOfCheckpoint: any;\n item: any;\n index: number;\n}\n\nconst RouteItem = (props: Props) => {\n const {\n control,\n formValues,\n checkpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n item,\n index\n } = props;\n const intl = useIntl();\n const [mouseEnter, setMouseEnter] = useState(false);\n const [tooltipAddOpen, setTooltipAddOpen] = useState(false);\n const [tooltipEditOpen, setTooltipEditOpen] = useState(false);\n const [tooltipEditOpen2, setTooltipEditOpen2] = useState(false);\n const [tooltipEditSegmentOpen, setTooltipEditSegmentOpen] = useState(false);\n const [tooltipDeleteOpen, setTooltipDeleteOpen] = useState(false);\n\n const locations = useSelector((state) => {\n const dropDownLocations = [...locationSelectors.getLocationsList(state), ...createdLocations];\n return (\n item.locationId && !dropDownLocations.map((loc) => loc.locationId).includes(item.locationId)\n ? [...dropDownLocations, item]\n : dropDownLocations\n ).map((loc) =>\n loc.locationId === item.locationId ? { ...loc, locationName: item.checkpointName } : loc\n );\n });\n\n return (\n setMouseEnter(true)}\n onMouseLeave={() => setMouseEnter(false)}\n >\n \n \n item.latitude != null &&\n item.longitude != null &&\n editCheckpoint(\n item.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n )\n }\n >\n {index === 0 ? (\n \n ) : index === checkpoints.length - 1 ? (\n \n ) : (\n \n )}\n {item.latitude != null && item.longitude != null && (\n setTooltipEditOpen2(!tooltipEditOpen2)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n index === 0\n ? 'routes.editOrigin'\n : index === checkpoints.length - 1\n ? 'routes.editDestination'\n : 'routes.editCheckpoint'\n })}\n \n )}\n \n \n (\n {\n value\n ? formValues['checkpointId-' + item.checkpointId.toString()] !== value &&\n (value?.googleLocation\n ? addGoogleLocationToCheckpoint(item.checkpointId, value)\n : addLocationToCheckpoint(item.checkpointId, value))\n : formValues['checkpointId-' + item.checkpointId.toString()] &&\n deleteLocationOfCheckpoint(item.checkpointId);\n }}\n isInModal={true}\n forceinitialvalue={item.locationId}\n options={locations.map((location) => ({\n value: location.locationId,\n label: location.locationName\n }))}\n appendcomponent={\n <>\n \n item.latitude != null && item.longitude != null\n ? editCheckpoint(\n item.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n )\n : addNewMarkerOnMap(index)\n }\n >\n {item.latitude != null && item.longitude != null ? (\n \n ) : (\n \n )}\n setTooltipEditOpen(!tooltipEditOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n item.latitude != null && item.longitude != null\n ? index === 0\n ? 'routes.editOrigin'\n : index === checkpoints.length - 1\n ? 'routes.editDestination'\n : 'routes.editCheckpoint'\n : 'routes.selectPointOnMap'\n })}\n \n \n {checkpoints.length > 2 && (\n deleteCheckpoint(item.checkpointId)}\n >\n \n {/* setTooltipDeleteOpen(!tooltipDeleteOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n index === 0\n ? 'routes.deleteOrigin'\n : index === checkpoints.length - 1\n ? 'routes.deleteDestination'\n : 'routes.deleteCheckpoint'\n })}\n */}\n \n )}\n \n }\n placeholder={intl.formatMessage({\n id: 'locations.locationPlaceholder'\n })}\n />\n )}\n />\n \n \n \n {index !== checkpoints.length - 1 && (\n <>\n editPath(index)}\n />\n setTooltipEditSegmentOpen(!tooltipEditSegmentOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id: 'routes.editSegment'\n })}\n \n \n )}\n
\n {mouseEnter && (\n <>\n addCheckpoint(index)} />\n setTooltipAddOpen(!tooltipAddOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id: 'routes.addNewCheckPoint'\n })}\n \n \n )}\n
\n
\n \n );\n};\n\nRouteItem.defaultProps = {\n inputs: [],\n initialTab: 0,\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default RouteItem;\n","import { useEffect, useState } from 'react';\nimport { Minus } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Media, Row } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport MapsBasic from '../..';\nimport * as routeCheckpointsActions from '../../../../screens/Routes/actions/routeCheckpoints';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\n\ninterface Props {\n routeId: any;\n route: any;\n title: any;\n confirmText: any;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n hasButtonSubmit: boolean;\n hasButtonCancel: boolean;\n isGeneratingRoute: boolean;\n alternateRoutes: any;\n setAlternateRoutes: any;\n membership: any;\n}\n\nconst SlidingPaneAddAlternateRoute = (props: Props) => {\n const {\n routeId,\n route,\n title,\n confirmText,\n isOpenSlidingPane,\n closeSlidingPane,\n hasButtonSubmit,\n hasButtonCancel,\n isGeneratingRoute,\n alternateRoutes,\n setAlternateRoutes,\n membership\n } = props;\n\n const intl = useIntl();\n const dispatch = useDispatch();\n const { control, handleSubmit, watch } = useForm();\n const formValues = watch();\n const [rerenderMap, setRerenderMap] = useState(new Date());\n const [showOriginalRoute, setShowOriginalRoute] = useState(true);\n const [showAlternateRoute, setShowAlternateRoute] = useState(true);\n\n const { routes, routesOnMap } = useSelector((state) => {\n const selectedRoute = routeSelectors.getRoute(state, formValues?.alternateRoute);\n return {\n routes: routeSelectors.getRoutesListByMembership(state, membership),\n routesOnMap: [\n !isGeneratingRoute && showOriginalRoute ? route : undefined,\n selectedRoute && showAlternateRoute ? { ...selectedRoute, pathColor: 'darkRed' } : undefined\n ].filter((route) => route)\n };\n });\n useEffect(() => {\n if (formValues?.alternateRoute) {\n dispatch(routeCheckpointsActions.startFetchingRouteCheckpoints(formValues?.alternateRoute));\n }\n }, [formValues?.alternateRoute]);\n\n useDeepCompareEffect(() => {\n setRerenderMap(new Date());\n }, [routesOnMap]);\n\n return (\n closeSlidingPane()}\n >\n 0\n ? {\n showRoutes: true,\n isMapFullScreen: false,\n useSlidingPaneRouteInformation: false,\n routes: routesOnMap\n }\n : {}\n }\n mapObjectsBoundsOptions={{\n setMapPositionToRouteBounds: true,\n routes: routesOnMap,\n rerenderMapObjectBounds: rerenderMap\n }}\n >\n \n \n (\n \n routeId !== route.routeId &&\n !alternateRoutes.map((ar) => ar.routeId).includes(route.routeId) &&\n (!formValues?.membership?.organizationId ||\n formValues.membership.organizationId === route.organizationId)\n )\n .map((route) => ({\n id: route.routeId,\n value: route.routeId,\n label: route.routeName\n }))}\n label={intl.formatMessage({\n id: 'routes.alternateRoute'\n })}\n placeholder={intl.formatMessage({ id: 'routes.routePlaceholder' })}\n />\n )}\n />\n \n \n
\n \n \n \n \n {intl.formatMessage({ id: 'routes.originalRoute' })}\n setShowOriginalRoute(!showOriginalRoute)}\n id={'originalRouteEyeButton'}\n />\n \n \n \n \n \n {intl.formatMessage({ id: 'routes.alternateRoute' })}\n {formValues?.alternateRoute && (\n setShowAlternateRoute(!showAlternateRoute)}\n id={'alternateRouteEyeButton'}\n />\n )}\n \n \n \n \n \n {hasButtonSubmit && (\n {\n setAlternateRoutes([\n ...alternateRoutes,\n ...routes.filter((route) => route.routeId === values.alternateRoute)\n ]);\n closeSlidingPane();\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPane()}\n >\n \n \n )}\n \n \n \n );\n};\n\nSlidingPaneAddAlternateRoute.defaultProps = {\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default SlidingPaneAddAlternateRoute;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport { useState } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { ReactSortable } from 'react-sortablejs';\nimport { Button, Col, FormGroup, Label, Row, Spinner } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport AddButton from 'views/components/AddButton';\nimport DeleteButton from 'views/components/DeleteButton';\nimport Table from 'views/components/Table';\nimport TabsWrapper from 'views/components/TabsWrapper';\nimport Toolbar from 'views/components/Toolbar';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport WebtrackCustomInput from 'views/formComponents/WebtrackCustomInput';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\nimport RouteItem from '../RouteItem';\nimport SlidingPaneAddAlternateRoute from '../SlidingPaneAddAlternateRoute';\n\ninterface Props {\n routeId: any;\n width: any;\n title: any;\n subtitle: any;\n control: any;\n handleSubmit: any;\n formValues: any;\n errors: any;\n initialTab: number;\n confirmText: any;\n isOpenSlidingPane: any;\n closeSlidingPaneForm: any;\n inputs: any[];\n isLoading: boolean;\n hasButtonSubmit: boolean;\n hasButtonCancel: boolean;\n action: any;\n isGeneratingRoute: any;\n distanceRoute: any;\n paths: any[];\n checkpoints: any[];\n setCheckpoints: any;\n createdLocations: any[];\n addCheckpoint: any;\n editCheckpoint: any;\n editPath: any;\n deleteCheckpoint: any;\n addNewMarkerOnMap: any;\n addGoogleLocationToCheckpoint: any;\n addLocationToCheckpoint: any;\n deleteLocationOfCheckpoint: any;\n alternateRoutes: any;\n setAlternateRoutes: any;\n}\n\nconst columns = [\n {\n fieldName: 'routeId',\n headerText: 'common.id'\n },\n {\n fieldName: 'routeName',\n headerText: 'routes.name'\n },\n {\n fieldName: 'abbreviation',\n headerText: 'routes.abbreviation'\n },\n {\n fieldName: 'distanceFormat',\n headerText: 'routes.distance',\n metric: 'distance',\n type: 'number',\n formatColumn: 'N2'\n },\n {\n fieldName: 'sourceName',\n headerText: 'routes.origin'\n },\n {\n fieldName: 'targetName',\n headerText: 'routes.destination'\n },\n {\n fieldName: 'checkPoints',\n headerText: 'routes.checkpoints'\n }\n];\n\nconst SlidingPaneEditRoute = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n routeId,\n width,\n title,\n subtitle,\n confirmText,\n initialTab,\n isOpenSlidingPane,\n closeSlidingPaneForm,\n inputs,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n isGeneratingRoute,\n handleSubmit,\n control,\n formValues,\n errors,\n isLoading,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n alternateRoutes,\n setAlternateRoutes\n } = props;\n\n const intl = useIntl();\n const [selectedTab, setSelectedTab] = useState(initialTab);\n const [selected, changeSelected] = useState([]);\n const [isOpenSlidingPaneAddAlternateRoute, setSlidingPaneAddAlternateRoute] =\n useState(false);\n\n const { routes, authSystems } = useSelector((state) => ({\n routes: routeSelectors.getRoutesList(state),\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n useDeepCompareEffect(() => {\n const errorsKeys = Object.keys(errors);\n if (errorsKeys.length > 0) {\n if (\n selectedTab === 0 &&\n errorsKeys.filter((key) => ['abbreviation', 'routeName'].includes(key)).length === 0\n )\n setSelectedTab(1);\n else if (\n selectedTab === 1 &&\n errorsKeys.filter((key) => key.includes('checkpointId')).length === 0\n )\n setSelectedTab(0);\n else if (\n selectedTab === 2 &&\n errorsKeys.filter((key) => ['abbreviation', 'routeName'].includes(key)).length === 0\n )\n setSelectedTab(1);\n else if (\n selectedTab === 2 &&\n errorsKeys.filter((key) => key.includes('checkpointId')).length === 0\n )\n setSelectedTab(0);\n else setSelectedTab(0);\n }\n }, [Object.keys(errors)]);\n\n const closeSlidingPane = (isSaving) => {\n closeSlidingPaneForm(isSaving);\n };\n\n return (\n <>\n closeSlidingPane(false)}\n >\n {\n setSelectedTab(tabIndex);\n }}\n useCardContent={false}\n tabs={[\n {\n tabId: 0,\n title: 'routes.generalInformation'\n },\n {\n tabId: 1,\n icon: 'Route',\n title: 'routes.routeDesign'\n },\n {\n tabId: 2,\n icon: 'Shuffle',\n title: 'routes.alternateRoutes'\n }\n ]}\n tabsContent={[\n {\n tabId: 0,\n component: (\n \n {inputs.map((input, i) => (\n \n {input.subtitle && (\n
\n {input.subtitle.split('\\n').map((i, key) => {\n return key === 0 ? (\n {i}\n ) : (\n \n
\n {i}\n
\n );\n })}\n
\n )}\n \n \n ))}\n
\n )\n },\n {\n tabId: 1,\n component: (\n \n {isLoading ? (\n \n
\n
\n \n
\n
\n \n ) : (\n \n \n
\n \n \n
\n
\n \n )}\n \n \n {checkpoints.map((item, index) => (\n \n ))}\n \n \n
\n )\n },\n {\n tabId: 2,\n component: (\n <>\n setSlidingPaneAddAlternateRoute(true)}\n />,\n {\n setAlternateRoutes(\n alternateRoutes.filter((route) => route.routeId !== selected[0].routeId)\n );\n }}\n />\n ]}\n />\n \n \n )\n }\n ]}\n />\n \n \n {hasButtonSubmit && (\n {\n action(values);\n closeSlidingPane(true);\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPane(false)}\n >\n \n \n )}\n \n \n \n \n i === 0\n ? { ...chk, segmentPath: [] }\n : {\n ...chk,\n segmentPath: paths[i - 1]?.polyline?.getLatLngs()?.map((latlng) => ({\n latitude: latlng.lat,\n longitude: latlng.lng\n }))\n }\n )\n }}\n title={intl.formatMessage({ id: 'routes.alternateRoute' })}\n isGeneratingRoute={isGeneratingRoute}\n alternateRoutes={alternateRoutes}\n setAlternateRoutes={setAlternateRoutes}\n membership={formValues?.membership}\n isOpenSlidingPane={isOpenSlidingPaneAddAlternateRoute}\n closeSlidingPane={() => setSlidingPaneAddAlternateRoute(false)}\n confirmText={intl.formatMessage({ id: 'routes.addAlternateRoute' })}\n />\n \n );\n};\n\nSlidingPaneEditRoute.defaultProps = {\n inputs: [],\n initialTab: 0,\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default SlidingPaneEditRoute;\n","// @ts-nocheck\nimport '@geoman-io/leaflet-geoman-free';\nimport L, { polyline } from 'leaflet';\nimport 'leaflet-toolbar';\nimport 'leaflet.icon.glyph';\nimport React, { useEffect, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FormGroup, Label } from 'reactstrap';\nimport simplify from 'simplify-geometry';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n getIcon,\n getMarker,\n globalNotificationFrecs,\n routesCheckpointsIcons,\n routesEvents,\n startTimeWindow\n} from 'views/screens/Routes/utils';\nimport { geocodeByLatLng } from 'react-google-places-autocomplete';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport useGetAlternateRoutes from 'views/screens/Routes/hooks/useGetAlternateRoutes';\n\nexport interface MapRouteEditOptions {\n showRoute: boolean;\n route: any;\n routeCheckpoints: any;\n routePaths: any;\n setEditingRouteParent?: any;\n}\n\nconst getNullIfNaN = (data: unknown): null | number => {\n const converted = Number(data);\n\n return isNaN(converted) ? null : converted;\n};\n\nexport const useMapRouteEdit = (props: MapRouteEditOptions) => {\n const { route, routePaths, routeCheckpoints, setEditingRouteParent } = props;\n const { control, handleSubmit, watch, formState } = useForm();\n const intl = useIntl();\n const map = useMap();\n const dispatch = useDispatch();\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n //States to create new locations\n const isGeneratingRouteRef = React.useRef(false);\n const useCenterRoute = React.useRef(false);\n const [isStartingEdit, setIsStartingEdit] = useState(false);\n const [distanceRoute, setDistanceRoute] = useState({ distance: 0 });\n const counterGenerateRouteRef = React.useRef(0);\n const [checkpoints, setCheckpoints] = useState([]);\n const checkpointsRef = React.useRef(checkpoints);\n const [paths, setPaths] = useState(null);\n const pathsRef = React.useRef(paths);\n const [drawingRouteCheckpoint, setDrawingRouteCheckpoint] = useState(null);\n const drawingRouteCheckpointRef = React.useRef(drawingRouteCheckpoint);\n const [createdLocations, setCreatedLocations] = useState([]);\n const createdLocationsRef = React.useRef(createdLocations);\n const [isOpenSlidingPaneEditRoute, setOpenSlidingPaneEditRoute] = useState(false);\n const [widthSlidingPaneEditRoute, setWidthSlidingPaneEditRoute] = useState('50rem');\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const [slidingPaneEditRoutesProps, setSlidingPaneEditRouteProps] = useState({ inputs: [] });\n const [slidingPaneFormProps, setSlidingPaneFormProps] = useState({ inputs: [] });\n const slidingPaneFormPropsRef = React.useRef(slidingPaneFormProps);\n const [editingRoute, setEditingRoute] = useState(undefined);\n const editingRouteRef = React.useRef(editingRoute);\n const [copyPolylineLatLngs, setCopyPolylineLatLngs] = useState({});\n const copyPolylineLatLngsRef = React.useRef(copyPolylineLatLngs);\n const [alternateRoutes, setAlternateRoutes] = useState([]);\n const alternateRoutesRef = React.useRef(alternateRoutes);\n\n const formValues = watch();\n const { locations, parsers, authSystems } = useSelector((state) => ({\n locations: locationSelectors.getLocationsList(state),\n authSystems: authSelectors.getAuthSystems(state),\n parsers: authSelectors.getParsers(state)\n }));\n\n const { data, isFetching } = useGetAlternateRoutes(editingRoute?.routeId);\n\n useEffect(() => {\n if (!isFetching) setAlternateRoutes(data);\n }, [isFetching]);\n\n useEffect(() => {\n editingRouteRef.current = editingRoute;\n if (editingRoute != undefined) {\n editRoute();\n }\n }, [editingRoute]);\n\n //Se actualiza la distancia Format\n useEffect(() => {\n setDistanceRoute({\n ...distanceRoute,\n distanceFormat: parsers\n .convertMetersToAuthUserDistanceSystem(distanceRoute.distance)\n .toFixed(2)\n });\n }, [distanceRoute?.distance]);\n\n useEffect(() => {\n deleteObjectsOnMap();\n if (routePaths.length > 0) {\n setIsStartingEdit(true);\n const newLocations = routeCheckpoints\n .filter((checkpoint) => !checkpoint.locationId)\n .map((checkpoint) => ({\n locationId: uuidv4(),\n checkpointId: checkpoint.checkpointId,\n locationName: checkpoint.checkpointName,\n longitude: checkpoint.longitude,\n latitude: checkpoint.latitude,\n radius: checkpoint.radius\n }));\n setCreatedLocations(newLocations);\n setCheckpoints(\n routeCheckpoints.map((checkpoint) => {\n return checkpoint.locationId\n ? checkpoint\n : {\n ...checkpoint,\n locationId: newLocations.filter(\n (loc) => loc.checkpointId === checkpoint.checkpointId\n )[0].locationId\n };\n })\n );\n setPaths(\n routePaths.map((path, i) => {\n const polyline = path.polyline;\n polyline.addTo(map);\n polyline.on('click', (e) => {\n L.DomEvent.stopPropagation(e);\n editPath(i);\n });\n return {\n ...path,\n secondsSegmentStopTime:\n path?.segmentStopAuthorized && [false, 0].includes(path?.segmentWithoutStopTime)\n ? path?.segmentStopTime * 60\n : undefined,\n secondsSegmentTripMinTime: path?.segmentTripMinTime,\n secondsSegmentTripMaxTime: path?.segmentTripMaxTime,\n polyline\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance: route.distance });\n } else {\n setCreatedLocations([]);\n setCheckpoints(routeCheckpoints);\n setPaths(routePaths);\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n }\n setSlidingPaneEditRouteProps({ inputs: [] });\n setEditingRoute(route);\n }, [route]);\n\n useDeepCompareEffect(() => {\n if (!isGeneratingRouteRef.current) {\n const lastCheckpointsRef = checkpointsRef.current;\n let addedLocation = null;\n if (\n !(\n lastCheckpointsRef.length == checkpoints.length &&\n lastCheckpointsRef.every((element, index) => {\n //Si se agrego o cambio una referencia se guarda la informaccion del checkpoint\n if (\n !checkpoints\n .filter((chk) => chk.locationId)\n .map((chk) => chk.locationId)\n .includes(element.locationId)\n )\n addedLocation = [\n element.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n ];\n\n return (\n element.latitude === checkpoints[index].latitude &&\n element.longitude === checkpoints[index].longitude\n );\n })\n )\n ) {\n //Se eliminan los markers antiguos\n if (!isStartingEdit) deleteObjectsOnMap();\n //Se actualizan los markers\n updateMarkersOnMap();\n //Si se agrego o cambio una referencia se procede a editar el checkpoint\n if (addedLocation) editCheckpoint(...addedLocation);\n //Se actualizan los paths\n if (!isStartingEdit) updatePathsOnMap();\n else setIsStartingEdit(false);\n }\n }\n }, [checkpoints, isGeneratingRouteRef.current]);\n\n useEffect(() => {\n pathsRef.current = paths;\n //Se centra en el mapa\n if (!isOpenSlidingPaneForm) centerRoute();\n useCenterRoute.current = true;\n }, [paths]);\n\n useEffect(() => {\n slidingPaneFormPropsRef.current = slidingPaneFormProps;\n }, [slidingPaneFormProps]);\n\n useEffect(() => {\n copyPolylineLatLngsRef.current = copyPolylineLatLngs;\n }, [copyPolylineLatLngs]);\n\n useDeepCompareEffect(() => {\n createdLocationsRef.current = createdLocations;\n }, [createdLocations]);\n\n useEffect(() => {\n drawingRouteCheckpointRef.current = drawingRouteCheckpoint;\n }, [drawingRouteCheckpoint]);\n\n useEffect(() => {\n alternateRoutesRef.current = alternateRoutes;\n }, [alternateRoutes]);\n\n const refreshTooltips = (type) => {\n const customTranslation = {\n tooltips: {\n placeMarker: intl.formatMessage({\n id:\n type === 1\n ? 'routes.addingOrigin'\n : type === 3\n ? 'routes.addingDestination'\n : 'routes.addingCheckpoint'\n })\n }\n };\n map.pm.setLang('customTranslation', customTranslation, intl.locale);\n };\n\n useEffect(() => {\n map.on('pm:create', (e) => {\n if (e.shape == 'Marker' && drawingRouteCheckpointRef.current) {\n setWidthSlidingPaneEditRoute('50rem');\n const { marker } = e;\n const radius = 150;\n const { lat, lng } = marker.getLatLng();\n if (lat && lng) {\n geocodeByLatLng({ lat, lng })\n .then((results) => {\n const routePlace = results.filter((r) => r.types.includes('route'))[0];\n const location = {\n locationId: uuidv4(),\n locationName: routePlace\n ? routePlace.formatted_address\n : results[0]?.formatted_address,\n longitude: lng,\n latitude: lat,\n radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(150)\n };\n addCreatedLocationToCheckpoint(marker, location);\n })\n .catch(() => {\n const location = {\n locationId: uuidv4(),\n locationName: intl.formatMessage({ id: 'routes.newCheckPoint' }),\n longitude: lng,\n latitude: lat,\n radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(150)\n };\n addCreatedLocationToCheckpoint(marker, location);\n });\n }\n }\n });\n }, []);\n\n const deleteObjectsOnMap = () => {\n checkpointsRef.current\n .filter((checkpoint) => checkpoint.marker)\n .map((checkpoint) => {\n if (checkpoint.marker) map.removeLayer(checkpoint.marker);\n if (checkpoint.rectangle) map.removeLayer(checkpoint.rectangle);\n });\n if (paths?.length > 0)\n paths.map((path) => {\n if (path.polyline) map.removeLayer(path.polyline);\n });\n };\n\n const addNewMarkerOnMap = (index) => {\n setDrawingRouteCheckpoint(checkpoints[index]);\n setWidthSlidingPaneEditRoute('0rem');\n refreshTooltips(index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2);\n map.pm.enableDraw('Marker', {\n continueDrawing: false, //Disable After Create\n markerEditable: true,\n markerStyle: {\n icon: getIcon(\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index,\n checkpoints[index].iconId\n )\n }\n });\n };\n\n const updateMarkersOnMap = () => {\n checkpointsRef.current = checkpoints.map((checkpoint, i) => {\n if (checkpoint.latitude != null && checkpoint.longitude != null) {\n const marker = getMarker(\n i === 0 ? 1 : i === checkpoints.length - 1 ? 3 : 2,\n i,\n checkpoint.iconId === 0 ? undefined : checkpoint.iconId,\n L.latLng(checkpoint.latitude, checkpoint.longitude)\n );\n marker.addTo(map);\n marker.on('pm:dragend', (e) => {\n const { lat, lng } = e.target.getLatLng();\n useCenterRoute.current = false;\n setCheckpoints(\n checkpointsRef.current.map((chkpt) =>\n chkpt.checkpointId === checkpoint.checkpointId\n ? {\n ...chkpt,\n longitude: lng,\n latitude: lat\n }\n : chkpt\n )\n );\n });\n marker.on('click', (e) => {\n setTimeout(() => {\n if (!isGeneratingRouteRef.current)\n editCheckpoint(\n checkpoint.checkpointId,\n i === 0 ? 1 : i === checkpoints.length - 1 ? 3 : 2,\n i\n );\n }, 100);\n });\n marker.pm.enable({});\n\n const rectangle = L.rectangle(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, checkpoint.radius),\n { color: primary }\n );\n rectangle.addTo(map);\n\n return {\n ...checkpoint,\n //Se actualizan los markers\n marker,\n rectangle\n };\n } else return checkpoint;\n });\n\n //Se centra en el mapa\n centerRoute();\n\n if (checkpointsRef.current.filter((checkpoint) => checkpoint.marker).length > 1)\n setCheckpoints(checkpointsRef.current);\n };\n\n const updatePathsOnMap = () => {\n const checkpointsWithLatLng = checkpointsRef.current.filter((checkpoint) => checkpoint.marker);\n\n if (checkpointsWithLatLng.length > 1) {\n //Se crea el control de las rutas\n const control = L.Routing.control({\n waypoints: checkpointsWithLatLng.map((checkpoint) =>\n L.latLng(checkpoint.latitude, checkpoint.longitude)\n ),\n router:\n counterGenerateRouteRef.current >= 4\n ? L.Routing.google()\n : new L.Routing.OSRMv1({ serviceUrl: 'https://osrm.webtrack.online/route/v1' })\n });\n\n control.on('routingstart', () => {\n isGeneratingRouteRef.current = true;\n });\n\n control.on('routingerror', (error) => {\n if (error.error.status !== -3) {\n counterGenerateRouteRef.current = counterGenerateRouteRef.current + 1;\n updatePathsOnMap();\n }\n });\n\n control.on('routesfound', (waypoints) => {\n isGeneratingRouteRef.current = false;\n if (waypoints?.routes[0].coordinates) {\n const coordinates = waypoints?.routes[0].coordinates;\n const waypointIndices = waypoints?.routes[0].waypointIndices;\n const paths = waypointIndices\n .map((index, i) =>\n i !== waypointIndices.length - 1\n ? simplify(\n [\n [\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i].latitude,\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i].longitude\n ],\n ...coordinates\n .slice(index, waypointIndices[i + 1] + 1)\n .map((latLng) => [latLng.lat, latLng.lng]),\n [\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i + 1].latitude,\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i + 1].longitude\n ]\n ],\n 0.0005 //55.5m\n ).map((point) => L.latLng(point[0], point[1]))\n : undefined\n )\n .filter((path) => path);\n\n //Se actualizan los paths\n var distance = 0;\n setPaths(\n paths.map((path, i) => {\n const polyline = L.polyline(path, { color: 'blue' });\n polyline.addTo(map);\n polyline.on('click', (e) => {\n L.DomEvent.stopPropagation(e);\n editPath(i);\n });\n const segmentDistance = polyline\n .getLatLngs()\n .map((point, j) =>\n j === 0 ? 0 : map.distance(polyline.getLatLngs()[j - 1], point)\n )\n .reduce((acc, distance) => acc + distance, 0);\n distance = distance + segmentDistance;\n return {\n polyline,\n segmentDistance\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance });\n }\n counterGenerateRouteRef.current = 0;\n });\n\n //Se genera la ruta\n control.route();\n } else {\n setPaths([]);\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n }\n };\n\n const updateDistances = () => {\n if (pathsRef.current?.length > 0) {\n var distance = 0;\n setPaths(\n pathsRef.current.map((path) => {\n const segmentDistance = path.polyline\n .getLatLngs()\n .map((point, j) =>\n j === 0 ? 0 : map.distance(path.polyline.getLatLngs()[j - 1], point)\n )\n .reduce((acc, distance) => acc + distance, 0);\n distance = distance + segmentDistance;\n return {\n ...path,\n segmentDistance\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance });\n }\n };\n\n const centerRoute = () => {\n if (useCenterRoute.current && checkpointsRef.current.filter((chk) => chk.marker).length > 0) {\n var latlngPolylines = [];\n if (pathsRef.current?.length > 0)\n pathsRef.current.map((path) =>\n path.polyline.getLatLngs().map((latLng) => latlngPolylines.push([latLng.lat, latLng.lng]))\n );\n\n const bounds = [\n ...checkpointsRef.current\n .filter((chk) => chk.marker)\n .map((chk) => [chk.latitude, chk.longitude]),\n ...latlngPolylines\n ];\n\n map.flyToBounds(bounds, {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n animate: map.getBoundsZoom(bounds, undefined, [700, 70]) !== map.getZoom()\n });\n }\n };\n\n const editRoute = () => {\n setOpenSlidingPaneEditRoute(false);\n setOpenSlidingPaneForm(false);\n setSlidingPaneEditRouteProps({\n title:\n editingRouteRef.current?.routeId && editingRouteRef.current?.routeName\n ? editingRouteRef.current?.routeName\n : intl.formatMessage({ id: 'routes.new' }),\n inputs: [\n {\n type: 'text',\n name: 'routeName',\n required: true,\n initialValue: editingRouteRef.current?.routeName || undefined,\n label: intl.formatMessage({ id: 'routes.name' })\n },\n {\n type: 'customersDropdown',\n name: 'customerId',\n initialValue: editingRouteRef.current?.customerId || undefined,\n isClearable: true,\n customersFilters: {}\n },\n {\n type: 'duration',\n name: 'completionTime',\n initialValue: editingRouteRef.current?.completionTimeByUser || undefined,\n label: intl.formatMessage({ id: 'routes.completionTime' })\n },\n {\n type: 'select',\n name: 'startTimeWindow',\n required: true,\n initialValue: editingRouteRef.current?.startTimeWindow || '0',\n options: startTimeWindow.map((option) => ({\n ...option,\n label: option.label + intl.formatMessage({ id: 'routes.minutes' })\n })),\n label: intl.formatMessage({ id: 'routes.startTimeWindow' })\n },\n {\n type: 'number',\n name: 'speedLimitFormat',\n initialValue: editingRouteRef.current?.speedLimitFormat || undefined,\n min: 0,\n max: parsers.convertKilometersPerHourToAuthUserSpeedSystem(120),\n metric: 'speed',\n label: intl.formatMessage({ id: 'routes.speedLimit' })\n },\n {\n type: 'text',\n name: 'abbreviation',\n required: true,\n initialValue: editingRouteRef.current?.abbreviation || undefined,\n label: intl.formatMessage({ id: 'routes.abbreviation' })\n },\n {\n type: 'text',\n name: 'privateCode',\n initialValue: editingRouteRef.current?.privateCode || undefined,\n label: intl.formatMessage({ id: 'routes.privateCode' })\n },\n {\n type: 'membership',\n name: 'membership',\n options: {\n colSize: '12',\n useOperator: false,\n useUserOrganization: true,\n useUserDivision: true,\n useUserSubdivision: true,\n setUserOrganization: true,\n setUserDivision: true,\n setUserSubdivision: true,\n showAllDivision: true,\n showAllSubdivision: true\n },\n initialValue: {\n organizationId: editingRouteRef.current?.organizationId || undefined,\n divisionId: editingRouteRef.current?.divisionId || undefined,\n subdivisionId: editingRouteRef.current?.subdivisionId || undefined\n }\n },\n {\n type: 'contactsDropdown',\n defaultContacts: editingRouteRef.current?.globalNotificationEmails || undefined,\n name: 'globalNotificationEmails',\n label: intl.formatMessage({ id: 'routes.globalNotificationEmails' })\n },\n {\n type: 'select',\n name: 'globalNotificationFrec',\n initialValue: editingRouteRef.current?.globalNotificationFrec || undefined,\n options: [\n {\n value: '0',\n label: intl.formatMessage({ id: 'routes.inactive' }),\n label_intl: intl.formatMessage({ id: 'routes.inactive' })\n },\n ...globalNotificationFrecs.map((option) => ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n }))\n ],\n label: intl.formatMessage({ id: 'routes.globalNotificationFrec' }),\n isClearable: true\n },\n {\n type: 'contactsDropdown',\n defaultContacts: editingRouteRef.current?.notificationEmails || undefined,\n name: 'notificationEmails',\n initialFetch: false,\n label: intl.formatMessage({ id: 'routes.notificationEmails' })\n },\n {\n type: 'multiSelect',\n name: 'notificationEvents',\n initialValue: editingRouteRef.current?.notificationEvents || undefined,\n options: routesEvents.map((option) => ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n })),\n label: intl.formatMessage({ id: 'routes.notificationEvents' })\n }\n ],\n action: (values) => {\n const action = editingRouteRef.current.routeId ? 'startEditingRoute' : 'startAddingRoute';\n var distances = [];\n var index = -1;\n var lastPointLatLngs = null;\n var distance = 0;\n dispatch(\n routeActions[action]({\n route: {\n routeId: editingRouteRef.current.routeId || editingRouteRef.current.newRouteId,\n ...values,\n ...values.membership,\n speedLimit: parsers.convertAuthUserSpeedSystemToKilometersPerHour(\n values.speedLimitFormat\n ),\n globalNotificationFrec: values?.globalNotificationFrec || '0',\n completionTimeByUser: values?.completionTime?.totalSeconds || 0,\n path: pathsRef.current\n .map((path, i) => {\n var segmentDistance = 0;\n return path.polyline\n .getLatLngs()\n .map((point, j) => {\n const pointDistance = lastPointLatLngs\n ? map.distance(lastPointLatLngs, point)\n : 0;\n lastPointLatLngs = point;\n segmentDistance = j === 0 ? 0 : segmentDistance + pointDistance;\n distance = distance + pointDistance;\n index = index + 1;\n if (path.polyline.getLatLngs().length - 1 === j)\n distances.push(segmentDistance);\n return (\n index.toString() +\n ',' +\n (i + 1).toString() +\n ',' +\n point.lat.toString() +\n ',' +\n point.lng.toString() +\n ',' +\n distance\n );\n })\n .join(';');\n })\n .join(';'),\n distance: distances.reduce((acc, distance) => acc + distance, 0),\n alternateRoutes: alternateRoutesRef.current.map((ar) => ar.routeId).join(',')\n },\n checkpoints: checkpointsRef.current.map((checkpoint, i) => ({\n checkpointId: i,\n routeId: editingRouteRef.current.routeId || editingRouteRef.current.newRouteId,\n locationId: Number.isInteger(checkpoint.locationId) ? checkpoint.locationId : null,\n checkpointName: checkpoint.checkpointName,\n latitude: checkpoint.latitude,\n longitude: checkpoint.longitude,\n radius: checkpoint.radius,\n correlative: i,\n distance:\n i === 0 ? 0 : distances.slice(0, i).reduce((acc, distance) => acc + distance, 0),\n iconId: checkpoint.iconId,\n stopType: checkpoint.stopType,\n stopMinTime: checkpoint.stopMinTime ?? null,\n stopMaxTime: checkpoint.stopMaxTime ?? null,\n segmentDistance: i === 0 ? 0 : getNullIfNaN(distances[i - 1]),\n segmentSpeedLimit:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.segmentSpeedLimit),\n segmentStopAuthorized:\n i === 0 ? null : pathsRef.current[i - 1]?.segmentStopAuthorized,\n secondsSegmentStopTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentStopTime),\n secondsSegmentTripMinTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentTripMinTime),\n secondsSegmentTripMaxTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentTripMaxTime),\n notificationEmails: checkpoint.notificationEmails\n }))\n })\n );\n }\n });\n setOpenSlidingPaneEditRoute(true);\n };\n\n const addCheckpoint = (index) => {\n setCheckpoints([\n ...checkpoints.slice(0, index + 1),\n { checkpointId: uuidv4() },\n ...checkpoints.slice(index + 1)\n ]);\n };\n\n const editCheckpoint = (checkpointId, type, index) => {\n const checkpoint = checkpointsRef.current.filter(\n (checkpoint) => checkpoint.checkpointId === checkpointId\n )[0];\n if (!(checkpoint.latitude != null && checkpoint.longitude != null && checkpoint.marker))\n return null;\n map.flyToBounds([[checkpoint.latitude, checkpoint.longitude]], {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n });\n const inputCheckpoint =\n type === 2\n ? [\n {\n type: 'select',\n name: 'iconId',\n initialValue: checkpoint.iconId ?? 1,\n options: routesCheckpointsIcons.map((op) => ({\n ...op,\n label: intl.formatMessage({ id: op.label })\n })),\n label: intl.formatMessage({ id: 'routes.checkpointIcon' }),\n additionalonchangefunction: (value) => {\n if (!value && checkpoint.iconId)\n checkpoint.marker.setIcon(getIcon(type, index, checkpoint.iconId));\n else checkpoint.marker.setIcon(getIcon(type, index, value));\n }\n },\n {\n type: 'contactsDropdown',\n name: 'notificationEmails',\n initialValue: checkpoint.notificationEmails || undefined,\n label: intl.formatMessage({ id: 'routes.notify' })\n },\n {\n type: 'switch',\n name: 'stopType',\n initialValue: checkpoint.stopType || false,\n label: intl.formatMessage({ id: 'routes.stopType' }),\n additionalonchangefunction: (value) => {\n if (slidingPaneFormPropsRef?.current?.inputs)\n setSlidingPaneFormProps({\n ...slidingPaneFormPropsRef.current,\n inputs: value\n ? [\n ...slidingPaneFormPropsRef.current.inputs,\n {\n type: 'duration',\n name: 'stopMinTime',\n initialValue: checkpoint.stopMinTime || undefined,\n label: intl.formatMessage({ id: 'routes.stopMinTime' })\n },\n {\n type: 'duration',\n name: 'stopMaxTime',\n initialValue: checkpoint.stopMaxTime || undefined,\n label: intl.formatMessage({ id: 'routes.stopMaxTime' })\n }\n ]\n : slidingPaneFormPropsRef.current.inputs.slice(0, 5)\n });\n }\n }\n ]\n : [];\n\n setOpenSlidingPaneForm(false);\n setSlidingPaneFormProps({\n title:\n type === 1\n ? intl.formatMessage({ id: 'routes.editOrigin' })\n : type === 2\n ? intl.formatMessage({ id: 'routes.editCheckPoint' })\n : intl.formatMessage({ id: 'routes.editDestination' }),\n inputs: [\n {\n type: 'text',\n name: 'checkpointName',\n required: true,\n initialValue: checkpoint.checkpointName || undefined,\n label:\n type === 1\n ? intl.formatMessage({ id: 'routes.originName' })\n : type === 2\n ? intl.formatMessage({ id: 'routes.checkpointName' })\n : intl.formatMessage({ id: 'routes.destinationName' })\n },\n {\n type: 'number',\n name: 'radiusFormat',\n initialValue: checkpoint.radiusFormat || undefined,\n min: parsers.convertMetersToAuthUserDistance2System(10),\n max: parsers.convertMetersToAuthUserDistance2System(5000),\n metric: 'distance2',\n label: intl.formatMessage({ id: 'routes.radius' }),\n additionalonchangefunction: (value) =>\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(\n checkpoint.latitude,\n checkpoint.longitude,\n parsers.convertAuthUserDistance2SystemToMeters(value)\n )\n )\n },\n ...inputCheckpoint\n ],\n action: (values) => {\n const radius = parsers.convertAuthUserDistance2SystemToMeters(values.radiusFormat);\n checkpoint.marker.setIcon(getIcon(type, index, values.iconId));\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, radius)\n );\n checkpointsRef.current = checkpointsRef.current.map((chk) =>\n chk.checkpointId === checkpoint.checkpointId\n ? {\n ...chk,\n ...values,\n radius,\n stopMinTime: values.stopType ? values.stopMinTime?.totalSeconds : undefined,\n stopMaxTime: values.stopType ? values.stopMaxTime?.totalSeconds : undefined\n }\n : chk\n );\n setCheckpoints(checkpointsRef.current);\n },\n closeSlidingPaneForm: () => {\n centerRoute();\n checkpoint.marker.setIcon(getIcon(type, index, checkpoint.iconId));\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, checkpoint.radius)\n );\n setOpenSlidingPaneForm(false);\n }\n });\n setOpenSlidingPaneForm(true);\n };\n\n const deleteCheckpoint = (checkpointId) => {\n if (!formValues.checkpointId) {\n deleteObjectsOnMap();\n setCheckpoints(\n checkpoints.filter((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId && checkpoint.marker)\n setCreatedLocations(\n createdLocations.filter((loc) => loc.locationId !== checkpoint.locationId)\n );\n return checkpoint.checkpointId !== checkpointId;\n })\n );\n }\n };\n const editPath = (index) => {\n if (pathsRef.current) {\n const path = pathsRef.current[index];\n if (path) {\n //Si se estaba editando un tramo se resetea su informacion en el mapa\n if (copyPolylineLatLngsRef.current?.index != undefined) {\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.setLatLngs(\n copyPolylineLatLngsRef.current.latLngs\n );\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.pm.disable();\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.setStyle({\n color: 'blue'\n });\n }\n setCopyPolylineLatLngs({\n latLngs: pathsRef.current[index].polyline.getLatLngs(),\n index: index\n });\n const type = index === pathsRef.current.length - 1 ? 2 : 1;\n path.polyline.pm.enable({ draggable: true });\n path.polyline.setStyle({ color: 'red' });\n map.flyToBounds(path.polyline.getBounds(), {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n animate:\n map.getBoundsZoom(path.polyline.getBounds(), undefined, [700, 70]) !== map.getZoom()\n });\n setOpenSlidingPaneForm(false);\n setEditPathInputs(\n {\n ...path,\n segmentSpeedLimitFormat: parsers\n .convertKilometersPerHourToAuthUserSpeedSystem(path.segmentSpeedLimit)\n .toFixed(0),\n segmentDistanceFormat: parsers\n .convertMetersToAuthUserDistanceSystem(path.segmentDistance)\n .toFixed(2)\n },\n index,\n type\n );\n setOpenSlidingPaneForm(true);\n }\n }\n };\n\n const setEditPathInputs = (path, index, type) => {\n setSlidingPaneFormProps({\n title: `${intl.formatMessage({ id: 'routes.editSegment' })} (${\n checkpointsRef.current[index]?.checkpointName\n } - ${checkpointsRef.current[index + 1]?.checkpointName})`,\n inputs: [\n {\n type: 'component',\n component: (\n \n
\n \n \n
\n
\n )\n },\n {\n type: 'number',\n name: 'segmentSpeedLimitFormat',\n initialValue: path?.segmentSpeedLimitFormat || undefined,\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentSpeedLimitFormat: value }, index, type);\n },\n min: 0,\n max: parsers.convertKilometersPerHourToAuthUserSpeedSystem(120),\n metric: 'speed',\n label: intl.formatMessage({ id: 'routes.speedLimit' })\n },\n {\n type: 'duration',\n name: 'segmentTripMinTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentTripMinTime: value }, index, type);\n },\n initialValue: path?.segmentTripMinTime || undefined,\n label: intl.formatMessage({ id: 'routes.segmentTripMinTime' })\n },\n {\n type: 'duration',\n name: 'segmentTripMaxTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentTripMaxTime: value }, index, type);\n },\n initialValue: path?.segmentTripMaxTime || undefined,\n label: intl.formatMessage({ id: 'routes.segmentTripMaxTime' })\n },\n {\n type: 'switch',\n name: 'segmentStopAuthorized',\n initialValue:\n path?.segmentStopAuthorized != undefined ? path?.segmentStopAuthorized : true,\n label: intl.formatMessage({ id: 'routes.segmentStopAuthorized' }),\n additionalonchangefunction: (value) => {\n setEditPathInputs(\n {\n ...path,\n segmentStopAuthorized: value,\n segmentWithoutStopTime: undefined,\n segmentStopTime: undefined\n },\n index,\n type\n );\n }\n },\n path?.segmentStopAuthorized\n ? {\n type: 'switch',\n name: 'segmentWithoutStopTime',\n initialValue:\n path?.segmentWithoutStopTime != undefined ? path?.segmentWithoutStopTime : true,\n label: intl.formatMessage({ id: 'routes.segmentWithoutStopTime' }),\n additionalonchangefunction: (value) => {\n setEditPathInputs(\n { ...path, segmentWithoutStopTime: value, segmentStopTime: undefined },\n index,\n type\n );\n }\n }\n : undefined,\n path?.segmentStopAuthorized && [false, 0].includes(path?.segmentWithoutStopTime)\n ? {\n type: 'number',\n name: 'segmentStopTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentStopTime: value }, index, type);\n },\n initialValue: path?.segmentStopTime || undefined,\n appendcomponent: intl.formatMessage({ id: 'common.minutes' }),\n allowDecimals: true,\n label: intl.formatMessage({ id: 'routes.segmentStopTime' })\n }\n : undefined\n ],\n action: (values) => {\n updateDistances();\n setPaths(\n pathsRef.current.map((path, i) =>\n i === index\n ? {\n ...path,\n ...values,\n secondsSegmentStopTime:\n values?.segmentStopAuthorized &&\n [false, 0].includes(values?.segmentWithoutStopTime)\n ? values?.segmentStopTime * 60\n : undefined,\n segmentWithoutStopTime:\n values?.segmentStopTime > 0 ? values?.segmentWithoutStopTime : true,\n secondsSegmentTripMinTime: values?.segmentTripMinTime?.totalSeconds || undefined,\n secondsSegmentTripMaxTime: values?.segmentTripMaxTime?.totalSeconds || undefined,\n segmentSpeedLimit: parsers\n .convertAuthUserSpeedSystemToKilometersPerHour(values.segmentSpeedLimitFormat)\n .toFixed(0)\n }\n : path\n )\n );\n },\n onClose: () => {\n pathsRef.current[index].polyline.setLatLngs(copyPolylineLatLngsRef.current.latLngs);\n },\n closeSlidingPaneForm: () => {\n pathsRef.current[index].polyline.pm.disable();\n pathsRef.current[index].polyline.setStyle({ color: 'blue' });\n updateDistances();\n centerRoute();\n setOpenSlidingPaneForm(false);\n setCopyPolylineLatLngs({});\n }\n });\n };\n\n const addLocationToCheckpoint = (checkpointId, locationId) => {\n const location = locations.filter((location) => location.locationId === locationId)[0];\n if (location)\n setCheckpoints(\n checkpoints.map((checkpoint) =>\n checkpoint.checkpointId === checkpointId && checkpoint.locationId !== locationId\n ? {\n ...checkpoint,\n googleLocation: false,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n }\n : checkpoint\n )\n );\n };\n\n const addCreatedLocationToCheckpoint = (marker, location) => {\n setCreatedLocations([...createdLocationsRef.current, location]);\n setCheckpoints(\n checkpointsRef.current.map((checkpoint) =>\n checkpoint.checkpointId === drawingRouteCheckpointRef.current.checkpointId\n ? {\n ...checkpoint,\n googleLocation: false,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n }\n : checkpoint\n )\n );\n map.removeLayer(marker);\n setDrawingRouteCheckpoint(null);\n };\n\n const addGoogleLocationToCheckpoint = (checkpointId, location) => {\n if (location) {\n setCheckpoints(\n checkpoints.map((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId) {\n const newLocation = {\n ...checkpoint,\n googleLocation: location.googleLocation,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n };\n setCreatedLocations([\n ...createdLocations,\n { ...newLocation, locationName: location.locationName }\n ]);\n return newLocation;\n } else return checkpoint;\n })\n );\n }\n };\n\n const deleteLocationOfCheckpoint = (checkpointId) => {\n if (!formValues.checkpointId)\n setCheckpoints(\n checkpoints.map((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId) {\n setCreatedLocations(\n createdLocations.filter((loc) => loc.locationId !== checkpoint.locationId)\n );\n if (checkpoint.marker) map.removeLayer(checkpoint.marker);\n return {\n ...checkpoint,\n googleLocation: undefined,\n locationId: undefined,\n checkpointName: undefined,\n marker: undefined,\n longitude: undefined,\n latitude: undefined,\n radius: undefined\n };\n } else return checkpoint;\n })\n );\n };\n\n return {\n formValues,\n control,\n handleSubmit,\n isGeneratingRouteRef,\n isOpenSlidingPaneEditRoute,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n editingRouteRef,\n deleteObjectsOnMap,\n setOpenSlidingPaneEditRoute,\n setEditingRoute,\n setCreatedLocations,\n setPaths,\n setSlidingPaneEditRouteProps,\n setDistanceRoute,\n slidingPaneEditRoutesProps,\n isOpenSlidingPaneForm,\n setOpenSlidingPaneForm,\n slidingPaneFormProps,\n widthSlidingPaneEditRoute,\n errors: formState.errors,\n isGeneratingRoute: isGeneratingRouteRef.current,\n alternateRoutes,\n setAlternateRoutes\n };\n};\n","import '@geoman-io/leaflet-geoman-free';\nimport 'leaflet-toolbar';\nimport 'leaflet.icon.glyph';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\nimport SlidingPaneForm from 'views/formComponents/SlidingPaneForm';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport SlidingPaneEditRoute from '../SlidingPaneEditRoute';\nimport { useMapRouteEdit } from './useMapRouteEdit';\n\nexport interface MapRouteEditOptions {\n showRoute: boolean;\n route: any;\n routeCheckpoints: any;\n routePaths: any;\n setEditingRouteParent?: any;\n}\n\nconst MapRouteEdit = (props: MapRouteEditOptions) => {\n const { setEditingRouteParent } = props;\n const {\n formValues,\n control,\n handleSubmit,\n isGeneratingRouteRef,\n isOpenSlidingPaneEditRoute,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n editingRouteRef,\n deleteObjectsOnMap,\n setOpenSlidingPaneEditRoute,\n setEditingRoute,\n setCreatedLocations,\n setPaths,\n setSlidingPaneEditRouteProps,\n setDistanceRoute,\n slidingPaneEditRoutesProps,\n isOpenSlidingPaneForm,\n setOpenSlidingPaneForm,\n slidingPaneFormProps,\n widthSlidingPaneEditRoute,\n errors,\n isGeneratingRoute,\n alternateRoutes,\n setAlternateRoutes\n } = useMapRouteEdit(props);\n const intl = useIntl();\n const dispatch = useDispatch();\n\n return (\n <>\n \n {\n if (!isSaving && editingRouteRef.current?.routeId)\n dispatch(routeActions.showRouteInMap(editingRouteRef.current.routeId));\n deleteObjectsOnMap();\n setOpenSlidingPaneEditRoute(false);\n setEditingRoute(undefined);\n setCreatedLocations([]);\n setCheckpoints([]);\n setPaths([]);\n setSlidingPaneEditRouteProps({ inputs: [] });\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n setTimeout(() => setEditingRouteParent(undefined), 1000);\n }}\n {...slidingPaneEditRoutesProps}\n />\n {\n setOpenSlidingPaneForm(false);\n }}\n isInMap={true}\n {...slidingPaneFormProps}\n />\n \n );\n};\n\nMapRouteEdit.defaultProps = {\n route: {},\n showRoute: false,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapRouteEdit;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n// @ts-nocheck\nimport L from 'leaflet';\nimport { useEffect } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { FormGroup, Label, Spinner } from 'reactstrap';\nimport EditButton from 'views/components/EditButton';\nimport TitleH4 from 'views/components/TitleH4';\nimport Toolbar from 'views/components/Toolbar';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as routeActions from '../../actions/routes';\nimport routePermissions from '../../permissions';\n\ninterface Props {\n title: any;\n subtitle: any;\n route: any;\n isLoading: boolean;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n createRoute: any;\n}\n\nconst SlidingPaneEditRoute = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const { title, subtitle, route, isLoading, isOpenSlidingPane, closeSlidingPane, createRoute } =\n props;\n\n const intl = useIntl();\n\n const { authSystems } = useSelector((state) => ({\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n return (\n closeSlidingPane()}\n >\n \n {isLoading ? (\n
\n \n
\n ) : (\n <>\n createRoute(route)}\n permissions={[routePermissions.editRoute]}\n />\n ]}\n />\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n \n )}\n \n );\n};\n\nSlidingPaneEditRoute.defaultProps = {};\n\nexport default SlidingPaneEditRoute;\n","// @ts-nocheck\nimport 'leaflet.icon.glyph';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Marker, Polyline, Popup, Rectangle, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getIcon, getRouteBounds } from 'views/screens/Routes/utils';\nimport * as routeCheckpointsActions from '../../../../screens/Routes/actions/routeCheckpoints';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\nimport SlidingPaneRouteInformation from '../../../../screens/Routes/views/SlidingPaneRouteInformation';\nimport { getRectBoundsFromLatLng } from '../../utils';\n\nexport interface MapRoutesOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToRouteBounds?: boolean;\n useSlidingPaneRouteInformation?: boolean;\n usePopovers?: boolean;\n routes?: any[];\n showRoutes?: boolean;\n isMapFullScreen?: boolean;\n useIsShownRoute?: boolean; //param only when you have a property in each route isShownInMap to show routes on map\n initialShowSlidingPanelRouteInformationOpen?: boolean;\n initialShowSlidingPanelRouteCreateOpen?: boolean;\n initialShowSlidingPanelRouteEditOpen?: boolean;\n initialRouteInformationOpenId?: any;\n editingRouteParent?: any;\n pathColor?: any;\n setEditingRouteParent?: Function;\n}\n\nconst MapRoutes = (props: MapRoutesOptions) => {\n const map = useMapEvents({\n moveend: () => {\n displayMarkers();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showRoutes = false,\n useIsShownRoute = false,\n routes = [],\n setMapPositionToRouteBounds = false,\n useSlidingPaneRouteInformation = true,\n usePopovers,\n pathColor = null,\n initialShowSlidingPanelRouteInformationOpen = false,\n initialShowSlidingPanelRouteCreateOpen = false,\n initialShowSlidingPanelRouteEditOpen = false,\n initialRouteInformationOpenId,\n editingRouteParent,\n setEditingRouteParent,\n isMapFullScreen = true\n } = props;\n const store = useSelector((state) => state);\n const dispatch = useDispatch();\n const [showRouteInformationSlidingPane, setShowRouteInformationSlidingPane] = useState(false);\n const [openEditSlidingPane, setOpenEditSlidingPane] = useState(false);\n const [initialRouteId, setInitialRouteId] = useState();\n const [routesBounds, setRoutesBounds] = useState([]);\n const [selectedRoute, setSelectedRoute] = useState({});\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n const { isEditing, isAdding, isFetchingCheckpoints } = useSelector((state) => ({\n isEditing: routeSelectors.isEditingRoute(state),\n isAdding: routeSelectors.isAddingRoute(state),\n isFetchingCheckpoints: routeSelectors.isFetchingListRouteCheckpoints(state)\n }));\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n routes: selectedRoute?.routeId != null\n });\n }\n }, [selectedRoute]);\n\n const selectRoute = (route) => {\n if (editingRouteParent?.route?.routeId) {\n dispatch(routeActions.showRouteInMap(editingRouteParent.route.routeId));\n if (setEditingRouteParent) setEditingRouteParent(undefined);\n }\n setSelectedRoute(route);\n if (useSlidingPaneRouteInformation) {\n setShowRouteInformationSlidingPane(true);\n }\n zoomMapToRoutes([route]);\n };\n\n const createRoute = (route) => {\n setShowRouteInformationSlidingPane(false);\n setEditingRouteParent({\n showRoute: true,\n route,\n routeCheckpoints: route.checkpoints,\n routePaths: route.checkpoints\n .filter((chk) => chk.segmentPath.length > 0)\n .map((chk) => {\n return {\n polyline: L.polyline(\n chk.segmentPath.map((path) => [path.latitude, path.longitude]),\n { color: pathColor ?? 'blue' }\n ),\n segmentSpeedLimit: chk.segmentSpeedLimit,\n segmentTripMinTime: chk.segmentTripMinTime,\n segmentTripMaxTime: chk.segmentTripMaxTime,\n segmentStopAuthorized: chk.segmentStopAuthorized,\n segmentStopTime: chk.segmentStopTime,\n segmentDistance: chk.segmentDistance,\n segmentWithoutStopTime: chk.segmentWithoutStopTime\n };\n })\n });\n };\n\n const zoomMapToRoutes = (routes) => {\n var bounds = [];\n routes.map((route) => (bounds = [...bounds, ...getRouteBounds(route)]));\n if (bounds.length > 0)\n map.flyToBounds(bounds, {\n paddingBottomRight: isMapFullScreen ? [700, 0] : undefined,\n paddingTopLeft: isMapFullScreen ? [0, 70] : undefined,\n animate: map.getBoundsZoom(bounds, undefined, [700, 70]) !== map.getZoom()\n });\n };\n\n const displayMarkers = () => {\n if (routes.filter((route) => route.checkpoints.length > 0).length > 0)\n setRoutesBounds(\n routes.filter((route) =>\n map\n ? getRouteBounds(route).length > 0 && map.getBounds().intersects(getRouteBounds(route))\n : true\n )\n );\n };\n\n useEffect(() => {\n if (!isEditing && selectedRoute.routeId) {\n dispatch(routeActions.showRouteInMap(selectedRoute.routeId));\n setSelectedRoute(routeSelectors.getRoute(store, selectedRoute.routeId));\n setShowRouteInformationSlidingPane(true);\n }\n }, [isEditing]);\n\n useEffect(() => {\n if (editingRouteParent?.route?.routeId) {\n dispatch(routeActions.hideRouteInMap(editingRouteParent.route.routeId));\n }\n }, [editingRouteParent]);\n\n useDeepCompareEffect(() => {\n if (setMapPositionToRouteBounds && map && routes.length > 0) zoomMapToRoutes();\n }, [routes, setMapPositionToRouteBounds]);\n\n useEffect(() => {\n if (initialShowSlidingPanelRouteCreateOpen) {\n setShowRouteInformationSlidingPane(false);\n setEditingRouteParent({\n showRoute: true,\n route: { newRouteId: uuidv4() },\n routeCheckpoints: [\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() }\n ],\n routePaths: []\n });\n }\n }, [initialShowSlidingPanelRouteCreateOpen]);\n\n //Open and get route checkpoints if params are set\n useEffect(() => {\n if (initialShowSlidingPanelRouteInformationOpen && useSlidingPaneRouteInformation) {\n if (initialRouteInformationOpenId) {\n dispatch(\n routeCheckpointsActions.startFetchingRouteCheckpoints(initialRouteInformationOpenId)\n );\n }\n }\n }, [initialRouteInformationOpenId]);\n\n useEffect(() => {\n if (initialShowSlidingPanelRouteInformationOpen && useSlidingPaneRouteInformation) {\n if (initialRouteInformationOpenId && !isFetchingCheckpoints) {\n const initialRouteInformation = routeSelectors.getRoute(\n store,\n initialRouteInformationOpenId\n );\n if (\n initialRouteId !== initialRouteInformationOpenId &&\n initialRouteInformation?.checkpoints?.length > 0\n ) {\n setInitialRouteId(initialRouteInformation.routeId);\n setSelectedRoute(initialRouteInformation);\n zoomMapToRoutes([initialRouteInformation]);\n setShowRouteInformationSlidingPane(true);\n if (initialShowSlidingPanelRouteEditOpen) {\n setOpenEditSlidingPane(true);\n }\n }\n }\n }\n }, [isFetchingCheckpoints]);\n\n useEffect(() => {\n if (openEditSlidingPane) {\n setOpenEditSlidingPane(false);\n createRoute(selectedRoute);\n }\n }, [selectedRoute]);\n\n useDeepCompareEffect(() => {\n displayMarkers();\n }, [showRoutes, isEditing, isAdding, routes]);\n\n return (\n <>\n {(showRoutes || useIsShownRoute) && (\n \n {routesBounds.map(\n (route) =>\n ((showRoutes && !useIsShownRoute) || (useIsShownRoute && route.isShownInMap)) && (\n
\n {route.checkpoints.map(\n (checkpoint, index) =>\n checkpoint.latitude != null &&\n checkpoint.longitude != null && (\n
\n selectRoute(route)\n }}\n >\n {usePopovers && (\n \n \n {checkpoint?.checkpointName ?? route.routeName}\n \n \n )}\n \n {checkpoint.radius && (\n \n )}\n {checkpoint.segmentPath.length > 0 && (\n [\n path.latitude,\n path.longitude\n ])}\n eventHandlers={{\n click: () => {\n setOpenEditSlidingPane(true);\n selectRoute(route);\n }\n }}\n >\n {usePopovers && (\n \n \n {route.routeName}\n \n \n )}\n \n )}\n
\n )\n )}\n
\n )\n )}\n
\n )}\n\n {\n setShowRouteInformationSlidingPane(false);\n setSelectedRoute({});\n }}\n isOpenSlidingPane={showRouteInformationSlidingPane}\n title={selectedRoute.routeName}\n route={selectedRoute}\n createRoute={createRoute}\n />\n \n );\n};\n\nMapRoutes.defaultProps = {\n setMapPositionToRouteBounds: false,\n useSlidingPaneRouteInformation: true,\n routes: [],\n showRoutes: false,\n initialShowSlidingPanelRouteInformationOpen: false,\n usePopovers: true,\n initialRouteInformationOpenId: undefined,\n useIsShownRoute: false\n};\n\nexport default MapRoutes;\n","// @ts-nocheck\nimport { useEffect, useState } from 'react';\nimport L from 'leaflet';\nimport { useSelector } from 'react-redux';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport 'leaflet.polylinemeasure';\nimport { useIntl } from 'react-intl';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { ArrowRight, X } from 'react-feather';\n\nexport interface RulerControlOptions {\n useControl: boolean;\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n listenMapControlChanges?: any[];\n}\n\n/* -------------------------------------------------------------------------- */\n/* RulerControl to Measure in map */\n/* -------------------------------------------------------------------------- */\nconst RulerControl = (props: RulerControlOptions) => {\n const { position = 'bottomleft', listenMapControlChanges } = props;\n //https://github.com/ppete2/Leaflet.PolylineMeasure\n const context = useLeafletContext();\n const intl = useIntl();\n useEffect(() => {\n const container = context.layerContainer || context.map;\n var pmOptions = {\n position: position,\n tooltipTextDraganddelete: intl.formatMessage({\n id: 'map.ruler.tooltipTextDraganddelete'\n }),\n tooltipTextResume: intl.formatMessage({ id: 'map.ruler.tooltipTextResume' }),\n tooltipTextAdd: intl.formatMessage({ id: 'map.ruler.tooltipTextAdd' }),\n tooltipTextFinish: intl.formatMessage({ id: 'map.ruler.tooltipTextFinish' }),\n tooltipTextDelete: intl.formatMessage({ id: 'map.ruler.tooltipTextDelete' }),\n tooltipTextMove: intl.formatMessage({ id: 'map.ruler.tooltipTextMove' }),\n\n measureControlClasses: [],\n measureControlLabel: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n ),\n clearControlLabel: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n ),\n measureControlTitleOn: intl.formatMessage({ id: 'map.ruler.measureControlTitleOn' }),\n measureControlTitleOff: intl.formatMessage({ id: 'map.ruler.measureControlTitleOff' }),\n showClearControl: true, // Show a control to clear all the measurements\n clearControlTitle: intl.formatMessage({ id: 'map.ruler.clearControlTitle' }),\n showUnitControl: true, // Show a control to change the units of measurements\n unitControlTitle: {\n // Title texts to show on the Unit Control button\n text: intl.formatMessage({ id: 'map.ruler.unitControlTitle.text' }),\n metres: intl.formatMessage({ id: 'map.ruler.unitControlTitle.metres' }),\n landmiles: intl.formatMessage({ id: 'map.ruler.unitControlTitle.landmiles' }),\n nauticalmiles: intl.formatMessage({ id: 'map.ruler.unitControlTitle.nauticalmiles' })\n }\n };\n const control = L.control.polylineMeasure(pmOptions);\n\n container.addControl(control);\n\n return () => {\n container.removeControl(control);\n };\n }, [...listenMapControlChanges]);\n\n return null;\n};\n\nRulerControl.defaultProps = {\n position: 'bottomleft',\n useControl: true,\n listenMapControlChanges: []\n};\n\nexport default RulerControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport { env } from 'env';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, Plus, X, Hexagon, Square, Circle } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\n// import * as geofenceClassesSelectors from '../../../../../redux/reducers/static-catalogs/geofence-classes';\nimport * as geofenceActions from '../../../../../views/screens/Geofences/actions';\nimport geofencePermissions from '../../../../../views/screens/Geofences/permissions';\nimport SlidingPaneForm from '../../../../formComponents/SlidingPaneForm';\nimport Icon from 'utility/icomoon';\nimport wkx from 'wkx';\nimport { getExtraGeofenceSaveValues } from 'views/screens/Geofences/utils';\nimport * as geofenceSelectors from 'views/screens/Geofences/reducers';\nimport { zoomMapToGeofence } from '../MapGeofences';\n\nconst style = getComputedStyle(document.body);\nconst primary = style.getPropertyValue('--primary').trim();\n\nexport interface GeofencesToolbarOptions {\n useToolbar: boolean;\n showGeofences?: bool;\n setShowGeofences?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarGeofencesControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarGeofencesControl = (props: GeofencesToolbarOptions) => {\n const { showGeofences, setShowGeofences, position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n const map = useMap();\n const dispatch = useDispatch();\n\n //States to create new geofences\n const [newGeofences, setNewGeofencesLayers] = useState([]);\n const newGeofencesLayersRef = React.useRef(newGeofences);\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const isOpenSlidingPaneFormRef = React.useRef(isOpenSlidingPaneForm);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n const slidingPanePropsRef = React.useRef(slidingPaneProps);\n const [editingGeofence, setEditingGeofence] = useState(undefined);\n const editingGeofenceRef = React.useRef(editingGeofence);\n const isSatMonitor = !!parseInt(env.REACT_APP_SAT_MONITOR ?? '0');\n\n const { store, mainGeofence } = useSelector((state) => ({\n store: state,\n mainGeofence: geofenceSelectors.getGeofence(state, editingGeofence?.geofence?.parentGeofenceId)\n }));\n\n useEffect(() => {\n if (mainGeofence?.geofenceId) {\n zoomMapToGeofence(map, true, mainGeofence);\n dispatch(geofenceActions.showGeofenceInMap(mainGeofence.geofenceId));\n return () => {\n dispatch(geofenceActions.hideGeofenceInMap(mainGeofence.geofenceId));\n };\n }\n }, [mainGeofence?.geofenceId]);\n\n useEffect(() => {\n editingGeofenceRef.current = editingGeofence;\n if (editingGeofence !== undefined) {\n editGeofence();\n }\n }, [editingGeofence]);\n\n useEffect(() => {\n isOpenSlidingPaneFormRef.current = isOpenSlidingPaneForm;\n }, [isOpenSlidingPaneForm]);\n\n useEffect(() => {\n slidingPanePropsRef.current = slidingPaneProps;\n }, [slidingPaneProps]);\n\n useEffect(() => {\n newGeofencesLayersRef.current = newGeofences;\n }, [newGeofences]);\n\n const editGeofence = () => {\n const layer = editingGeofenceRef.current.layer;\n const shape = layer.pm._shape ? layer.pm._shape.charAt(0).toUpperCase() : 'C';\n const initialRadius = shape == 'C' ? layer.getRadius() : undefined;\n newGeofencesLayersRef.current.forEach((m) => {\n try {\n if (layer.editing.options.geofenceId != m.editing.options.geofenceId) {\n m.pm.disable({});\n }\n } catch {}\n });\n\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({\n title: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceId\n ? editingGeofenceRef.current?.geofence.geofenceName\n : intl.formatMessage({ id: 'geofences.addGeofence' })\n : intl.formatMessage({ id: 'geofences.addGeofence' }),\n inputs: [\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.name' }),\n required: true,\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceName\n : undefined,\n name: 'geofenceName',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n geofenceName: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, geofenceName: value }\n });\n try {\n layer.bindPopup(value);\n layer.openPopup();\n } catch (error) {}\n },\n customValidation(values, props) {\n return values !== null && values !== undefined ? undefined : (\n \n );\n }\n },\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.geofenceAddress' }),\n required: false,\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.geofenceAddress\n : '',\n name: 'geofenceAddress',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n geofenceAddres: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, geofenceAddress: value }\n });\n }\n },\n {\n type: 'geofenceShapesDropdown',\n required: true,\n initialValue: shape ? shape : 'C',\n name: 'shape',\n customValidation(values, props) {\n return values !== null && values !== undefined ? undefined : (\n \n );\n },\n disabled: true,\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n shape: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, shape: value }\n });\n }\n },\n shape && shape == 'C'\n ? {\n type: 'number',\n allowUndefined: false,\n label: intl.formatMessage({ id: 'geofences.radius' }),\n required: true,\n min: 1,\n step: 1,\n allowDecimals: true,\n useNumberSpinner: true,\n appendcomponent: 'm',\n max: 100000,\n name: 'radius',\n initialValue:\n editingGeofenceRef.current?.geofence && editingGeofenceRef.current?.geofence.radius\n ? editingGeofenceRef.current?.geofence.radius\n : initialRadius,\n additionalonchangefunction: (value) => {\n if (value) {\n layer.editing.options = {\n ...layer.editing.options,\n radius: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, radius: value }\n });\n try {\n layer.setRadius(value);\n } catch {}\n }\n }\n }\n : {},\n {\n type: 'colorPicker',\n label: intl.formatMessage({ id: 'geofences.color' }),\n required: true,\n name: 'color',\n initialValue:\n editingGeofenceRef.current?.geofence && editingGeofenceRef.current?.geofence.color\n ? editingGeofenceRef.current?.geofence.color\n : undefined,\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n color: value.trim()\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, color: value.trim() }\n });\n\n try {\n layer.setStyle({\n color: value.trim()\n });\n } catch {}\n }\n },\n {\n type: 'text',\n label: intl.formatMessage({ id: 'geofences.privateCode' }),\n required: false,\n name: 'privateCode',\n initialValue: editingGeofenceRef.current?.geofence\n ? editingGeofenceRef.current?.geofence.privateCode\n : '',\n additionalonchangefunction: (value) => {\n layer.editing.options = {\n ...layer.editing.options,\n privateCode: value\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, privateCode: value }\n });\n }\n },\n {\n type: 'membership',\n name: 'membership',\n options: {\n colSize: '12',\n useOperator: false,\n useUserOrganization: true,\n showAllDivision: true,\n showAllSubdivision: true\n },\n initialValue: editingGeofenceRef.current?.geofence\n ? {\n operatorId: editingGeofenceRef.current.geofence.operatorId,\n organizationId: editingGeofenceRef.current.geofence.organizationId,\n divisionId: editingGeofenceRef.current.geofence.divisionId,\n subdivisionId: editingGeofenceRef.current.geofence.subdivisionId\n }\n : undefined,\n additionalonchangefunction: (values) => {\n layer.editing.options = {\n ...layer.editing.options,\n membership: values,\n ...values\n };\n setEditingGeofence({\n layer: layer,\n geofence: { ...editingGeofenceRef.current?.geofence, membership: values, ...values }\n });\n }\n },\n isSatMonitor\n ? {\n type: 'radioButtons',\n name: 'isParentGeofence',\n label: `${intl.formatMessage({ id: 'geofences.type' })}:`,\n initialValue:\n editingGeofenceRef.current?.geofence?.isParentGeofence === true\n ? '1'\n : editingGeofenceRef.current?.geofence?.isParentGeofence === false\n ? '0'\n : undefined,\n radioButtons: [\n {\n label: intl.formatMessage({ id: 'geofences.mainGeofence' }),\n value: '1'\n },\n {\n label: intl.formatMessage({ id: 'geofences.subGeofence' }),\n value: '0'\n }\n ],\n additionalonchangefunction: (value) => {\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n isParentGeofence: value == '1'\n }\n });\n }\n }\n : undefined,\n editingGeofenceRef.current?.geofence?.isParentGeofence === false && !!isSatMonitor\n ? {\n type: 'geofenceDropdown',\n name: 'parentGeofenceId',\n initialValue: editingGeofenceRef.current?.geofence?.parentGeofenceId,\n label: intl.formatMessage({ id: 'geofences.mainGeofence' }),\n placeholder: intl.formatMessage({ id: 'workplans.selectGeofence' }),\n isClearable: false,\n parentGeofences: true,\n required: true,\n subGeofenceWktString: editingGeofenceRef.current?.geofence?.geofenceWktString,\n additionalonchangefunction: (value) => {\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n parentGeofenceId: value\n }\n });\n }\n }\n : undefined,\n editingGeofenceRef.current?.geofence?.isParentGeofence === false && !!isSatMonitor\n ? {\n type: 'switch',\n name: 'isActivationGeofence',\n initialValue: editingGeofenceRef.current?.geofence?.isActivationGeofence,\n label: intl.formatMessage({ id: 'trackingUnits.sat.isActivation/DeactivationArea' })\n }\n : undefined\n ],\n action: (values) => {\n var geometry = wkx.Geometry.parseGeoJSON(layer.toGeoJSON().geometry);\n map.removeLayer(layer);\n\n const geofence = {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt()\n };\n const { vertexCount, longitude, longitude2, latitude, latitude2, vertexCsv, geofenceWKT } =\n getExtraGeofenceSaveValues(geofence);\n\n dispatch(\n geofenceActions.startAddingGeofence({\n ...editingGeofenceRef.current?.geofence,\n ...values,\n ...values.membership,\n isParentGeofence:\n values.isParentGeofence == '1'\n ? true\n : values.isParentGeofence == '0'\n ? false\n : undefined,\n parentGeofenceId: values.isParentGeofence == '0' ? values.parentGeofenceId : undefined,\n isActivationGeofence:\n values.isParentGeofence == '0' ? values.isActivationGeofence : undefined,\n geofenceWKT,\n vertexCount,\n latitude,\n latitude2,\n longitude,\n longitude2,\n vertexCsv,\n isShownInMap: true,\n geofenceId: uuidv4()\n })\n );\n setEditingGeofence(undefined);\n }\n });\n setOpenSlidingPaneForm(true);\n\n setTimeout(() => {\n try {\n layer.pm.enable({});\n } catch {}\n }, 100);\n setTimeout(() => {\n try {\n layer.bindPopup(\n layer.editing.options.geofenceName\n ? layer.editing.options.geofenceName\n : appIntl().formatMessage({ id: 'geofences.new' })\n );\n layer.openPopup();\n } catch {}\n }, 100);\n };\n\n useEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n /* -------------------------------------------------------------------------- */\n /* Geofence Creation Listener */\n /* -------------------------------------------------------------------------- */\n container.on('pm:create', function (e) {\n setEditingGeofence(undefined);\n if (\n (e.shape == 'Circle' || e.shape == 'Rectangle' || e.shape == 'Polygon') &&\n e.layer.editing?.options?.geofenceId == null\n ) {\n let layer = e.layer;\n layer.pm.enableLayerDrag();\n layer.pm.enable({ draggable: true });\n layer.on('click', (e) => {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n setEditingGeofence({\n layer: layer,\n geofence: layer.editing.options\n });\n });\n layer.on('pm:edit', (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n\n layer.editing.options = {\n ...layer.options,\n organizationId: undefined,\n divisionId: undefined,\n subdivisionId: undefined,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n };\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n }\n });\n });\n layer.on('pm:dragend', (e) => {\n layer.pm.enableLayerDrag();\n layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n\n layer.editing.options = {\n ...layer.editing.options,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n };\n setEditingGeofence({\n layer: layer,\n geofence: {\n ...editingGeofenceRef.current?.geofence,\n geofenceWktString: geometry.toWkt(),\n radius:\n editingGeofenceRef.current?.geofence?.shape == 'C'\n ? e.target.getRadius()\n : undefined\n }\n });\n });\n layer.on('dblclick', () => {\n layer.pm.remove();\n });\n\n let shape = e.shape.charAt(0).toUpperCase();\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n if (!layer.editing) layer.editing = {};\n layer.editing.options = {\n ...layer.options,\n geofenceId: uuidv4(),\n geofenceName: undefined,\n geofenceAddress: '',\n shape: shape,\n radius: shape == 'C' ? e.layer.getRadius() : undefined,\n geofenceWktString: geometry.toWkt(),\n operatorId: undefined,\n organizationId: undefined,\n divisionId: undefined,\n subdivisionId: undefined,\n privateCode: '',\n isConfirmed: false\n };\n setNewGeofencesLayers((prevlayers) => [...prevlayers, layer]);\n\n // // zoomMapToGeofence(layer.getLatLng());\n setEditingGeofence({\n layer: layer,\n geofence: layer.editing.options\n });\n }\n });\n\n /* -------------------------------------------------------------------------- */\n /* Actions of Toolbar */\n /* -------------------------------------------------------------------------- */\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var viewGeofences = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: showGeofences\n ? intl.formatMessage({ id: 'map.geofencesToolbar.tooltipHideGeofences' })\n : intl.formatMessage({ id: 'map.geofencesToolbar.tooltipShowGeofences' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>{showGeofences ? : }\n )\n }\n },\n addHooks: () => {\n if (!showGeofences) {\n dispatch(geofenceActions.showAllGeofencesInMap());\n } else {\n dispatch(geofenceActions.hideAllGeofencesInMap());\n }\n setShowGeofences(!showGeofences);\n setOpenSlidingPaneForm(false);\n newGeofencesLayersRef.current.forEach((m) => {\n try {\n m.pm.disableLayerDrag();\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }\n });\n\n var createNewCircleGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddCircle' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Circle', { pathOptions: { color: primary } });\n }\n });\n\n var createNewRectangleGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddRectangle' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Rectangle', { pathOptions: { color: primary } });\n }\n });\n\n var createNewPolygonGeofence = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipAddPolygon' }),\n html: ReactDOMServer.renderToStaticMarkup(<> {})\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Polygon', {\n pathOptions: { color: primary },\n removeLayerBelowMinVertexCount: false\n });\n }\n });\n\n var cancelGeofence = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n container.pm.disableDraw('layer');\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var geofencesOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.geofencesToolbar.tooltipGeofences' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [\n authSelectors.getAuthUserHasPermissionsEvery(store, [\n geofencePermissions.listGeofencesOnMap\n ])\n ? viewGeofences\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewCircleGeofence\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewRectangleGeofence\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [geofencePermissions.addGeofence])\n ? createNewPolygonGeofence\n : null,\n cancelGeofence\n ].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.GeofencesToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [geofencesOptions]\n }\n });\n\n var geofencesToolbar = new L.Toolbar2.GeofencesToolbar({ position: position });\n geofencesToolbar.addTo(container);\n\n return () => {\n geofencesToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return (\n <>\n {\n setOpenSlidingPaneForm(false);\n try {\n editingGeofenceRef.current.layer.pm.disable({});\n } catch {}\n newGeofencesLayersRef.current.forEach((m, i) => {\n try {\n m.pm.disableLayerDrag();\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }}\n onClickCancelButton={() => {\n map.removeLayer(editingGeofenceRef.current.layer);\n setEditingGeofence(undefined);\n }}\n isInMap={true}\n {...slidingPaneProps}\n />\n \n );\n};\n\nToolbarGeofencesControl.defaultProps = {\n position: 'topleft',\n showGeofences: false,\n setShowGeofence: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarGeofencesControl;\n","// @ts-nocheck\nimport { useEffect, useState } from 'react';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport { useMap } from 'react-leaflet';\n\nimport * as authActions from '../../../../../redux/actions/auth';\nimport { useDispatch } from 'react-redux';\nexport interface HomeToolbarOptions {\n useToolbar: boolean;\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n listenMapControlChanges?: any[];\n}\n\nimport ReactDOMServer from 'react-dom/server';\n\nimport { Home } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n/* -------------------------------------------------------------------------- */\n/* ToolbarHomeControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarHomeControl = (props: HomeToolbarOptions) => {\n const { position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const dispatch = useDispatch(); // to handle home region function\n const intl = useIntl();\n // Be aware of changes in map layer\n const map = useMap();\n var selectedLayer = 0;\n map.on('baselayerchange', function (e) {\n const name = e.name;\n let layer_id = 0;\n if (name == 'Open Street Map') layer_id = 0;\n if (name == 'MapQuest') layer_id = 2;\n if (name == 'Google Maps') layer_id = 3;\n if (name == 'Google Maps Road & Satellite') layer_id = 4;\n if (name == 'Bing Maps') layer_id = 5;\n if (name == 'Bing Satellite') layer_id = 7;\n if (name == 'Bing Hybrid') layer_id = 8;\n if (name == 'Here Maps') layer_id = 9;\n if (name == 'Here Maps Satellite') layer_id = 10;\n if (name == 'Google Maps Satellite') layer_id = 11;\n if (name == 'Google Maps Traffic') layer_id = 12;\n if (name == 'Google Maps Terrain') layer_id = 13;\n if (name == 'MapQuest Hybrid') layer_id = 14;\n if (name == 'MapQuest Satellite') layer_id = 15;\n if (name == 'MapQuest Dark') layer_id = 16;\n if (name == 'MapQuest Light') layer_id = 17;\n if (name == 'WebTrack') layer_id = 18;\n if (name == 'WebTrack Light') layer_id = 19;\n if (name == 'WebTrack Dark') layer_id = 20;\n selectedLayer = layer_id;\n });\n\n // homeFunction to update home region\n const homeFunction = async () => {\n var centerLatLng = map.getCenter().wrap();\n var config = {\n homeLatitude: centerLatLng.lat,\n homeLongitude: centerLatLng.lng,\n homeZoom: map.getZoom(),\n homeLayer: selectedLayer\n };\n dispatch(authActions.startUpdatingMapSettingsConfiguration(config));\n };\n\n //Add Toolbar to Map Container\n useDeepCompareEffect(() => {\n const container = context.layerContainer || context.map;\n const homeActionTooltip = () => {\n return intl.formatMessage({ id: 'map.homeToolbar.tooltipSetHomeRegion' });\n };\n var setHomeAction = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: homeActionTooltip(),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: homeFunction\n });\n\n new L.Toolbar2.Control({\n position: position,\n actions: [setHomeAction]\n }).addTo(container);\n }, [listenMapControlChanges]);\n\n return null;\n};\n\nToolbarHomeControl.defaultProps = {\n position: 'topleft',\n useToolbar: false,\n name: 'ToolbarHomeControl',\n listenMapControlChanges: []\n};\nexport default ToolbarHomeControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, MapPin, Plus, X } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { v4 as uuidv4 } from 'uuid';\nimport SlidingPaneEditLocation from 'views/screens/Locations/views/SlidingPaneEditLocation';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationClassesSelectors from '../../../../../redux/reducers/static-catalogs/location-classes';\nimport * as locationActions from '../../../../../views/screens/Locations/actions';\nimport locationPermissions from '../../../../../views/screens/Locations/permissions';\nimport SlidingPaneForm from '../../../../formComponents/SlidingPaneForm';\n\nexport interface LocationsToolbarOptions {\n useToolbar: boolean;\n showLocations?: bool;\n setShowLocations?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarLocationsControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarLocationsControl = (props: LocationsToolbarOptions) => {\n const { showLocations, setShowLocations, position = 'topleft', listenMapControlChanges } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n const { store, parsers } = useSelector((state) => ({\n store: state,\n parsers: authSelectors.getParsers(state)\n }));\n const map = useMap();\n const dispatch = useDispatch();\n\n //States to create new locations\n const [newMarkers, setNewMarkers] = useState([]);\n const newMarkersRef = React.useRef(newMarkers);\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const isOpenSlidingPaneFormRef = React.useRef(isOpenSlidingPaneForm);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n const slidingPanePropsRef = React.useRef(slidingPaneProps);\n const [editingLocation, setEditingLocation] = useState(undefined);\n const editingLocationRef = React.useRef(editingLocation);\n\n useEffect(() => {\n editingLocationRef.current = editingLocation;\n if (editingLocation !== undefined) {\n editLocation();\n }\n }, [editingLocation]);\n\n useEffect(() => {\n if (editingLocation?.location?.locationClassIconName) {\n editingLocationRef.current.marker._icon.innerHTML = `
\n `;\n }\n }, [editingLocation?.location?.locationClassIconName]);\n\n useEffect(() => {\n if (editingLocation?.location?.latitude && editingLocation?.location?.longitude) {\n var latLng = L.latLng(\n editingLocation?.location?.latitude,\n editingLocation?.location?.longitude\n );\n editingLocationRef.current.marker.setLatLng(latLng);\n zoomMapToLocation(latLng);\n }\n }, [editingLocation?.location?.latitude, editingLocation?.location?.longitude]);\n\n useEffect(() => {\n setTimeout(() => {\n try {\n editingLocationRef.current.marker.bindPopup(\n editingLocation?.location?.locationName\n ? editingLocation?.location?.locationName\n : appIntl().formatMessage({ id: 'locations.new' })\n );\n editingLocationRef.current.marker.openPopup();\n } catch {}\n }, 100);\n }, [editingLocation?.location?.locationName]);\n\n useEffect(() => {\n isOpenSlidingPaneFormRef.current = isOpenSlidingPaneForm;\n }, [isOpenSlidingPaneForm]);\n\n useEffect(() => {\n slidingPanePropsRef.current = slidingPaneProps;\n }, [slidingPaneProps]);\n\n useEffect(() => {\n newMarkersRef.current = newMarkers;\n }, [newMarkers]);\n\n const zoomMapToLocation = (latLng) => {\n const maxZoom = Math.max(15, map.getZoom());\n setTimeout(function () {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds([ll], {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom,\n animate: 15 > map.getZoom()\n });\n }, 500);\n };\n\n useEffect(() => {\n const customTranslation = {\n tooltips: {\n placeMarker: intl.formatMessage({ id: 'locations.addMarker' })\n }\n };\n map.pm.setLang('customTranslation', customTranslation, intl.locale);\n }, [intl.locale]);\n\n const initialLocationClassIconName = 'Marker1';\n const editLocation = () => {\n const marker = editingLocationRef.current.marker;\n\n newMarkersRef.current.forEach((m) => {\n m.pm.disable({});\n });\n\n setOpenSlidingPaneForm(true);\n\n setTimeout(() => {\n try {\n marker.pm.enable({});\n } catch {}\n }, 100);\n setTimeout(() => {\n try {\n marker.bindPopup(\n marker.options.locationName\n ? marker.options.locationName\n : appIntl().formatMessage({ id: 'locations.new' })\n );\n marker.openPopup();\n } catch {}\n }, 100);\n };\n\n useDeepCompareEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var createNewLocationAction = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.locationsToolbar.tooltipAddLocation' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: () => {\n container.pm.enableDraw('Marker', {\n continueDrawing: false, //Disable After Create\n markerEditable: true,\n markerStyle: {\n icon: L.divIcon({\n className: 'custom-div-icon',\n html: `
`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })\n }\n });\n\n // listen to when drawing elem gets created\n\n container.on('pm:create', function (e) {\n // setEditingLocation(undefined);\n if (e.shape == 'Marker' && e.marker.options.locationId == null) {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n let marker = e.marker;\n marker.options = {\n ...marker.options,\n locationId: uuidv4(),\n locationName: undefined,\n locationAddress: '',\n latitude: marker.getLatLng().lat,\n longitude: marker.getLatLng().lng,\n radius: 50,\n operatorId: null,\n organizationId: null,\n divisionId: null,\n subdivisionId: null,\n locationClassIconName: 'Marker1',\n locationClassId: 0,\n privateCode: '',\n isConfirmed: false\n };\n\n marker.on('click', () => {\n // setEditingLocation(undefined);\n // if (\n // isOpenSlidingPaneFormRef.current &&\n // editingLocationRef.current.marker.options.locationId == marker.options.locationId\n // ) {\n // } else {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n setEditingLocation({\n marker: marker,\n location: marker.options\n });\n\n // }\n });\n\n marker.on('pm:remove', (e) => {\n setOpenSlidingPaneForm(false);\n setSlidingPaneProps({ inputs: [] });\n });\n\n marker.on('pm:drag', (e) => {\n marker.options = {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n };\n // setEditingLocation({\n // marker: marker,\n // location: {\n // ...editingLocationRef.current.location,\n // latitude: e.target.getLatLng().lat,\n // longitude: e.target.getLatLng().lng\n // }\n // });\n // zoomMapToLocation(marker.getLatLng());\n });\n\n marker.on('pm:dragend', (e) => {\n marker.options = {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n };\n setEditingLocation({\n marker: marker,\n location: {\n ...editingLocationRef.current.location,\n latitude: e.target.getLatLng().lat,\n longitude: e.target.getLatLng().lng\n }\n });\n zoomMapToLocation(marker.getLatLng());\n });\n\n setNewMarkers((prevMarkers) => [...prevMarkers, marker]);\n marker.pm.enable({});\n zoomMapToLocation(marker.getLatLng());\n setEditingLocation({\n marker: marker,\n location: marker.options\n });\n }\n });\n }\n });\n\n var viewLocations = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: showLocations\n ? intl.formatMessage({ id: 'map.locationsToolbar.tooltipHideLocations' })\n : intl.formatMessage({ id: 'map.locationsToolbar.tooltipShowLocations' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>{showLocations ? : }\n )\n }\n },\n addHooks: () => {\n if (!showLocations) {\n dispatch(locationActions.showAllLocationsInMap());\n } else {\n dispatch(locationActions.hideAllLocationsInMap());\n }\n setShowLocations(!showLocations);\n setOpenSlidingPaneForm(false);\n newMarkersRef.current.forEach((m) => {\n try {\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }\n });\n\n var cancelLocation = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n container.pm.disableDraw('Marker');\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var locationsOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n // html: ''\n tooltip: intl.formatMessage({ id: 'map.locationsToolbar.tooltipLocations' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [\n authSelectors.getAuthUserHasPermissionsEvery(store, [\n locationPermissions.listLocationsOnMap\n ])\n ? viewLocations\n : null,\n authSelectors.getAuthUserHasPermissionsEvery(store, [locationPermissions.addLocation])\n ? createNewLocationAction\n : null,\n\n cancelLocation\n ].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.LocationsToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [locationsOptions]\n }\n });\n\n var locationsToolbar = new L.Toolbar2.LocationsToolbar({ position: position });\n locationsToolbar.addTo(container);\n\n return () => {\n locationsToolbar.remove();\n };\n } catch {}\n }, [listenMapControlChanges]);\n return (\n <>\n {\n setOpenSlidingPaneForm(false);\n editingLocationRef.current.marker.pm.disable({});\n newMarkersRef.current.forEach((m, i) => {\n try {\n m.pm.disable({});\n m.closePopup();\n } catch {}\n });\n }}\n isInMap\n title={\n editingLocationRef.current &&\n editingLocationRef.current.location &&\n Number.isInteger(editingLocationRef.current.location.locationId)\n ? editingLocationRef.current.location.locationName\n : intl.formatMessage({ id: 'locations.addLocation' })\n }\n editingLocation={editingLocationRef.current?.location}\n setEditingLocation={(location) =>\n setEditingLocation({ marker: editingLocationRef.current.marker, location })\n }\n onClose={() => {\n map.removeLayer(editingLocationRef.current.marker);\n setEditingLocation(undefined);\n }}\n action={(values) => {\n map.removeLayer(editingLocationRef.current.marker);\n dispatch(\n locationActions.startAddingLocation({\n ...values,\n ...values.membership,\n radius: parsers.convertAuthUserDistance2SystemToMeters(values.radius),\n isShownInMap: true,\n enableDispatch: 0,\n dispatchNotificationFreq: 0,\n dispatchEmails: null,\n dispatchCompletionType: 0,\n locationTypeId: 0,\n locationId: uuidv4()\n })\n );\n setEditingLocation(undefined);\n }}\n />\n \n );\n};\n\nToolbarLocationsControl.defaultProps = {\n position: 'topleft',\n showLocations: false,\n setShowLocation: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarLocationsControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Plus, X } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport Icon from 'utility/icomoon';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport routesPermissions from '../../../../../views/screens/Routes/permissions';\n\nexport interface RoutesToolbarOptions {\n useToolbar: boolean;\n showRoutes?: bool;\n setEditingRouteParent?: any;\n setShowRoutes?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarRoutesControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarRoutesControl = (props: RoutesToolbarOptions) => {\n const {\n showRoutes,\n setShowRoutes,\n setEditingRouteParent,\n position = 'topleft',\n listenMapControlChanges\n } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n\n const { store } = useSelector((state) => ({\n store: state\n }));\n\n useEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var createNewRouteAction = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.routesToolbar.tooltipAddRoute' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n setEditingRouteParent({\n showRoute: true,\n route: { newRouteId: uuidv4() },\n routeCheckpoints: [\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() }\n ],\n routePaths: []\n });\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var cancelRoute = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var routesOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.routesToolbar.tooltipRoutes' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [createNewRouteAction, cancelRoute].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.RoutesToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [routesOptions]\n }\n });\n\n var routesToolbar = new L.Toolbar2.RoutesToolbar({ position: position });\n routesToolbar.addTo(container);\n\n return () => {\n routesToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return null;\n};\n\nToolbarRoutesControl.defaultProps = {\n position: 'topleft',\n showRoutes: false,\n setShowRoutes: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarRoutesControl;\n","// @ts-nocheck\n// import Control from 'react-leaflet-control';\nimport '@geoman-io/leaflet-geoman-free';\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet-toolbar';\nimport React, { useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport { Eye, EyeOff, X } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Icon from 'utility/icomoon';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport unitsPermissions from '../../../../../views/screens/Units/permissions';\nimport * as unitActions from '../../../../../views/screens/Units/actions';\n\nexport interface UnitsToolbarOptions {\n useToolbar: boolean;\n showUnits?: bool;\n setSelectedUnit?: any;\n setShowUnits?: Function;\n listenMapControlChanges?: any[];\n position?: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n}\n\n/* -------------------------------------------------------------------------- */\n/* ToolbarUnitsControl */\n/* -------------------------------------------------------------------------- */\nconst ToolbarUnitsControl = (props: UnitsToolbarOptions) => {\n const {\n showUnits,\n setShowUnits,\n setSelectedUnit,\n position = 'topleft',\n listenMapControlChanges\n } = props;\n const context = useLeafletContext();\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const { store } = useSelector((state) => ({\n store: state\n }));\n\n useEffect(() => {\n const container = context.layerContainer || context.map;\n try {\n var ImmediateSubAction = L.Toolbar2.Action.extend({\n initialize: function (map, myAction) {\n this.map = map;\n this.myAction = myAction;\n L.Toolbar2.Action.prototype.initialize.call(this);\n },\n addHooks: function () {\n this.myAction.disable();\n }\n });\n\n var createNewUnitAction = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: showUnits\n ? intl.formatMessage({ id: 'map.unitsToolbar.tooltipHideUnits' })\n : intl.formatMessage({ id: 'map.unitsToolbar.tooltipShowUnits' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>{showUnits ? : }\n )\n }\n },\n addHooks: () => {\n if (!showUnits) {\n dispatch(unitActions.showAllUnitsInMap());\n } else {\n dispatch(unitActions.hideAllUnitsInMap());\n }\n setShowUnits(!showUnits);\n }\n });\n\n var cancelUnit = ImmediateSubAction.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'common.tooltipCancel' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n }\n },\n addHooks: function () {\n ImmediateSubAction.prototype.addHooks.call(this);\n }\n });\n\n var unitsOptions = L.Toolbar2.Action.extend({\n options: {\n toolbarIcon: {\n tooltip: intl.formatMessage({ id: 'map.unitsToolbar.tooltipUnits' }),\n html: ReactDOMServer.renderToStaticMarkup(\n <>\n \n \n )\n },\n\n subToolbar: new L.Toolbar2({\n actions: [createNewUnitAction, cancelUnit].filter((action) => action != null)\n })\n },\n disable: function (e) {\n L.Toolbar2.Action.prototype.disable.call(this);\n }\n });\n\n L.Toolbar2.UnitsToolbar = L.Toolbar2.Control.extend({\n options: {\n actions: [unitsOptions]\n }\n });\n\n var unitsToolbar = new L.Toolbar2.UnitsToolbar({ position: position });\n unitsToolbar.addTo(container);\n\n return () => {\n unitsToolbar.remove();\n };\n } catch {}\n }, [...listenMapControlChanges]);\n return null;\n};\n\nToolbarUnitsControl.defaultProps = {\n position: 'topleft',\n showUnits: false,\n setShowUnits: () => null,\n listenMapControlChanges: []\n};\n\nexport default ToolbarUnitsControl;\n","// Import necessary modules and functions from external libraries and our own project\nimport { Library, useJsApiLoader } from '@react-google-maps/api';\nimport { ReactNode } from 'react';\nimport { useSelector } from 'react-redux';\nimport * as authSelectors from '../../../../redux/reducers/auth';\n\n// Define a list of libraries to load from the Google Maps API\nconst libraries: Library[] = ['places', 'drawing', 'geometry'];\n\n// Define a function component called MapProvider that takes a children prop\nexport function MapProvider({ children }: { children: ReactNode }) {\n const user = useSelector(authSelectors.getAuthUser);\n\n // Load the Google Maps JavaScript API asynchronously\n const { isLoaded: scriptLoaded, loadError } = useJsApiLoader({\n googleMapsApiKey: user?.googleMapsApiKey,\n libraries: libraries\n });\n\n if (loadError) return

Encountered error while loading google maps

;\n\n if (!scriptLoaded) return

Map Script is loading ...

;\n\n // Return the children prop wrapped by this MapProvider component\n return children;\n}\n","import { LatLngExpression, Map } from 'leaflet';\nimport 'leaflet-draw';\nimport debounce from 'lodash.debounce';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { MapContainer } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport * as unitActions from '../../../views/screens/Units/actions';\nimport * as geofenceActions from '../../screens/Geofences/actions';\nimport * as geofenceSelectors from '../../screens/Geofences/reducers';\nimport * as locationSelectors from '../../screens/Locations/reducers';\nimport { LOCATION_DATA_LIMIT_FOR_CLUSTERING } from '../../screens/Locations/types';\nimport * as routeSelectors from '../../screens/Routes/reducers/routes';\nimport { UNIT_DATA_LIMIT_FOR_CLUSTERING } from '../../screens/Units/types';\nimport MapBaseLayers, { MapBaseLayersOptions } from './components/MapBaseLayers';\nimport MapGeofenceEdit, { MapGeofenceEditOptions } from './components/MapGeofenceEdit';\nimport MapGeofences, { MapGeofencesOptions } from './components/MapGeofences';\nimport MapLocationEdit, { MapLocationEditOptions } from './components/MapLocationEdit';\nimport MapLocations, { MapLocationsOptions } from './components/MapLocations';\nimport MapObjectsBounds, { MapObjectsBoundsOptions } from './components/MapObjectsBounds';\nimport MapRouteEdit from './components/MapRouteEdit';\nimport MapRoutes, { MapRoutesOptions } from './components/MapRoutes';\nimport MapUnits, { MapUnitsOptions } from './components/MapUnits';\nimport RulerControl, { RulerControlOptions } from './components/RulerControl';\nimport ToolbarGeofencesControl, {\n GeofencesToolbarOptions\n} from './components/ToolbarGeofencesControl';\nimport ToolbarHomeControl, { HomeToolbarOptions } from './components/ToolbarHomeControl';\nimport ToolbarLocationsControl, {\n LocationsToolbarOptions\n} from './components/ToolbarLocationsControl';\nimport ToolbarRoutesControl, { RoutesToolbarOptions } from './components/ToolbarRoutesControl';\nimport ToolbarUnitsControl, { UnitsToolbarOptions } from './components/ToolbarUnitsControl';\nimport ToolbarUnitTrajectoryControl, {\n TrajectoryToolbarOptions\n} from './components/ToolbarUnitTrajectoryControl';\nimport { MapProvider } from './context/GoogleMapsContext';\n\ninterface MapProps {\n mapBaseLayersOptions: MapBaseLayersOptions;\n mapOptions: MapOptions;\n homeToolbarOptions: HomeToolbarOptions;\n locationsToolbarOptions: LocationsToolbarOptions;\n geofencesToolbarOptions: GeofencesToolbarOptions;\n routesToolbarOptions: RoutesToolbarOptions;\n unitsToolbarOptions: UnitsToolbarOptions;\n rulerControlOptions: RulerControlOptions;\n trajectoryToolbarOptions: TrajectoryToolbarOptions;\n mapLocationsOptionsToolbar: MapLocationsOptions;\n mapLocationsOptions: MapLocationsOptions;\n mapLocationEditOptions: MapLocationEditOptions;\n mapGeofencesOptionsToolbar: MapGeofencesOptions;\n mapGeofencesOptions: MapGeofencesOptions;\n mapObjectsBoundsOptions: MapObjectsBoundsOptions;\n mapGeofenceEditOptions: MapGeofenceEditOptions;\n mapRoutesOptionsToolbar: MapRoutesOptions;\n mapRoutesOptions: MapRoutesOptions;\n mapUnitsOptionsToolbar: MapUnitsOptions;\n mapUnitsOptions: MapUnitsOptions;\n startClusteringAt?: number;\n startRerender?: any;\n}\n\ninterface MapOptions {\n center?: LatLngExpression;\n zoom?: number;\n style?: React.CSSProperties;\n className: string;\n rerenderMap?: Date | React.Key;\n fetchMapObjects?: any;\n resetMapHome?: any;\n}\n\nconst MapsBasic = (props: MapProps) => {\n const zoomLevelToStartClustering = useSelector(\n (state) => authSelectors.getAuthUser(state).zoomLevelToStartClustering\n );\n\n const {\n mapBaseLayersOptions,\n mapOptions,\n homeToolbarOptions,\n locationsToolbarOptions,\n geofencesToolbarOptions,\n routesToolbarOptions,\n unitsToolbarOptions,\n rulerControlOptions,\n trajectoryToolbarOptions,\n mapLocationsOptionsToolbar,\n mapLocationsOptions,\n mapLocationEditOptions,\n mapGeofencesOptionsToolbar,\n mapGeofencesOptions,\n mapGeofenceEditOptions,\n mapRoutesOptionsToolbar,\n mapRoutesOptions,\n mapUnitsOptionsToolbar,\n mapUnitsOptions,\n mapObjectsBoundsOptions,\n startClusteringAt = zoomLevelToStartClustering ?? 9, //Nivel de zoom determinado\n startRerender\n } = props;\n const { style, className, center, zoom, rerenderMap, fetchMapObjects, resetMapHome } = mapOptions;\n\n const history = useHistory();\n const dispatch = useDispatch();\n\n const [map, setMap] = useState();\n const intl = useIntl();\n const [isSelectedSomething, setIsSelectedSomething] = useState({});\n const [listenMapControlChanges, setMapControlChanges] = useState<\n undefined | (boolean | string)[]\n >(undefined);\n const [listenMapControlChangesLayers, setMapControlChangesLayers] = useState<\n undefined | (string | boolean)[]\n >(undefined);\n const [showLocations, setShowLocations] = useState(false);\n const [showGeofences, setShowGeofences] = useState(false);\n const [showRoutes, setShowRoutes] = useState(false);\n const [showUnits, setShowUnits] = useState(unitsToolbarOptions.showUnits === true);\n const [showTrajectory, setShowTrajectory] = useState(false);\n const [activateShowGeofences, setActivateShowGeofences] = useState(false);\n const [mapInitialized, setMapInitialized] = useState(true);\n const [zoomClusterLimit, setZoomClusterLimit] = useState(startClusteringAt);\n const [isClusterLimitSet, setIsClusterLimitSet] = useState(false);\n const [mapBounds, setMapBounds] = useState({});\n\n const { store, geofences, routes, isFetchingLocations, isFetchingGeofences } = useSelector(\n (state) => ({\n store: state,\n //locations: locationSelectors.getLocationsListByMapBounds(state, mapBounds),\n geofences: geofenceSelectors.getGeofencesList(state),\n routes: routeSelectors.getRoutesList(state),\n isFetchingLocations: locationSelectors.isFetchingListLocations(state),\n isFetchingGeofences: geofenceSelectors.isFetchingListGeofences(state)\n })\n );\n\n useDeepCompareEffect(() => {\n if (\n map &&\n mapUnitsOptionsToolbar?.units &&\n mapLocationsOptionsToolbar?.locations &&\n isClusterLimitSet === false &&\n (mapLocationsOptionsToolbar?.locations?.length >= LOCATION_DATA_LIMIT_FOR_CLUSTERING ||\n mapUnitsOptionsToolbar?.units?.length >= UNIT_DATA_LIMIT_FOR_CLUSTERING)\n ) {\n setZoomClusterLimit(map?.getZoom() + 1);\n setIsClusterLimitSet(true);\n }\n }, [\n mapLocationsOptionsToolbar?.locations?.map((location) => ({\n locationId: location.locationId,\n latitude: location.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n mapUnitsOptionsToolbar?.units,\n map,\n isClusterLimitSet\n ]);\n\n const initialMapCenter: LatLngExpression = center ||\n authSelectors.getAuthUserMapHomeCenter(store) || [51.5074, 0.1278];\n const initialZoom = zoom || authSelectors.getAuthUserMapHomeZoom(store) || 13;\n const [mapPosition, setMapPosition] = useState(initialMapCenter);\n useEffect(() => {\n setMapControlChanges([\n // @ts-ignore MapQuest\n typeof MQ,\n showLocations,\n showGeofences,\n showRoutes,\n showUnits,\n showTrajectory,\n intl.locale\n ]);\n }, [showLocations, showGeofences, showRoutes, showUnits, showTrajectory, intl.locale]);\n\n useEffect(() => {\n // @ts-ignore MapQuest\n setMapControlChangesLayers([typeof MQ, intl.locale]);\n }, [intl.locale]);\n\n //Used For Editing Location\n const [editingLocation, setEditingLocation] = useState(undefined);\n const [mapLocationEditOptionsToolbar, setMapLocationEditOptionsToolbar] =\n useState(undefined);\n\n const editingLocationRef = useRef(editingLocation);\n\n useEffect(() => {\n editingLocationRef.current = editingLocation;\n setMapLocationEditOptionsToolbar({\n location:\n editingLocationRef?.current &&\n editingLocationRef?.current.latitude != null &&\n editingLocationRef?.current.longitude != null\n ? editingLocationRef?.current\n : {\n latitude:\n editingLocationRef?.current && editingLocationRef?.current.latitude != null\n ? editingLocationRef?.current.latitude\n : initialMapCenter[0],\n longitude:\n editingLocationRef?.current && editingLocationRef?.current.longitude != null\n ? editingLocationRef?.current.longitude\n : initialMapCenter[1],\n radius:\n editingLocationRef?.current && editingLocationRef?.current.radius\n ? editingLocationRef?.current.radius\n : 10,\n locationClassIconName:\n editingLocationRef?.current && editingLocationRef?.current.locationClassIconName\n ? editingLocationRef?.current.locationClassIconName\n : 'Marker1'\n },\n onLocationDragend: (values) => {\n if (setEditingLocation)\n setEditingLocation({\n ...editingLocationRef?.current,\n longitude: values.lng,\n latitude: values.lat\n });\n },\n showLocation: editingLocationRef && editingLocationRef.current ? true : false,\n hideMarkersByZoom: false,\n useRectangleBounds: true,\n isMapFullScreen: true,\n usePopovers: true\n });\n }, [editingLocation]);\n\n //Used For Editing Geofence\n const [editingGeofence, setEditingGeofence] = useState(undefined);\n const [mapGeofenceEditOptionsToolbar, setMapGeofenceEditOptionsToolbar] =\n useState(undefined);\n const editingGeofenceRef = useRef(editingGeofence);\n\n useEffect(() => {\n editingGeofenceRef.current = editingGeofence;\n setMapGeofenceEditOptionsToolbar({\n geofence: editingGeofenceRef?.current ? editingGeofenceRef?.current : {},\n onGeofenceEdit: (values) => {\n if (setEditingGeofence)\n setEditingGeofence({\n ...editingGeofenceRef?.current,\n ...values\n });\n },\n showGeofence: editingGeofenceRef && editingGeofenceRef.current,\n\n isMapFullScreen: true,\n usePopovers: true\n });\n }, [editingGeofence]);\n\n //Used For Editing Route\n const [editingRoute, setEditingRoute] = useState(undefined);\n const editingRouteRef = useRef(editingRoute);\n\n useEffect(() => {\n editingRouteRef.current = editingRoute;\n }, [editingRoute]);\n\n //Used For Editing Unit\n const [selectedUnit, setSelectedUnit] = useState(undefined);\n const selectedUnitRef = useRef(selectedUnit);\n\n useEffect(() => {\n //al cambiar unidad tambiƩn vamos a limpiar el history para evitar que\n //se cargue la unidad que esta como parametro en el estado de history\n if (\n selectedUnit &&\n selectedUnit?.unitId &&\n selectedUnitRef?.current &&\n selectedUnitRef?.current?.unitId != selectedUnit?.unitId\n ) {\n // @ts-ignore reset history\n history.replace();\n }\n\n if (\n selectedUnit &&\n selectedUnit?.unitId &&\n !mapUnitsOptionsToolbar.initialUnitInformationOpenId\n ) {\n dispatch(unitActions.startFetchingUnit(selectedUnit?.unitId));\n dispatch(unitActions.showUnitInMap(selectedUnit?.unitId));\n } else if (mapUnitsOptionsToolbar.initialUnitInformationOpenId)\n dispatch(unitActions.showUnitInMap(selectedUnit?.unitId));\n\n selectedUnitRef.current = selectedUnit;\n }, [selectedUnit]);\n\n //Used to show Control Show All Units\n useEffect(() => {\n setShowUnits(unitsToolbarOptions.showUnits === true);\n }, [unitsToolbarOptions.showUnits]);\n\n // It sets a delay so it waits until the user stops dragging or zooming the map to do the fetch\n const fetchMapItemsWithBounds = useCallback(\n debounce((boundsFilters) => {\n fetchMapObjects(boundsFilters);\n setMapBounds(boundsFilters);\n\n if (showGeofences) {\n dispatch(\n geofenceActions.startFetchingGeofences({\n operatorId: mapGeofencesOptionsToolbar?.membership?.operatorId,\n organizationId: mapGeofencesOptionsToolbar?.membership?.organizationId,\n bounds: boundsFilters\n })\n );\n setActivateShowGeofences(true);\n }\n }, 1000),\n [\n dispatch,\n showLocations,\n mapLocationsOptionsToolbar,\n showGeofences,\n mapGeofencesOptionsToolbar,\n fetchMapObjects,\n isFetchingLocations\n ]\n );\n\n // Adds listeners to the map to save the bounds every time the map area changes\n useEffect(() => {\n if (map && (showLocations || showGeofences)) {\n const handleMapMovement = () => {\n const bounds = map.getBounds();\n const boundsFilter = {\n minLat: bounds.getSouthWest().lat,\n minLng: bounds.getSouthWest().lng,\n maxLat: bounds.getNorthEast().lat,\n maxLng: bounds.getNorthEast().lng,\n showInMapLocations: showLocations,\n showInMapGeofences: showGeofences,\n mapZoomLevel: map.getZoom()\n };\n\n fetchMapItemsWithBounds(boundsFilter);\n };\n // Attach event listeners\n map.on('moveend', handleMapMovement);\n map.on('zoomend', handleMapMovement);\n\n if (mapInitialized && (showLocations || showGeofences)) {\n handleMapMovement();\n setMapInitialized(false);\n }\n\n // Clean up listeners on unmount\n return () => {\n map.off('moveend', handleMapMovement);\n map.off('zoomend', handleMapMovement);\n };\n }\n }, [map, fetchMapItemsWithBounds]);\n\n //Show items on map after the fetch is completed\n useEffect(() => {\n if (activateShowGeofences && !isFetchingGeofences) {\n dispatch(geofenceActions.showAllGeofencesInMap());\n setActivateShowGeofences(false);\n }\n }, [activateShowGeofences, isFetchingGeofences]);\n\n useEffect(() => {\n if (showGeofences) setActivateShowGeofences(true);\n }, [mapGeofencesOptionsToolbar?.membership?.organizationId]);\n\n const [spiderfyActivated, setSpiderfyActivated] = useState(false);\n const [spiderfyState, setSpiderfyState] = useState(false);\n\n useEffect(() => {\n if (map && map?.getZoom() >= 16 && !spiderfyState) {\n setSpiderfyState(true);\n setSpiderfyActivated(true);\n } else if (map && map?.getZoom() < 16 && spiderfyState) {\n setSpiderfyActivated(true);\n setSpiderfyState(false);\n }\n }, [map?.getZoom()]);\n\n /* -------------------------------------------------------------------------- */\n /* Map Bounds and rerender */\n /* -------------------------------------------------------------------------- */\n useDeepCompareEffect(() => {\n if (\n !mapObjectsBoundsOptions.setMapPositionToGeofenceBounds &&\n !mapObjectsBoundsOptions.setMapPositionToLocationBounds\n ) {\n if (center) setMapPosition(center);\n }\n }, [center || []]);\n\n useEffect(() => {\n if (map != null) {\n setTimeout(function () {\n map.invalidateSize(true);\n }, 100);\n }\n }, [map, rerenderMap]);\n\n useEffect(() => {\n // @ts-ignore locale does return lang\n if (map) map.pm.setLang(intl.locale);\n }, [map, intl]);\n\n return (\n
\n \n {\n setMap(leafletMap);\n const bounds = leafletMap.getBounds();\n const boundsFilter = {\n minLat: bounds.getSouthWest().lat,\n minLng: bounds.getSouthWest().lng,\n maxLat: bounds.getNorthEast().lat,\n maxLng: bounds.getNorthEast().lng,\n showInMapLocations: showLocations,\n showInMapGeofences: showGeofences\n };\n if (showLocations || showGeofences) fetchMapItemsWithBounds(boundsFilter);\n }}\n >\n \n\n {/* MapLocations */}\n {(mapLocationsOptionsToolbar.initialLocationInformationOpenId !== undefined ||\n (showLocations && mapLocationsOptionsToolbar.useIsShownLocation)) && (\n \n )}\n\n {mapLocationsOptions.showLocations && }\n {mapLocationEditOptionsToolbar?.showLocation && (\n \n )}\n {mapLocationEditOptions.showLocation && }\n\n {/* Geofences */}\n {(showGeofences || mapGeofencesOptionsToolbar.useIsShownGeofence) && (\n \n )}\n {mapGeofencesOptions.showGeofences && }\n {mapGeofenceEditOptionsToolbar?.showGeofence && (\n \n )}\n {mapGeofenceEditOptions.showGeofence && }\n\n {/* MapRoutes */}\n {(showRoutes || mapRoutesOptionsToolbar.useIsShownRoute) && (\n \n )}\n\n {mapRoutesOptions.showRoutes && }\n {editingRoute?.showRoute && (\n \n )}\n\n {/* MapUnits */}\n {(mapUnitsOptionsToolbar.initialUnitInformationOpenId !== undefined ||\n showUnits ||\n mapUnitsOptionsToolbar.useIsShownUnit) && (\n \n )}\n\n {mapUnitsOptions.showUnits && (\n \n )}\n\n {/* Map Object Bounds */}\n \n\n {/* Toolbars */}\n {homeToolbarOptions.useToolbar && (\n \n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['LO008', 'LO001']) &&\n locationsToolbarOptions.useToolbar && (\n setShowLocations(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['GF001', 'GF002']) &&\n geofencesToolbarOptions.useToolbar && (\n setShowGeofences(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['UP025']) &&\n unitsToolbarOptions.useToolbar && (\n setShowUnits(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n\n {authSelectors.getAuthUserHasPermissionsAny(store, ['RL001']) &&\n routesToolbarOptions.useToolbar && (\n setShowRoutes(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, ['UP046']) &&\n trajectoryToolbarOptions.useToolbar && (\n setShowTrajectory(value)}\n listenMapControlChanges={listenMapControlChanges}\n />\n )}\n {rulerControlOptions.useControl && (\n \n )}\n \n \n
\n );\n};\n\nMapsBasic.defaultProps = {\n mapOptions: {\n center: [51.5074, 0.1278],\n zoom: 13,\n style: {},\n className: '',\n rerenderMap: null\n },\n\n homeToolbarOptions: ToolbarHomeControl.defaultProps,\n locationsToolbarOptions: ToolbarLocationsControl.defaultProps,\n geofencesToolbarOptions: ToolbarGeofencesControl.defaultProps,\n routesToolbarOptions: ToolbarRoutesControl.defaultProps,\n unitsToolbarOptions: ToolbarUnitsControl.defaultProps,\n rulerControlOptions: RulerControl.defaultProps,\n trajectoryToolbarOptions: ToolbarUnitTrajectoryControl.defaultProps,\n mapBaseLayersOptions: MapBaseLayers.defaultProps,\n mapLocationsOptionsToolbar: MapLocations.defaultProps,\n mapLocationsOptions: MapLocations.defaultProps,\n mapLocationEditOptions: MapLocationEdit.defaultProps,\n mapGeofencesOptionsToolbar: MapGeofences.defaultProps,\n mapGeofencesOptions: MapGeofences.defaultProps,\n mapGeofenceEditOptions: MapGeofenceEdit.defaultProps,\n mapRoutesOptionsToolbar: MapRoutes.defaultProps,\n mapRoutesOptions: MapRoutes.defaultProps,\n mapRouteEditOptions: MapRouteEdit.defaultProps,\n mapUnitsOptionsToolbar: MapUnits.defaultProps,\n mapUnitsOptions: MapUnits.defaultProps,\n mapObjectsBoundsOptions: MapObjectsBounds.defaultProps\n};\nexport default MapsBasic;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport configurations from '../../../../redux/reducers/configurations';\nimport * as authTypes from '../../../../redux/types/auth';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n\n const newState = {};\n order.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n isSelected: state[monitoringUserId]?.isSelected ?? false,\n ...entities[monitoringUserId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n isSelected: newState[monitoringUserId].isSelected ?? false,\n ...entities[monitoringUserId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MONITORING_USER_FETCH_COMPLETED: {\n const { monitoringUser } = action.payload;\n return {\n ...state,\n [monitoringUser.userName]: {\n ...state[monitoringUser.userName],\n ...monitoringUser,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.MONITORING_USER_ADD_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n const newState = omit(state, oldId);\n newState[monitoringUser.userName] = {\n isShownInMap: false,\n ...state[oldId],\n ...monitoringUser,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MONITORING_USER_EDIT_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n return {\n ...omit(state, [oldId]),\n [monitoringUser.userName]: {\n isShownInMap: false,\n ...omit(state[oldId], ['oldMonitoringUser']),\n ...omit(monitoringUser, ['oldMonitoringUser']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MONITORING_USER_ADD_STARTED: {\n const monitoringUser = action.payload;\n const newState = { ...state };\n newState[monitoringUser.userName] = {\n isShownInMap: false,\n isSelected: false,\n ...monitoringUser,\n isConfirmed: false\n };\n return newState;\n }\n case types.MONITORING_USER_EDIT_STARTED: {\n const monitoringUser = action.payload;\n return {\n ...state,\n [monitoringUser.oldUserName]: {\n isShownInMap: false,\n ...state[monitoringUser.oldUserName],\n oldMonitoringUser: state[monitoringUser.oldUserName],\n ...monitoringUser,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MONITORING_USER_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MONITORING_USER_EDIT_FAILED: {\n const { oldMonitoringUser } = action.payload;\n return {\n ...state,\n [oldMonitoringUser.userName]: {\n isShownInMap: false,\n ...omit(state[oldMonitoringUser.userName], ['oldMonitoringUser']),\n ...oldMonitoringUser,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n const { users } = action.payload;\n return omit(state, users);\n }\n\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED: {\n const values = action.payload;\n const newState = {\n ...state,\n [values.userName]: {\n ...state[values.userName],\n roleId: values.roleId\n }\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MONITORING_USER_SELECTED: {\n const monitoringUserId = action.payload;\n const newState = {\n ...state,\n [monitoringUserId]: {\n ...state[monitoringUserId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MONITORING_USER_DESELECTED: {\n const monitoringUserId = action.payload;\n return {\n ...state,\n [monitoringUserId]: {\n ...state[monitoringUserId],\n isSelected: false\n }\n };\n }\n\n case types.MONITORING_USERS_ALL_SELECTED: {\n const monitoringUserIds = action.payload;\n const newState = { ...state };\n if (monitoringUserIds.length == 0) {\n forEach(state, (monitoringUser: any, monitoringUserId) => {\n newState[monitoringUserId] = {\n ...monitoringUser,\n isSelected: true\n };\n });\n } else {\n monitoringUserIds.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n ...state[monitoringUserId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MONITORING_USERS_ALL_DESELECTED: {\n const monitoringUserIds = action.payload;\n const newState = { ...state };\n if (monitoringUserIds.length == 0) {\n forEach(state, (monitoringUser: any, monitoringUserId) => {\n newState[monitoringUserId] = {\n ...monitoringUser,\n isSelected: false\n };\n });\n } else {\n monitoringUserIds.forEach((monitoringUserId) => {\n newState[monitoringUserId] = {\n ...state[monitoringUserId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n case types.USERS_ASSIGN_SCHEDULE_COMPLETED: {\n const userAssignSchedule = action.payload;\n const newState = { ...state };\n userAssignSchedule?.users?.forEach((userName) => {\n newState[userName] = {\n ...state[userName],\n scheduleId: userAssignSchedule.scheduleId,\n scheduleName: userAssignSchedule.scheduleName\n };\n });\n return newState;\n }\n\n case types.USERS_UNASSIGN_SCHEDULE_COMPLETED: {\n const userAssignSchedule = action.payload;\n const newState = { ...state };\n userAssignSchedule?.users?.forEach((userName) => {\n newState[userName] = {\n ...state[userName],\n scheduleId: null,\n scheduleName: null\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n case types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MONITORING_USER_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MONITORING_USER_ADD_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n return state.map((userName) => (userName === oldId ? monitoringUser.userName : userName));\n }\n\n case types.MONITORING_USER_EDIT_COMPLETED: {\n const { oldId, monitoringUser } = action.payload;\n if (oldId !== monitoringUser.userName) {\n const newState = uniq([...state, monitoringUser.userName]);\n return newState.filter((userNameState) => userNameState !== oldId);\n }\n return state;\n }\n\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n const { users } = action.payload;\n return state.filter((userNameState) => users.indexOf(userNameState) < 0);\n }\n\n //CASE ADD STARTED\n case types.MONITORING_USER_ADD_STARTED: {\n const monitoringUser = action.payload;\n return [...state, monitoringUser.userName];\n }\n\n //CASE ADD FAILED\n case types.MONITORING_USER_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((userNameState) => userNameState !== oldId);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USERS_FETCH_STARTED: {\n return true;\n }\n case types.MONITORING_USERS_FETCH_COMPLETED:\n case types.MONITORING_USERS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USER_FETCH_STARTED: {\n return true;\n }\n case types.MONITORING_USER_FETCH_COMPLETED:\n case types.MONITORING_USER_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_ADD_STARTED: {\n return true;\n }\n case types.MONITORING_USER_ADD_COMPLETED:\n case types.MONITORING_USER_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED:\n case types.USERS_ASSIGN_SCHEDULE_STARTED:\n case types.USERS_UNASSIGN_SCHEDULE_STARTED:\n case types.MONITORING_USER_EDIT_STARTED: {\n return true;\n }\n case types.MONITORING_USER_EDIT_COMPLETED:\n case types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED:\n case types.USERS_ASSIGN_SCHEDULE_COMPLETED:\n case types.USERS_UNASSIGN_SCHEDULE_COMPLETED:\n case types.MONITORING_USER_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.MONITORING_USER_REMOVE_STARTED: {\n return true;\n }\n case types.MONITORING_USER_REMOVE_COMPLETED:\n case types.MONITORING_USER_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MONITORING_USERS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USERS_FETCH_STARTED:\n case types.MONITORING_USERS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.MONITORING_USER_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_FETCH_STARTED:\n case types.MONITORING_USER_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_ADD_STARTED:\n case types.MONITORING_USER_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_EDIT_STARTED:\n case types.MONITORING_USER_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.MONITORING_USER_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MONITORING_USER_REMOVE_STARTED:\n case types.MONITORING_USER_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingMonitoringUserPassword = (state = false, action) => {\n switch (action.type) {\n case types.MONITORING_USER_UPDATE_PASSWORD_STARTED: {\n return true;\n }\n\n case types.MONITORING_USER_UPDATE_PASSWORD_COMPLETED:\n case types.MONITORING_USER_UPDATE_PASSWORD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst monitoringUsers = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n isUpdatingMonitoringUserPassword,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n configurations\n});\n\nexport default monitoringUsers;\n\n//Own state\nexport const getOwnState = (state) => state.people.monitoringUsers;\n\n//Information\nexport const getMonitoringUser = (state, userName): types.MonitoringUser =>\n getOwnState(state).byId[userName];\nexport const getMonitoringUsersList = (state): types.MonitoringUser[] =>\n getOwnState(state)\n .order.map((userName) => getMonitoringUser(state, userName))\n .filter((user) => user?.userStatus > 0);\nexport const getMonitoringUsersSpecificList = (state, list) =>\n list.map((userName) => getMonitoringUser(state, userName));\nexport const getSelectedMonitoringUsers = (state) => {\n const selectedMonitoringUsers = getMonitoringUsersList(state).filter(\n (monitoringUser) => monitoringUser.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedMonitoringUsers.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedMonitoringUsers.length > 0) return selectedMonitoringUsers ?? null;\n\n return null;\n};\nexport const getMonitoringUsersFromBrand = (state, brandId) =>\n getMonitoringUsersList(state).filter((monitoringUser) => monitoringUser?.brandId === brandId);\n\nexport const getSelectedMonitoringUser = (state) => {\n const selectedMonitoringUsers = getMonitoringUsersList(state).filter(\n (monitoringUser) => monitoringUser.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedMonitoringUsers.length === 1) return selectedMonitoringUsers[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isFetchingMonitoringUser = (state) => getOwnState(state).isFetching;\nexport const isFetchingListMonitoringUsers = (state) => getOwnState(state).isFetchingList;\nexport const isAddingMonitoringUser = (state) => getOwnState(state).isAdding;\nexport const isEditingMonitoringUser = (state) => getOwnState(state).isEditing;\nexport const isRemovingMonitoringUser = (state) => getOwnState(state).isRemoving;\nexport const isChangingMonitoringUserPassword = (state) =>\n getOwnState(state).isUpdatingMonitoringUserPassword;\n\n//Errors\nexport const getFetchingMonitoringUserErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListMonitoringUsersErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingMonitoringUserErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingMonitoringUserErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingMonitoringUserErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { v4 as uuidv4 } from 'uuid';\nimport filter from 'lodash/filter';\n\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport * as types from '../types';\nimport * as interfaces from 'utility/types';\n\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.FORMS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((formId) => {\n newState[formId] = {\n isSelected: false,\n sections: {\n byId: {},\n order: []\n },\n questions: {\n byId: {},\n order: []\n },\n responses: {\n byId: {},\n order: []\n },\n ...entities[formId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.FORMS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n sections: {\n byId: {},\n order: []\n },\n questions: {\n byId: {},\n order: []\n },\n responses: {\n byId: {},\n order: []\n },\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.FORM_SECTIONS_FETCH_COMPLETED: {\n const { entities, order, formId } = action.payload;\n const newState = { ...state };\n newState[formId] = {\n ...newState[formId],\n sections: {\n byId: entities,\n order: order\n }\n };\n return newState;\n }\n\n case types.FORM_QUESTIONS_FETCH_COMPLETED: {\n const { entities, order, formId } = action.payload;\n const newState = { ...state };\n newState[formId] = {\n ...newState[formId],\n questions: {\n byId: entities,\n order: order\n }\n };\n return newState;\n }\n\n case types.FORM_QUESTIONS_CLEARED: {\n const formId = action.payload;\n const newState = { ...state };\n newState[formId].questions = {\n byId: {},\n order: []\n };\n return newState;\n }\n\n case types.FORM_EDIT_COMPLETED: {\n const form = action.payload;\n return {\n ...state,\n [form.organizationFormId]: {\n ...omit(state[form.organizationFormId], ['oldForms']),\n ...omit(form, ['oldForms']),\n isConfirmed: true\n }\n };\n }\n\n case types.FORM_ADD_COMPLETED: {\n const { oldId, form } = action.payload;\n const newState = omit(state, oldId);\n newState[form.organizationFormId] = {\n ...state[oldId],\n ...form,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.FORM_RESPONSE_FETCH_COMPLETED: {\n const { entities, order, formId } = action.payload;\n const newState = { ...state };\n newState[formId].responses = {\n byId: { ...entities },\n order: order\n };\n return newState;\n }\n\n case types.FORM_RESPONSES_CLEARED: {\n const formId = action.payload;\n const newState = { ...state };\n newState[formId].responses = {\n byId: {},\n order: []\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.FORM_ADD_STARTED:\n case types.FORM_EXTERNAL_ADD_STARTED: {\n const form = action.payload;\n const newState = { ...state };\n newState[form.organizationFormId] = {\n isSelected: false,\n ...form,\n organizationName: '',\n divisionName: '',\n subdivisionName: '',\n isConfirmed: false\n };\n return newState;\n }\n case types.FORM_EDIT_STARTED:\n case types.FORM_EXTERNAL_EDIT_STARTED: {\n const form = action.payload;\n return {\n ...state,\n [form.organizationFormId]: {\n ...state[form.organizationFormId],\n oldForm: state[form.organizationFormId],\n ...form,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.FORM_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.FORM_EDIT_FAILED: {\n const oldForm = action.payload;\n return {\n ...state,\n [oldForm.organizationFormId]: {\n ...omit(state[oldForm.organizationFormId], ['oldForm']),\n ...oldForm,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.FORM_REMOVE_COMPLETED: {\n const { formId } = action.payload;\n return omit(state, formId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.FORM_SELECTED: {\n const formId = action.payload;\n const newState = {\n ...state,\n [formId]: {\n ...state[formId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.FORM_DESELECTED: {\n const formId = action.payload;\n return {\n ...state,\n [formId]: {\n ...state[formId],\n isSelected: false\n }\n };\n }\n\n case types.FORMS_ALL_SELECTED: {\n const formIds = action.payload;\n const newState = { ...state };\n if (formIds.length == 0) {\n forEach(state, (form: any, formId) => {\n newState[formId] = {\n ...form,\n isSelected: true\n };\n });\n } else {\n formIds.forEach((formId) => {\n newState[formId] = {\n ...state[formId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.FORMS_ALL_DESELECTED: {\n const formIds = action.payload;\n const newState = { ...state };\n if (formIds.length == 0) {\n forEach(state, (form: any, formId) => {\n newState[formId] = {\n ...form,\n isSelected: false\n };\n });\n } else {\n formIds.forEach((formId) => {\n newState[formId] = {\n ...state[formId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n case types.FORMS_ALL_QUESTIONS_CLEARED: {\n const formIds = action.payload;\n const newState = { ...state };\n if (formIds.length == 0) {\n forEach(state, (form: any, formId) => {\n newState[formId] = {\n ...form,\n questions: {\n byId: {},\n order: []\n }\n };\n });\n } else {\n formIds.forEach((formId) => {\n newState[formId] = {\n ...state[formId],\n questions: {\n byId: {},\n order: []\n }\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.FORMS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.FORMS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.FORM_ADD_COMPLETED: {\n const { oldId, form } = action.payload;\n return state.map((formId) => (formId === oldId ? form.organizationFormId : formId));\n }\n\n case types.FORM_REMOVE_COMPLETED: {\n const { formId } = action.payload;\n return state.filter((formIdState) => formIdState !== formId);\n }\n\n //CASE ADD STARTED\n case types.FORM_ADD_STARTED:\n case types.FORM_EXTERNAL_ADD_STARTED: {\n const form = action.payload;\n return [...state, form.organizationFormId];\n }\n\n //CASE ADD FAILED\n case types.FORM_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((formIdState) => formIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.FORMS_FETCH_STARTED: {\n return true;\n }\n case types.FORMS_FETCH_COMPLETED:\n case types.FORMS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.FORM_SECTIONS_FETCH_STARTED:\n case types.FORM_QUESTIONS_FETCH_STARTED:\n case types.FORM_RESPONSE_FETCH_STARTED: {\n return true;\n }\n case types.FORM_SECTIONS_FETCH_COMPLETED:\n case types.FORM_QUESTIONS_FETCH_COMPLETED:\n case types.FORM_RESPONSE_FETCH_COMPLETED:\n case types.FORM_SECTIONS_FETCH_FAILED:\n case types.FORM_QUESTIONS_FETCH_FAILED:\n case types.FORM_RESPONSE_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.FORM_ADD_STARTED:\n case types.FORM_EXTERNAL_ADD_STARTED: {\n return true;\n }\n case types.FORM_ADD_COMPLETED:\n case types.FORM_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.FORM_EDIT_STARTED:\n case types.FORM_EXTERNAL_EDIT_STARTED: {\n return true;\n }\n case types.FORM_EDIT_COMPLETED:\n case types.FORM_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.FORM_REMOVE_STARTED: {\n return true;\n }\n case types.FORM_REMOVE_COMPLETED:\n case types.FORM_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.FORMS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORMS_FETCH_STARTED:\n case types.FORMS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.FORMS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORMS_FETCH_STARTED:\n case types.FORMS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.FORM_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORM_ADD_STARTED:\n case types.FORM_EXTERNAL_ADD_STARTED:\n case types.FORM_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.FORM_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORM_EDIT_STARTED:\n case types.FORM_EXTERNAL_EDIT_STARTED:\n case types.FORM_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.FORM_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.FORM_REMOVE_STARTED:\n case types.FORM_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sectionsById = (state: { [id: string]: interfaces.Section } = {}, action) => {\n switch (action.type) {\n case types.FORM_SECTION_ADDED: {\n const { sectionType, position, sectionId } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n sectionId: sectionId,\n name: appIntl().formatMessage({ id: 'forms.section' }),\n questions: [],\n rows: sectionType === 0 ? [] : [{ rowId: 'initialRow', name: '' }],\n type: sectionType + 1,\n useDropDownRows: false,\n isCollapsed: false\n };\n return newState;\n }\n case types.FORM_SECTION_NAME_EDITED: {\n const { sectionId, sectionName } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n ...newState[sectionId],\n name: sectionName\n };\n return newState;\n }\n case types.FORM_SECTION_DELETED: {\n const sectionId = action.payload;\n const newState = { ...state };\n return omit(newState, sectionId);\n }\n case types.FORM_SECTION_COPIED: {\n const { sectionId, newSectionId, newSection } = action.payload;\n const newState = { ...state };\n const sectionToCopy = {\n ...newState[sectionId],\n questions: newState[sectionId].questions.map((question) => ({\n ...question,\n questionId: uuidv4()\n }))\n };\n return {\n ...newState,\n [newSectionId]: { ...sectionToCopy, ...newSection, sectionId: newSectionId }\n };\n }\n case types.FORM_ROW_ADDED: {\n const { sectionId, rowId, name } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n ...newState[sectionId],\n rows: [\n ...newState[sectionId].rows,\n {\n rowId,\n name\n }\n ]\n };\n return newState;\n }\n case types.FORM_ROW_NAME_EDITED: {\n const { sectionId, rowId, name } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n ...newState[sectionId],\n rows: [\n ...newState[sectionId].rows.map((row) => (row.rowId === rowId ? { ...row, name } : row))\n ]\n };\n return newState;\n }\n case types.FORM_ROW_MOVED: {\n const { sectionId, startingPosition, endingPosition } = action.payload;\n const newRows = [...state[sectionId].rows];\n const [removed] = newRows.splice(startingPosition, 1);\n newRows.splice(endingPosition, 0, removed);\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n rows: newRows\n }\n };\n }\n case types.FORM_ROW_DELETED: {\n const { sectionId, rowId } = action.payload;\n const newState = { ...state };\n\n newState[sectionId] = {\n ...newState[sectionId],\n rows: [...newState[sectionId].rows.filter((row) => !(row.rowId === rowId))]\n };\n return newState;\n }\n case types.FORM_QUESTION_ADDED: {\n const { sectionId, position, questionType, questionId } = action.payload;\n const newState = { ...state };\n const newQuestions = [\n ...state[sectionId].questions.map((question) => ({ ...question, isCollapsed: true }))\n ];\n let newQuestion = {\n questionId: questionId,\n name: '',\n type: questionType,\n isRequired: false,\n isPrivate: false,\n isCollapsed: false\n };\n let newQuestionA = {\n questionId: questionId,\n name: '',\n type: questionType,\n isRequired: false,\n isPrivate: false,\n isCollapsed: false,\n answers: [{ answerId: 'initialAnswer', answer: '' }]\n };\n if (questionType === 2 || questionType == 3 || questionType == 4) {\n newQuestions.splice(position, 0, newQuestionA);\n } else {\n newQuestions.splice(position, 0, newQuestion);\n }\n newState[sectionId] = {\n ...newState[sectionId],\n questions: newQuestions\n };\n return newState;\n }\n case types.FORM_QUESTION_MOVED: {\n const { sectionId, startingPosition, endingPosition } = action.payload;\n const newQuestions = [...state[sectionId].questions];\n const [removed] = newQuestions.splice(startingPosition, 1);\n newQuestions.splice(endingPosition, 0, removed);\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: newQuestions\n }\n };\n }\n case types.FORM_ANSWER_ADDED: {\n const { sectionId, questionId, answerId, answer } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: state[sectionId].questions.map((question, i) =>\n i === questionId\n ? { ...question, answers: [...(question.answers ?? []), { answerId, answer }] }\n : question\n )\n }\n };\n }\n case types.FORM_ANSWER_MOVED: {\n const { sectionId, questionId, startingPosition, endingPosition } = action.payload;\n const newQuestions = [...state[sectionId].questions];\n const newAnswers = newQuestions[questionId].answers ?? [];\n const [removed] = newAnswers.splice(startingPosition, 1);\n newAnswers.splice(endingPosition, 0, removed);\n newQuestions[questionId].answers = newAnswers;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: newQuestions\n }\n };\n }\n case types.FORM_ANSWER_EDITED: {\n const { sectionId, questionId, position, answer } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: state[sectionId].questions.map((question, i) =>\n i === questionId\n ? {\n ...question,\n answers: (question.answers ?? []).map((a, i) =>\n i === position ? { ...a, answer } : a\n )\n }\n : question\n )\n }\n };\n }\n case types.FORM_ANSWER_DELETED: {\n const { sectionId, questionId, position } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: state[sectionId].questions.map((question, i) =>\n i === questionId\n ? { ...question, answers: (question.answers ?? []).filter((_, i) => i != position) }\n : question\n )\n }\n };\n }\n case types.FORM_QUESTION_DELETED: {\n const { sectionId, questionId } = action.payload;\n const newQuestions = [...state[sectionId].questions].filter(\n (question) => question.questionId !== questionId\n );\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: newQuestions\n }\n };\n }\n case types.FORM_QUESTION_COPIED: {\n const { sectionId, questionId, newQuestion } = action.payload;\n const newState = { ...state };\n const newQuestions = newState[sectionId]?.questions;\n var oldQuestionIndex = newQuestions.length - 1;\n const oldQuestion = newQuestions.filter((question, i) => {\n if (question.questionId === questionId) {\n oldQuestionIndex = i + 1;\n return true;\n }\n return false;\n })[0];\n newQuestions.splice(oldQuestionIndex, 0, {\n ...oldQuestion,\n ...newQuestion\n });\n return {\n ...newState,\n [sectionId]: {\n ...newState[sectionId],\n questions: newQuestions\n }\n };\n }\n case types.FORM_SECTIONS_SET: {\n const { sectionsOrder, sectionsId } = action.payload;\n forEach(sectionsId, (value, key) => {\n sectionsId[key] = {\n ...sectionsId[key],\n questions: [],\n rows:\n sectionsId[key].sectionTypeId === 1\n ? []\n : sectionsId[key].sectionRows?.split('^')?.map((row) => {\n const [rowId, name] = row?.split('~');\n return { rowId, name };\n }),\n type: sectionsId[key].sectionTypeId\n };\n });\n return sectionsId ?? state;\n }\n case types.FORM_SECTION_CHANGE_COLLAPSED: {\n const { sectionId } = action.payload;\n const newState = { ...state };\n newState[sectionId] = {\n ...newState[sectionId],\n isCollapsed: !newState[sectionId].isCollapsed\n };\n return newState;\n }\n\n case types.FORM_QUESTION_SET: {\n const { sectionId, question } = action.payload;\n const newSection = { ...state };\n const newQuestion = {\n ...question,\n type: question.questionTypeId\n };\n newSection[sectionId].questions = [...newSection[sectionId].questions, newQuestion];\n return newSection;\n }\n\n case types.FORM_QUESTION_NAME_EDITED: {\n const { sectionId, questionId, questionName } = action.payload;\n const newQuestions = [...state[sectionId].questions];\n newQuestions[questionId].name = questionName;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: newQuestions\n }\n };\n }\n\n case types.FORM_QUESTION_HEIGHT_EDITED: {\n const { sectionId, questionId, height } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: [\n ...state[sectionId].questions.map((question, i) =>\n i === questionId ? { ...question, height: height } : question\n )\n ]\n }\n };\n }\n\n case types.FORM_QUESTION_CHANGE_COLLAPSED: {\n const { sectionId, questionId } = action.payload;\n return {\n ...state,\n [sectionId]: {\n ...state[sectionId],\n questions: [\n ...state[sectionId].questions.map((question, i) =>\n question.questionId === questionId\n ? { ...question, isCollapsed: !question.isCollapsed }\n : question\n )\n ]\n }\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst sectionsOrder = (state: any[] = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.FORM_SECTION_ADDED: {\n const { sectionType, position, sectionId } = action.payload;\n const newState = [...state];\n newState.splice(position, 0, sectionId);\n return newState;\n }\n\n case types.FORM_SECTION_MOVED: {\n const { startingPosition, endingPosition } = action.payload;\n const list = [...state];\n const [removed] = list.splice(startingPosition, 1);\n list.splice(endingPosition, 0, removed);\n return list;\n }\n\n case types.FORM_SECTION_DELETED: {\n const sectionId = action.payload;\n const newState = state.filter((element) => element !== sectionId);\n return newState;\n }\n\n case types.FORM_SECTION_COPIED: {\n const { sectionId, newSectionId } = action.payload;\n const newState = [...state];\n var oldSectionIndex = newState.length;\n newState.map((id, i) => {\n if (id === sectionId) oldSectionIndex = i + 1;\n });\n newState.splice(oldSectionIndex, 0, newSectionId);\n return newState;\n }\n\n case types.FORM_SECTIONS_SET: {\n const { sectionsOrder, sectionsId } = action.payload;\n return sectionsOrder ?? state;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst selectedAnswer = (state: any = null, action) => {\n switch (action.type) {\n case types.FORM_ANSWER_SELECTED: {\n const responseId = action.payload;\n return responseId;\n }\n case types.FORM_ANSWER_DESELECTED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst forms = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n sectionsOrder,\n sectionsById,\n selectedAnswer\n});\n\nexport default forms;\n\n//Own state\nexport const getOwnState = (state) => state.forms;\n\n//Information\nexport const getForm = (state, formId) => {\n const form = getOwnState(state)?.byId[formId];\n if (form) {\n const operator = form.operatorId\n ? operatorSelectors.getOperator(state, form.operatorId)\n : undefined;\n const organization = form.organizationId\n ? organizationSelectors.getOrganization(state, form.organizationId)\n : undefined;\n const division = form.divisionId\n ? divisionSelectors.getDivision(state, form.divisionId)\n : undefined;\n const subdivision = form.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, form.subdivisionId)\n : undefined;\n return {\n ...form,\n operatorName: operator?.operatorName,\n organizationName: organization?.organizationName,\n divisionName: division?.divisionName,\n subdivisionName: subdivision?.subdivisionName\n };\n } else return undefined;\n};\n\nexport const getFormSections = (state, formId) => getForm(state, formId)?.sections;\nexport const getFormSection = (state, formId, sectionId) =>\n getFormSections(state, formId)?.byId[sectionId];\nexport const getFormSectionsList = (state, formId) =>\n getFormSections(state, formId)?.order?.map((section) => getFormSection(state, formId, section));\n\nexport const getFormQuestions = (state, formId) => getForm(state, formId)?.questions;\nexport const getFormQuestion = (state, formId, questionId) =>\n getFormQuestions(state, formId).byId[questionId];\nexport const getFormQuestionsList = (state, formId) =>\n getFormQuestions(state, formId)?.order?.map((question) =>\n getFormQuestion(state, formId, question)\n );\n\nexport const getSectionsWithQuestions = (state, formId) =>\n getFormSectionsList(state, formId)?.map((section) => ({\n ...section,\n questions: getFormQuestionsList(state, formId).filter(\n (question) => question.sectionId === section.sectionId\n )\n }));\n\nexport const getFormsList = (state) =>\n getOwnState(state)\n .order?.map((id) => getForm(state, id))\n .filter((form) => form.organizationFormStatus > 0);\n\n// Filter items inside list that are undefined\nexport const getFormsSpecificList = (state, list) =>\n list.map((id) => getForm(state, id)).filter((form) => form !== undefined);\nexport const getFormsListByOrganization = (state, organizationId) => {\n return getFormsList(state).filter((form) => form.organizationId === organizationId);\n};\nexport const getFormsListByMembership = (state, membership) => {\n return getFormsList(state).filter(\n (form) =>\n membership &&\n (!membership.operatorId || membership.operatorId === form.operatorId) &&\n (!membership.organizationId || membership.organizationId === form.organizationId) &&\n (!membership.divisionId || membership.divisionId === form.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === form.subdivisionId)\n );\n};\nexport const getSelectedForms = (state) => {\n const selectedForms = getFormsList(state).filter((form) => form.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedForms.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedForms.length > 0) return selectedForms;\n};\n\nexport const getSelectedForm = (state) => {\n const selectedForms = getFormsList(state).filter((form) => form?.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedForms.length === 1) return selectedForms[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const getSelectedFormSections = (state) => {\n const selectedForm = getSelectedForm(state);\n return selectedForm?.sections?.order.map((section) => selectedForm?.sections?.byId[section]);\n};\n\nexport const getSelectedFormQuestions = (state) => {\n const selectedForm = getSelectedForm(state);\n return selectedForm?.questions?.order.map((question) => selectedForm?.questions?.byId[question]);\n};\n\n//Formulario para creaciĆ³n de formularios\nexport const getSection = (state, id) => ({\n ...getOwnState(state).sectionsById[id],\n questions: getOwnState(state).sectionsById[id]?.questions?.map((question) => ({\n ...question,\n allowOtherOption: false,\n type: question?.questionTypeId ?? question?.type\n }))\n});\nexport const getSectionOrder = (state) => getOwnState(state).sectionsOrder;\nexport const getSections = (state) =>\n getSectionOrder(state).map((section) => getSection(state, section));\nexport const getQuestions = (state) =>\n getSections(state).map((section) => ({\n sectionId: section.sectionId,\n questions: section.questions.map((question) => ({\n ...question,\n allowOtherOption: false,\n isRequired: false,\n isPrivate: false\n }))\n }));\n\nexport const getResponses = (state, formId) =>\n getOwnState(state)?.byId[formId]?.responses?.order?.map(\n (response) => getOwnState(state)?.byId[formId]?.responses?.byId[response]\n );\n\nexport const getResponse = (state, formId, responseId) => {\n const response = getOwnState(state)?.byId[formId]?.responses?.byId[responseId];\n return response?.result.map((item) => response.questions[item]);\n};\n\nexport const getSelectedResponse = (state) => getOwnState(state).selectedAnswer;\n\nexport const getSelectedResponseDetails = (state) => {\n const selectedAnswer = getOwnState(state).selectedAnswer;\n const selectedResponses = getSelectedForm(state)?.responses?.byId[selectedAnswer];\n return selectedResponses.result.map((response) => selectedResponses.questions[response]);\n};\n\n//Status of sagas\nexport const isFetchingForm = (state) => getOwnState(state).isFetching;\nexport const isFetchingListForms = (state) => getOwnState(state).isFetchingList;\nexport const isAddingForm = (state) => getOwnState(state).isAdding;\nexport const isEditingForm = (state) => getOwnState(state).isEditing;\nexport const isRemovingForm = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingFormErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListFormsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingFormErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingFormErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingFormErrors = (state) => getOwnState(state).errorRemoving;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/driver';\n\ninterface DriverDeleteRequest {\n driverId: number;\n driverName: string;\n}\ninterface DriverFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n}\ninterface DriverImagesRequest {\n driverId: number;\n}\n\ninterface ImportVehiclesFilters {\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n drivers?: String;\n}\n\nexport const getDriversListService = (request: DriverFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'drivers.driver',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getDriverInformationService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDriverInformation`, request);\n};\n\nexport const getDriverImagesService = (\n request: DriverImagesRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'drivers.driverImages',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getImages`, request);\n};\n\nexport const saveDriverService = (request: any, configActions: ConfigActions, person: any) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: person && person === true ? 'people.person' : 'drivers.driver',\n action: request.driverId ? 'Edit' : 'Create',\n name: request.driverName,\n genderType: person && person === true ? 'SingularFemale' : 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteDriverService = (\n request: DriverDeleteRequest,\n configActions: ConfigActions,\n person: any\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.driverName}`,\n object: person && person === true ? 'people.person' : 'drivers.driver',\n action: 'Delete',\n genderType: person && person === true ? 'SingularFemale' : 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const getSensorsForPeople = (configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'drivers.driver',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.get(`${baseUrl}/sensors`);\n};\n\nexport const assignDriversMassivelyService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.units',\n action: 'Edit',\n name: request.driverName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/massiveAssignDriversToUnits`, request);\n};\n\nexport const importDriversService = async (\n request: ImportVehiclesFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'drivers.driver',\n action: 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importDrivers`, request);\n};\n","import * as types from '../../types/routesAssignments';\n\nexport const startFetchingAssignments = (\n startDate,\n endDate,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_STARTED,\n payload: { startDate, endDate, organizationId, divisionId, subdivisionId }\n});\nexport const completeFetchingAssignments = (\n entitiesByDate,\n orderByDate,\n entitiesBySchedule,\n orderBySchedule\n) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_COMPLETED,\n payload: {\n orderByDate,\n entitiesByDate,\n orderBySchedule,\n entitiesBySchedule\n }\n});\nexport const failFetchingAssignments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_ASSIGNMENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditingAssignment = (assignment) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_STARTED,\n payload: assignment\n});\nexport const completeEditingAssignment = (routeAssignmentId, assignment) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_COMPLETED,\n payload: { routeAssignmentId, assignment }\n});\nexport const failEditingAssignment = (routeAssignmentId, oldAssignment, error) => ({\n type: types.ROUTES_ASSIGNMENT_EDIT_FAILED,\n payload: { routeAssignmentId, oldAssignment, error }\n});\n\nexport const startRemovingAssignment = (routeAssignmentId) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_STARTED,\n payload: {\n routeAssignmentId\n }\n});\nexport const completeRemovingAssignment = (routeAssignmentId) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_COMPLETED,\n payload: {\n routeAssignmentId\n }\n});\nexport const failRemovingAssignment = (routeAssignmentId, error) => ({\n type: types.ROUTES_ASSIGNMENT_REMOVE_FAILED,\n payload: {\n routeAssignmentId,\n error\n }\n});\n\nexport const startImportingRouteAssignments = (routeAssignments) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_STARTED,\n payload: {\n routeAssignments\n }\n});\nexport const completeImportingRouteAssignments = (entitiesByDate, orderByDate) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_COMPLETED,\n payload: {\n entitiesByDate,\n orderByDate\n }\n});\nexport const failImportingRouteAssignments = (error) => ({\n type: types.ROUTES_ASSIGNMENTS_IMPORT_FAILED,\n payload: {\n error\n }\n});\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/group';\n\ninterface GroupFilters {\n userFetchDate?: Date;\n groupId?: number;\n userName?: string;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n}\n\ninterface GroupDeleteRequest {\n groupId?: number;\n groupName?: number;\n}\n\ninterface SaveGroupRequest {\n groupName: string;\n owners: string;\n param?: any;\n entities?: string;\n entityType?: string;\n}\n\nexport const getGroupsListService = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getAllEntitiesInGroupService = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAllEntitiesInGroup`, request);\n};\n\nexport const getAvailableUsersForGroup = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableUsers',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableUsersForGroup`, request);\n};\n\nexport const getAvailableLocationsForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableLocations',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableLocationsForGroup`, request);\n};\n\nexport const getAvailableWorkplansForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableWorkplans',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableWorkPlansForGroup`, request);\n};\n\nexport const getAvailableUnitsForGroup = (request: GroupFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableUnitsForGroup`, request);\n};\n\nexport const getAvailableGeofencesForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableGeofencesForGroup`, request);\n};\n\nexport const getAvailableDriversForGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.availableDrivers',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAvailableDriversForGroup`, request);\n};\n\nexport const saveGroupService = (request: SaveGroupRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Create',\n name: request.groupName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/create`, request);\n};\n\nexport const saveGroupWithEntitiesService = (\n request: SaveGroupRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'groups.group',\n action: 'Create',\n name: request.groupName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/createWithEntities`, request);\n};\n\nexport const deleteGroupService = (request: GroupDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.groupName}`,\n object: 'groups.group',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const leaveGroupService = (request: GroupDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.groupName}`,\n object: 'groups.group',\n action: 'Leave',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/leaveGroup`, request);\n};\n\nexport const verifyUserExistsAndNotInGroup = (\n request: GroupFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/verifyUserExistsAndNotInGroup`, request);\n};\n\nexport const pinUserGroupIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/pinUserGroupId`, request);\n};\n\nexport const getGroupByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","import { SaveSparePartCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/spareParts';\n\nexport const startFetchingSpareParts = (filters = {}) => ({\n type: types.SPAREPARTS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingSpareParts = (entities, order) => ({\n type: types.SPAREPARTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingSpareParts = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SPAREPARTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSpareParts = (entityTypeId) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingSpareParts = (entities, order) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingSpareParts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SPAREPARTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSparePart = (sparePart: SaveSparePartCategoryDTO) => ({\n type: types.SPAREPART_ADD_STARTED,\n payload: sparePart\n});\n\nexport const completeAddingSparePart = (id: string, oldId: string, sparePart) => ({\n type: types.SPAREPART_ADD_COMPLETED,\n payload: { id, oldId, sparePart }\n});\n\nexport const failAddingSparePart = (oldId, error) => ({\n type: types.SPAREPART_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSparePart = (sparePart: SaveSparePartCategoryDTO) => ({\n type: types.SPAREPART_EDIT_STARTED,\n payload: sparePart\n});\n\nexport const completeEditingSparePart = (sparePart) => ({\n type: types.SPAREPART_EDIT_COMPLETED,\n payload: sparePart\n});\n\nexport const failEditingSparePart = (oldSparePart, error) => ({\n type: types.SPAREPART_EDIT_FAILED,\n payload: {\n oldSparePart,\n error\n }\n});\n\nexport const startRemovingSparePart = (request: {\n sparePartId: number;\n sparePartName: string;\n}) => ({\n type: types.SPAREPART_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingSparePart = (id) => ({\n type: types.SPAREPART_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingSparePart = (id, error) => ({\n type: types.SPAREPART_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","export const SENSOR_MEASURES_FETCH_STARTED = 'SENSOR_MEASURES_FETCH_STARTED';\nexport const SENSOR_MEASURES_FETCH_COMPLETED = 'SENSOR_MEASURES_FETCH_COMPLETED';\nexport const SENSOR_MEASURES_FETCH_FAILED = 'SENSOR_MEASURES_FETCH_FAILED';\n\nexport const SENSOR_MEASURES_CLEAR = 'SENSOR_MEASURES_CLEAR';\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRoutesListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.route',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const deleteRouteService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.routeName}`,\n object: 'routes.route',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const deleteRoutesService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: '',\n object: 'routes.routes',\n action: 'Delete',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteMultiple`, request);\n};\n\nexport const saveRouteService = (request: any, configActions: ConfigActions, isNew: boolean) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.route.routeName}`,\n object: 'routes.route',\n action: isNew ? 'Create' : 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const getAlternateRoutesService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n\n return httpWebtrack.post(`${baseUrl}/getAlternateRoutes`, request);\n};\n\nexport const getRouteService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.route',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getRoute`, request);\n};\n","import { SaveWorkmanshipCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/workmanship';\n\nexport const startFetchingWorkmanships = (filters = {}) => ({\n type: types.WORKMANSHIPS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingWorkmanships = (entities, order) => ({\n type: types.WORKMANSHIPS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingWorkmanships = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKMANSHIPS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingWorkmanships = (entityTypeId) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingWorkmanships = (entities, order) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingWorkmanships = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKMANSHIPS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingWorkmanship = (workmanship: SaveWorkmanshipCategoryDTO) => ({\n type: types.WORKMANSHIP_ADD_STARTED,\n payload: workmanship\n});\n\nexport const completeAddingWorkmanship = (id: string, oldId: string, workmanship) => ({\n type: types.WORKMANSHIP_ADD_COMPLETED,\n payload: { id, oldId, workmanship }\n});\n\nexport const failAddingWorkmanship = (oldId, error) => ({\n type: types.WORKMANSHIP_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingWorkmanship = (workmanship: SaveWorkmanshipCategoryDTO) => ({\n type: types.WORKMANSHIP_EDIT_STARTED,\n payload: workmanship\n});\n\nexport const completeEditingWorkmanship = (workmanship) => ({\n type: types.WORKMANSHIP_EDIT_COMPLETED,\n payload: workmanship\n});\n\nexport const failEditingWorkmanship = (oldWorkmanship, error) => ({\n type: types.WORKMANSHIP_EDIT_FAILED,\n payload: {\n oldWorkmanship,\n error\n }\n});\n\nexport const startRemovingWorkmanship = (request: {\n workmanshipId: number;\n description: string;\n}) => ({\n type: types.WORKMANSHIP_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingWorkmanship = (id) => ({\n type: types.WORKMANSHIP_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingWorkmanship = (id, error) => ({\n type: types.WORKMANSHIP_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import { SaveProviderCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/providers';\n\nexport const startFetchingProviders = (filters = {}) => ({\n type: types.PROVIDERS_FETCH_STARTED2,\n payload: filters\n});\n\nexport const completeFetchingProviders = (entities, order) => ({\n type: types.PROVIDERS_FETCH_COMPLETED2,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingProviders = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.PROVIDERS_FETCH_FAILED2,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingProviders = (entityTypeId) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_STARTED2,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingProviders = (entities, order) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_COMPLETED2,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingProviders = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.PROVIDERS_PARTIAL_FETCH_FAILED2,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingProvider = (provider: SaveProviderCategoryDTO) => ({\n type: types.PROVIDER_ADD_STARTED,\n payload: provider\n});\n\nexport const completeAddingProvider = (id: string, oldId: string, provider) => ({\n type: types.PROVIDER_ADD_COMPLETED,\n payload: { id, oldId, provider }\n});\n\nexport const failAddingProvider = (oldId, error) => ({\n type: types.PROVIDER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingProvider = (provider: SaveProviderCategoryDTO) => ({\n type: types.PROVIDER_EDIT_STARTED,\n payload: provider\n});\n\nexport const completeEditingProvider = (provider) => ({\n type: types.PROVIDER_EDIT_COMPLETED,\n payload: provider\n});\n\nexport const failEditingProvider = (oldProvider, error) => ({\n type: types.PROVIDER_EDIT_FAILED,\n payload: {\n oldProvider,\n error\n }\n});\n\nexport const startRemovingProvider = (request: { providerId: number; providerName: string }) => ({\n type: types.PROVIDER_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingProvider = (id) => ({\n type: types.PROVIDER_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingProvider = (id, error) => ({\n type: types.PROVIDER_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import React, { useState } from 'react';\nimport { Button, Tooltip } from 'reactstrap';\nimport { useSelector } from 'react-redux';\nimport { Trash } from 'react-feather';\nimport { FormattedMessage } from 'react-intl';\n\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n isDisabled?: boolean;\n id?: any;\n permissions?: any[];\n handleClick: any;\n tooltipLabel?: string;\n tooltipMessage?: string;\n visible?: boolean;\n}\n\nconst DeleteButton = (props: Props) => {\n const store = useSelector((state) => state);\n const {\n id = '',\n isDisabled,\n handleClick,\n tooltipLabel,\n tooltipMessage,\n permissions,\n visible = true\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n handleClick()}\n >\n \n {tooltipMessage && (\n \n \n \n )}\n \n ) : null;\n};\n\nDeleteButton.defaultProps = {\n isDisabled: false\n};\n\nexport default DeleteButton;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport { Button, Row, Col } from 'reactstrap';\nimport SlidingPane from 'react-sliding-pane';\nimport Table from '../../components/Table';\nimport { useForm } from 'react-hook-form';\nimport { FormattedMessage } from 'react-intl';\nimport { Fragment, useEffect, useRef, useState } from 'react';\nimport WebtrackCustomInput from '../WebtrackCustomInput';\n\ninterface Props {\n title: any;\n isOpenSlidingPane: any;\n closeSlidingPaneForm: any;\n onClickCancelButton?: any;\n idTable?: string;\n subtitle?: any;\n confirmText?: any;\n useTable?: boolean;\n heightTable?: number;\n columnsTable?: any[];\n selected?: any;\n isInMap?: boolean;\n changeSelected?: Function;\n dataTable?: any[];\n onSelectTable?: any;\n onDeselectTable?: any;\n width?: string;\n inputs?: any[];\n hasButtonSubmit?: boolean;\n hasButtonCancel?: boolean;\n action?: any;\n control?: any;\n handleSubmit?: Function;\n change?: any;\n onClose?: any;\n timeout?: number;\n}\n\nconst SlidingPaneForm = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n idTable,\n title,\n subtitle,\n confirmText,\n useTable,\n heightTable,\n columnsTable,\n selected,\n changeSelected,\n dataTable,\n onSelectTable,\n onDeselectTable,\n isOpenSlidingPane,\n closeSlidingPaneForm,\n inputs,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n width,\n control,\n handleSubmit,\n change,\n onClose,\n isInMap = false,\n onClickCancelButton,\n timeout\n } = props;\n\n const { control: innerControl, handleSubmit: innerHandleSubmit, watch } = useForm();\n const [isInnerForm, setIsInnerForm] = useState();\n\n const formValues = useRef();\n\n useEffect(() => {\n formValues.current = watch();\n }, [watch()]);\n\n useEffect(() => {\n setIsInnerForm(!(control && handleSubmit));\n }, []);\n\n const closeSlidingPane = (saving) => {\n closeSlidingPaneForm();\n if (onClose != null && !saving) onClose(); //Close without saving\n };\n\n const save = (values) => {\n closeSlidingPane(true);\n action(values);\n };\n\n return (\n closeSlidingPane(false)}\n >\n {useTable && columnsTable && dataTable && (\n <>\n {\n if (changeSelected) changeSelected(event);\n }}\n onSelect={(event: any) => {\n if (onSelectTable) onSelectTable(event);\n }}\n onDeselect={(event: any) => {\n if (onDeselectTable) onDeselectTable(event);\n }}\n />\n
\n
\n
\n \n )}\n \n {inputs &&\n inputs\n .filter((input) => input)\n .map((input, i) => {\n let WrapperInput = Fragment;\n var wrapperInputProps = {\n key: i.toString()\n };\n if (input.type !== 'membership') {\n WrapperInput = Col;\n wrapperInputProps['sm'] = input.sm ? input.sm : '12';\n wrapperInputProps['className'] = input.type === 'membership' ? 'pl-0 pr-0' : '';\n }\n\n return (\n \n {input.subtitle && (\n
\n {input.subtitle}\n
\n )}\n \n
\n );\n })}\n \n \n {hasButtonSubmit && (\n {\n if (timeout) setTimeout(() => save(formValues.current), timeout);\n else save(values);\n })\n : handleSubmit &&\n handleSubmit((values) => {\n if (timeout) setTimeout(() => save(formValues.current), timeout);\n else save(values);\n })\n }\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n {\n closeSlidingPane(false);\n if (onClickCancelButton) onClickCancelButton();\n }}\n >\n \n \n )}\n \n \n
\n \n );\n};\n\nSlidingPaneForm.defaultProps = {\n inputs: [],\n useTable: false,\n heightTable: 200,\n hasButtonSubmit: true,\n hasButtonCancel: true,\n columnsTable: [],\n dataTable: []\n};\n\nexport default SlidingPaneForm;\n","/* -------------------------------------------------------------------------- */\n/* LocationDropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente utiliza DropdownInput para generar un LocationDropdownInput\n\nimport { env } from 'env';\nimport { useEffect, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport * as authSelectors from 'redux/reducers/auth';\nimport { DefaultRootState } from 'redux/storeConfig/types';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as locationActions from 'views/screens/Locations/actions';\nimport locationsPermissions from 'views/screens/Locations/permissions';\nimport * as locationSelectors from 'views/screens/Locations/reducers';\nimport SlidingPaneEditLocation from 'views/screens/Locations/views/SlidingPaneEditLocation';\nimport DropdownInput from '../DropdownInput';\nimport GoogleLocationsDropdownInput from '../GoogleLocationDropDown';\nconst logo = require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logo.svg`).default;\nconst LocationsDropdownInput = (props) => {\n const {\n field,\n byLocationClassId,\n locationsFilters,\n useGoogleLocations = false,\n createFromGoogleLocations = false,\n useLabel = true,\n notAssigned = false,\n customerId,\n officeId,\n initialLocationType = 1,\n showOrganization = false\n } = props;\n\n const dispatch = useDispatch();\n const intl = useIntl();\n\n const [googlePlaceId, setGooglePlaceId] = useState(undefined);\n const [isOpenSlidingPane, setIsOpenSlidingPane] = useState(false);\n const [editingLocation, setEditingLocation] = useState({});\n const [locationType, setLocationType] = useState(initialLocationType);\n\n const { locations, isFetching, isAdding, locationByPlaceId, user, store } = useSelector(\n (state: DefaultRootState) => ({\n locations: byLocationClassId\n ? locationSelectors.getLocationsListByLocationClassId(state, byLocationClassId)\n : locationSelectors.getLocationsList(state),\n isFetching:\n locationSelectors.isFetchingListLocations(state) ||\n locationSelectors.isPartialFetchingListLocations(state),\n isAdding: locationSelectors.isAddingLocation(state),\n locationByPlaceId: locationSelectors.getLocationByGooglePlaceId(state, googlePlaceId),\n user: authSelectors.getAuthUser(state),\n store: state\n })\n );\n //Reset value with initial when values are loaded from db\n const [resetValue, setResetValue] = useState(Date.now());\n const resetDropdown = () => {\n setResetValue(Date.now());\n };\n\n // useScript(\n // `https://maps.googleapis.com/maps/api/js?key=${user.googleMapsApiKey}&libraries=places`\n // );\n\n //Update reactselect values of locations when fetched is finished\n useEffect(() => {\n if (!isFetching) {\n resetDropdown();\n }\n }, [isFetching, props?.options?.length]);\n\n useEffect(() => {\n if (field.value?.googleLocation && createFromGoogleLocations) {\n setIsOpenSlidingPane(true);\n setEditingLocation(field.value);\n }\n }, [field.value, createFromGoogleLocations]);\n\n useEffect(() => {\n if (!isAdding && googlePlaceId && locationByPlaceId?.locationId) {\n setLocationType(1);\n setGooglePlaceId(undefined);\n field.onChange(locationByPlaceId.locationId);\n }\n }, [isAdding]);\n\n return (\n <>\n {!props.options && }\n {locationType === 1 && (\n : null\n }\n options={\n props.options ||\n (notAssigned\n ? locations.filter(\n (location) =>\n (!location.customerId && !location.officeId) ||\n (location.customerId === customerId && location.officeId === officeId)\n )\n : locations\n ).map((location) => {\n return {\n ...location,\n icon: showOrganization ? `${location.organizationName}` : undefined,\n id: location.locationId,\n value: location.locationId,\n label: location.locationName,\n label_intl: location.locationName\n };\n })\n }\n prependcomponent={\n useGoogleLocations &&\n authSelectors.getAuthUserHasPermissionsAny(store, [\n locationsPermissions.searchExternalLocations\n ]) && (\n setLocationType(2)}\n >\n \n {intl.formatMessage({ id: 'locations.systemLocations' })}\n \n \"logo\"\n \n )\n }\n appendcomponent={props.appendcomponent}\n />\n )}\n {locationType === 2 && useGoogleLocations && (\n setLocationType(1)} />\n )}\n setIsOpenSlidingPane(false)}\n editingLocation={editingLocation}\n onClose={() => {\n setEditingLocation(undefined);\n setLocationType(1);\n field.onChange(undefined);\n }}\n action={(values) => {\n setGooglePlaceId(editingLocation.locationId);\n dispatch(\n locationActions.startAddingLocation({\n ...editingLocation,\n googleLocation: {\n ...editingLocation.googleLocation,\n googlePlaceId: editingLocation.locationId\n },\n ...values,\n ...values.membership,\n enableDispatch: 0,\n dispatchNotificationFreq: 0,\n dispatchEmails: null,\n dispatchCompletionType: 0,\n locationTypeId: 0\n })\n );\n }}\n />\n \n );\n};\n\nexport default LocationsDropdownInput;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/organization';\n\ninterface ConsolidableEventsRequest {\n organizationId: number;\n}\n\nexport interface loginextConfiguration {\n organizationId: number;\n organizationName: string;\n loginextEffectiveVisitingTime: number;\n loginextDeliveryDelay: number;\n}\n\nexport const getOrganizationsListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'organizations.organization',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getConsolidableEvents = async (\n request: ConsolidableEventsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'organizations.consolidatedEvents',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/GetConsolidableEvents`, request);\n};\n\nexport const getDowntimeReasons = async (\n request: ConsolidableEventsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'organizations.downtimeReasons',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDowntimeReasons`, request);\n};\n\nexport const deleteOrganizationService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'organizations.organization',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const saveOrganizationService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'organizations.organization',\n action: request.organizationId ? 'Edit' : 'Create',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const getContactsService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'organizations.organization',\n action: 'Get',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getContacts`, request);\n};\n\nexport const saveLoginextConfigurationService = (\n request: loginextConfiguration,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.organizationName}`,\n object: 'organizations.activeLoginext',\n action: 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/saveLoginextConfiguration`, request);\n};\n","import { combineReducers } from 'redux';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\nimport { CategoriesCatalogDTO } from 'views/screens/vehicleMaintenance/types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CATEGORIES_FETCH_COMPLETED:\n case types.CATEGORIES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((categoryId) => {\n newState[categoryId] = {\n isSelected: false,\n ...state[categoryId],\n ...entities[categoryId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CATEGORY_ADD_COMPLETED: {\n const { id, oldId, category } = action.payload;\n const newState = omit(state, oldId);\n newState[id] = {\n ...category,\n isConfirmed: true,\n isSelected: false\n };\n return newState;\n }\n\n case types.CATEGORY_EDIT_COMPLETED: {\n const category = action.payload;\n const id = category.categoryId;\n const newState = {\n ...state,\n [id]: {\n ...omit(state[id], ['oldCategory']),\n ...omit(category, ['oldCategory']),\n isConfirmed: true\n }\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.CATEGORY_ADD_STARTED: {\n const category = action.payload;\n const newState = { ...state };\n newState[category.tempId] = {\n isSelected: false,\n ...category,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.CATEGORY_EDIT_STARTED: {\n const category = action.payload;\n const id = category.categoryId;\n const newState = {\n ...state,\n [id]: {\n ...state[id],\n oldCategory: state[id],\n isConfirmed: false,\n ...category\n }\n };\n return newState;\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.CATEGORY_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.CATEGORY_EDIT_FAILED: {\n const { oldCategory } = action.payload;\n return {\n ...state,\n [oldCategory.categoryId]: {\n ...omit(state[oldCategory.categoryId], ['oldCategory']),\n ...oldCategory,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.CATEGORY_REMOVE_COMPLETED: {\n const { id } = action.payload;\n return omit(state, id);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CATEGORIES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.CATEGORIES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.CATEGORY_ADD_COMPLETED: {\n const { id, oldId } = action.payload;\n return state.map((categoryId) => (categoryId === oldId ? id : categoryId));\n }\n\n case types.CATEGORY_REMOVE_COMPLETED: {\n const { id } = action.payload;\n return state.filter((categoryIdState) => categoryIdState !== id);\n }\n\n //CASE ADD STARTED\n case types.CATEGORY_ADD_STARTED: {\n const category = action.payload;\n return [...state, category.tempId];\n }\n\n //CASE ADD FAILED\n case types.CATEGORY_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((categoryIdState) => categoryIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORIES_FETCH_STARTED: {\n return true;\n }\n case types.CATEGORIES_FETCH_COMPLETED:\n case types.CATEGORIES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORIES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.CATEGORIES_PARTIAL_FETCH_COMPLETED:\n case types.CATEGORIES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORY_ADD_STARTED: {\n return true;\n }\n case types.CATEGORY_ADD_COMPLETED:\n case types.CATEGORY_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORY_EDIT_STARTED: {\n return true;\n }\n case types.CATEGORY_EDIT_COMPLETED:\n case types.CATEGORY_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORY_REMOVE_STARTED: {\n return true;\n }\n case types.CATEGORY_REMOVE_COMPLETED:\n case types.CATEGORY_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORIES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORIES_FETCH_STARTED:\n case types.CATEGORIES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORIES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORIES_PARTIAL_FETCH_STARTED:\n case types.CATEGORIES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORY_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORY_ADD_STARTED:\n case types.CATEGORY_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORY_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORY_EDIT_STARTED:\n case types.CATEGORY_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.CATEGORY_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CATEGORY_REMOVE_STARTED:\n case types.CATEGORY_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case types.CATEGORIES_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst categories = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched\n});\n\nexport default categories;\n\n//Own state\nexport const getOwnState = (state) => state.categories;\n\n//Information\nexport const getCategory = (state, id) => {\n const category = getOwnState(state).byId[id];\n\n return {\n ...category\n };\n};\n\nexport const getCategoriesList = (state): Array =>\n getOwnState(state).order?.map((id) => getCategory(state, id));\n\nexport const getCategoriesListByMembership = (state, membership) => {\n //Se filtra por divisionId\n if (membership.organizationId) {\n return getCategoriesList(state).filter(\n (category) => category.organizationId === membership.organizationId\n );\n }\n //Si no se ha seleccionado una divisiĆ³n se devuelve la lista completa\n else return getCategoriesList(state);\n};\n\n//Status of sagas\nexport const isPartialFetchingListCategories = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListCategories = (state) => getOwnState(state).isFetchingList;\nexport const haveCategoriesBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingCategory = (state) => getOwnState(state).isAdding;\nexport const isEditingCategory = (state) => getOwnState(state).isEditing;\nexport const isRemovingCategory = (state) => getOwnState(state).isRemoving;\n//Errors\nexport const getPartialFetchingListCategoriesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListCategoriesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingCategoryErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingCategoryErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingCategoryErrors = (state) => getOwnState(state).errorRemoving;\n","import { List, Plus } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport operatorPaths from 'views/screens/Operators/paths';\nimport organizationPaths from 'views/screens/Organizations/paths';\nimport agentPaths from 'views/screens/Agents/paths';\nimport divisionPaths from 'views/screens/Divisions/paths';\nimport subdivisionPaths from 'views/screens/Subdivisions/paths';\nimport serviceClassPaths from 'views/screens/ServiceClasses/paths';\nimport operatorPermissions from 'views/screens/Operators/permissions';\nimport organizationPermissions from 'views/screens/Organizations/permissions';\nimport agentPermissions from 'views/screens/Agents/permissions';\nimport divisionPermissions from 'views/screens/Divisions/permissions';\nimport subdivisionPermissions from 'views/screens/Subdivisions/permissions';\nimport serviceClassPermissions from 'views/screens/ServiceClasses/permissions';\n\nexport default [\n {\n id: 'afiliations',\n title: 'sidebar.affiliations',\n icon: ,\n permissions: [\n operatorPermissions.operatorList,\n organizationPermissions.organizationCatalog,\n divisionPermissions.listDivision,\n subdivisionPermissions.subdivisionCatalog,\n serviceClassPermissions.listServiceClass,\n agentPermissions.agentList\n ],\n iconName: 'Afiliaciones',\n children: [\n {\n id: 'operators',\n title: 'operators.operators',\n icon: ,\n iconName: 'Operator',\n permissions: [operatorPermissions.operatorList],\n accessLevels: [9, 15],\n navLink: operatorPaths.listOperator,\n screenId: screens.OPERATOR\n },\n {\n id: 'agent',\n title: 'agents.agent',\n icon: ,\n permissions: [agentPermissions.agentList],\n accessLevels: [9, 13, 15],\n iconName: 'noun_Call-Center_2560173',\n navLink: agentPaths.listAgent,\n screenId: screens.AGENT\n },\n {\n id: 'organization',\n title: 'organizations.organization',\n icon: ,\n permissions: [organizationPermissions.organizationCatalog],\n accessLevels: [9, 11, 13, 15],\n iconName: 'Organization',\n navLink: organizationPaths.listOrganization,\n screenId: screens.ORGANIZATION\n },\n {\n id: 'division',\n title: 'divisions.division',\n icon: ,\n permissions: [divisionPermissions.listDivision],\n accessLevels: [7, 9, 11, 13, 15],\n iconName: 'Division',\n navLink: divisionPaths.listDivision,\n screenId: screens.DIVISION\n },\n {\n id: 'subdivision',\n title: 'subdivisions.subdivision',\n icon: ,\n permissions: [subdivisionPermissions.subdivisionCatalog],\n accessLevels: [4, 7, 9, 11, 13, 15],\n iconName: 'Subdivision',\n navLink: subdivisionPaths.listSubdivision,\n screenId: screens.SUBDIVISION\n },\n {\n id: 'service-class',\n title: 'serviceClasses.serviceClasses',\n icon: ,\n permissions: [serviceClassPermissions.listServiceClass],\n accessLevels: [9, 13, 15],\n iconName: 'noun_service_1318655',\n navLink: serviceClassPaths.listServiceClass,\n screenId: screens.SERVICE_CLASSES\n }\n ]\n }\n];\n","import { List, Plus } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport modulePaths from 'views/screens/Modules/paths';\nimport vehiclePaths from 'views/screens/Vehicles/paths';\nimport simPaths from 'views/screens/SIMs/paths';\nimport sensorPaths from 'views/screens/Sensors/paths';\nimport assetPaths from 'views/screens/Assets/paths';\nimport modulePermissions from 'views/screens/Modules/permissions';\nimport vehiclePermissions from 'views/screens/Vehicles/permissions';\nimport simPermissions from 'views/screens/SIMs/permissions';\nimport sensorPermissions from 'views/screens/Sensors/permissions';\nimport assetPermissions from 'views/screens/Assets/permissions';\n\nexport default [\n {\n id: 'inventories',\n title: 'sidebar.inventories',\n icon: ,\n permissions: [],\n iconName: 'inbox-filled',\n children: [\n {\n id: 'modules',\n title: 'modules.modules',\n icon: ,\n permissions: [modulePermissions.listModule],\n iconName: 'noun_GPS_3452904',\n navLink: modulePaths.listModule,\n screenId: screens.DEVICES\n },\n {\n id: 'sims',\n title: 'sims.sim',\n icon: ,\n permissions: [simPermissions.listSim],\n iconName: 'noun_SIM_3331582-1',\n navLink: simPaths.listSim,\n screenId: screens.SIMS\n },\n {\n id: 'sensors',\n title: 'sensors.sensors',\n icon: ,\n permissions: [sensorPermissions.listSensor],\n iconName: 'noun_proximity-sensor_614178',\n navLink: sensorPaths.listSensor,\n screenId: screens.SENSORS\n },\n {\n id: 'assets',\n title: 'assets.assets',\n icon: ,\n permissions: [assetPermissions.assetCatalog],\n iconName: 'noun_Check_3687547',\n navLink: assetPaths.listAsset,\n screenId: screens.ASSETS\n },\n {\n id: 'vehicles',\n title: 'vehicles.vehicles',\n icon: ,\n permissions: [vehiclePermissions.listVehicle],\n iconName: 'noun_Wheel_4039720',\n navLink: vehiclePaths.listVehicle,\n screenId: screens.VEHICLES\n }\n ]\n }\n];\n","import { Calendar } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from 'views/screens/Schedules/permissions';\nimport paths from 'views/screens/Schedules/paths';\n\nexport default [\n {\n id: 'schedules',\n title: 'schedules.scheduling',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'noun_schedule_2522607',\n children: [\n {\n id: 'shiftListScreen',\n title: 'schedules.shift',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'turno',\n navLink: paths.listShift,\n screenId: screens.SHIFT\n },\n {\n id: 'triggerListScreen',\n title: 'schedules.trigger',\n icon: ,\n permissions: [permissions.schedule],\n iconName: 'disparador',\n navLink: paths.listTrigger,\n screenId: screens.TRIGGER\n }\n ]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Groups/paths';\nimport permissions from 'views/screens/Groups/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'groups',\n title: 'groups.groups',\n icon: ,\n permissions: [permissions.listGroup],\n iconName: 'Groups',\n navLink: paths.listGroup,\n screenId: screens.GROUPS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Drivers/paths';\nimport permissions from 'views/screens/Drivers/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'drivers',\n title: 'drivers.drivers',\n icon: ,\n permissions: [permissions.listDrivers],\n iconName: 'noun_steering_790455',\n navLink: paths.listDrivers,\n screenId: screens.DRIVERS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/People/paths';\nimport permissions from 'views/screens/People/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'people',\n title: 'people.people',\n icon: ,\n permissions: [permissions.listPerson],\n iconName: 'noun_people_1850291',\n navLink: paths.listPeople,\n screenId: screens.PEOPLE\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Users/paths';\nimport permissions from 'views/screens/Users/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'users',\n title: 'users.users',\n icon: ,\n permissions: [permissions.listUsers],\n iconName: 'noun_User_2905483',\n navLink: paths.listUsers,\n screenId: screens.USERS\n }\n];\n","import paths from 'views/screens/Customers/paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from 'views/screens/Customers/permissions';\nimport Icon from '../../utility/icomoon';\n\nexport default [\n {\n id: 'customers',\n title: 'customers.customers',\n icon: ,\n permissions: [permissions.listCustomers],\n iconName: 'Customers',\n navLink: paths.listCustomer,\n screenId: screens.CUSTOMERS\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'contacts',\n title: 'contacts.contacts2',\n permissions: ['CO001'],\n iconName: 'Contacts',\n navLink: paths.listContact,\n screenId: screens.CONTACTS\n }\n];\n","import { List, MapPin } from 'react-feather';\nimport paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'offices',\n title: 'offices.offices',\n iconName: 'Branch',\n permissions: [permissions.listOffices],\n navLink: paths.listOffice,\n screenId: screens.LOCATIONS_CATALOG\n }\n];\n","import drivers from './drivers';\nimport people from './people';\nimport users from './users';\nimport customers from './customers';\nimport contacts from 'views/screens/Contacts/sidebarLayout';\nimport offices from 'views/screens/Offices/sidebarLayout';\n\nexport default [\n {\n id: 'catalogs',\n title: 'sidebar.catalogs',\n icon: 'Users',\n permissions: [],\n iconName: 'Users',\n children: [...users, ...drivers, ...people, ...contacts, ...customers, ...offices]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Notifications/paths';\nimport permissions from 'views/screens/Notifications/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'notifications',\n title: 'notifications.notifications',\n icon: ,\n permissions: [\n permissions.listEmailNotification,\n permissions.listConsoleNotifications,\n permissions.listWebServiceNotification\n ],\n iconName: 'Bell',\n children: [\n {\n id: 'emailNotificationScreen',\n title: 'notifications.email',\n icon: ,\n permissions: [permissions.listEmailNotification],\n iconName: 'noun_Mail_1707176',\n navLink: paths.listEmailNotifications,\n screenId: screens.EMAIL_NOTIFICATIONS\n },\n {\n id: 'consoleNotificationScreen',\n title: 'notifications.console',\n icon: ,\n permissions: [permissions.listConsoleNotification],\n iconName: 'Consola',\n navLink: paths.listConsoleNotifications,\n screenId: screens.CONSOLE_NOTIFICATIONS\n },\n {\n id: 'webNotificationScreen',\n title: 'notifications.webService',\n icon: ,\n permissions: [permissions.listWebServiceNotification],\n iconName: 'WebService',\n navLink: paths.listWebServiceNotifications,\n screenId: screens.WEB_SERVICE_NOTIFICATIONS\n }\n ]\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'forms',\n title: 'forms.forms',\n permissions: [permissions.listForms, permissions.answersFormReport],\n iconName: 'Formularios',\n children: [\n {\n id: 'listFormScreen',\n title: 'forms.catalog',\n permissions: [permissions.listForms],\n iconName: 'Catalog',\n navLink: paths.listForms,\n screenId: screens.FORMS_CATALOG\n },\n {\n id: 'monitorFormScreen',\n title: 'forms.monitoring',\n permissions: [permissions.answersFormReport],\n iconName: 'Catalog',\n navLink: paths.answersReportForms,\n screenId: screens.ANSWERS_FORMS\n }\n ]\n }\n];\n","import affiliations from './affiliations';\nimport inventories from './inventories';\nimport schedules from './schedules';\nimport groups from './groups';\nimport catalogs from './catalogs';\nimport notifications from './notifications';\nimport forms from 'views/screens/Forms/sidebarLayout';\n\nexport default [\n {\n header: 'sidebar.administration',\n iconName: 'Sliders',\n children: [\n ...affiliations,\n ...groups,\n ...schedules,\n ...catalogs,\n ...forms,\n ...inventories,\n ...notifications\n ] //Only to check permission in children inside\n },\n ...affiliations,\n ...groups,\n ...schedules,\n ...catalogs,\n ...forms,\n ...inventories,\n ...notifications\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'workplans',\n title: 'workplans.workplan',\n permissions: [\n permissions.viewWorkplanCatalog,\n permissions.viewWorkplanMonitor,\n permissions.viewWorkplanReport,\n permissions.assignWorkplan\n ],\n iconName: 'Workplan',\n children: [\n {\n id: 'workplansListScreen',\n title: 'sidebar.catalog',\n permissions: [permissions.viewWorkplanCatalog],\n iconName: 'WorkplanCatalog',\n navLink: paths.workplanList,\n screenId: screens.WORK_PLAN_CATALOG\n },\n {\n id: 'workplansMonitorScreen',\n title: 'sidebar.monitor',\n permissions: [permissions.viewWorkplanMonitor],\n iconName: 'WorkplanMonitor',\n navLink: paths.workplanMonitor,\n screenId: screens.WORK_PLAN_MONITOR\n },\n {\n id: 'workplansReportScreen',\n title: 'sidebar.report',\n permissions: [permissions.viewWorkplanReport],\n iconName: 'WorkplanReport',\n navLink: paths.workplanReport,\n screenId: screens.WORK_PLAN_REPORT\n },\n {\n id: 'scheduledWorkplanCatalogScreen',\n title: 'workplans.scheduledPlans',\n permissions: [permissions.scheduledWorkplanList],\n iconName: 'WorkplanReport',\n navLink: paths.scheduledWorkplan,\n screenId: screens.SCHEDULED_WORKPLANS\n },\n {\n id: 'workplansAssignUnitScreen',\n title: 'sidebar.assignWorkplan',\n permissions: [permissions.viewWorkplanModule, permissions.assignWorkplan],\n iconName: 'PlusSquare',\n navLink: paths.workplanAssignUnit,\n screenId: screens.ASSIGN_WORK_PLAN\n }\n /* {\n id: 'WorkplanImport',\n title: 'common.import',\n permissions: [],\n iconName: 'UploadCloud',\n navLink: paths.workplanImport,\n screenId: screens.WORKPLAN_IMPORT\n } */\n ]\n }\n];\n","import * as screens from '@core/layouts/components/menu/screens';\nimport paths from './paths';\nimport permissions from './permissions';\n\nexport default [\n {\n id: 'routes',\n title: 'routes.logisticRoute',\n permissions: [\n permissions.viewRouteCatalog,\n permissions.viewRouteMonitor,\n permissions.viewRouteReport,\n permissions.assignRoute\n ],\n iconName: 'Route',\n children: [\n {\n id: 'routesListScreen',\n title: 'sidebar.catalog',\n permissions: [permissions.viewRouteCatalog],\n iconName: 'RouteCatalog',\n navLink: paths.routeList,\n screenId: screens.LOGISTIC_ROUTE_CATALOG\n },\n {\n id: 'routesMonitorScreen',\n title: 'sidebar.monitor',\n permissions: [permissions.viewRouteMonitor],\n iconName: 'RouteMonitor',\n navLink: paths.routeMonitor,\n screenId: screens.LOGISTIC_ROUTE_MONITOR\n },\n {\n id: 'routesReportScreen',\n title: 'sidebar.report',\n permissions: [permissions.viewRouteReport],\n iconName: 'RouteReport',\n navLink: paths.routeReport,\n screenId: screens.LOGISTIC_ROUTE_REPORT\n },\n {\n id: 'routesAssignUnitScreen',\n title: 'sidebar.assignRoute',\n permissions: [permissions.assignRoute],\n iconName: 'PlusSquare',\n navLink: paths.routeAssignUnit,\n screenId: screens.ASSIGN_LOGISTIC_ROUTE\n },\n {\n id: 'importRouteAssignmentsScreen',\n title: 'sidebar.importRouteAssignments',\n permissions: [permissions.importRouteAssignments],\n iconName: 'UploadCloud',\n navLink: paths.importRouteAssignments,\n screenId: screens.IMPORT_ROUTE_ASSIGNMENTS\n }\n ]\n }\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'optimizations',\n title: 'optimizations.optimizations',\n iconName: 'Zap',\n permissions: [permissions.viewOptimizations],\n children: [\n {\n id: 'optimizationsCatalog',\n title: 'sidebar.catalog',\n iconName: 'Catalog',\n permissions: [permissions.viewOptimizations],\n navLink: paths.listOptimization,\n screenId: screens.OPTIMIZATIONS\n }\n ]\n }\n];\n","import { Plus, PlusCircle, UploadCloud, List, Shield, FilePlus } from 'react-feather';\nimport Icon from '../../utility/icomoon';\nimport paths from 'views/screens/VehicleFuel/paths';\nimport permissions from 'views/screens/VehicleFuel/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'vehicleFuel',\n title: 'vehicleFuel.fuel',\n icon: ,\n iconName: 'Fuel',\n permissions: [],\n children: [\n {\n id: 'vehicleFuelTickets',\n title: 'vehicleFuel.tickets',\n icon: ,\n iconName: 'Boleta',\n permissions: [permissions.addTicket, permissions.importTicket],\n children: [\n {\n id: 'vehicleFueNewTicket',\n title: 'vehicleFuel.newTicket',\n icon: ,\n iconName: 'FilePlus',\n permissions: [permissions.addTicket],\n navLink: paths.addTicket,\n screenId: screens.NEW_TICKET\n },\n {\n id: 'vehicleFuelRecordMultipleTickets',\n title: 'vehicleFuel.recordMultipleTickets',\n icon: ,\n iconName: 'FileVersion',\n permissions: [permissions.recordMultiple],\n navLink: paths.recordMultiple,\n screenId: screens.RECORD_MULTIPLE_TICKETS\n },\n {\n id: 'vehicleFuelImportTicket',\n title: 'vehicleFuel.importTicket',\n iconName: 'UploadCloud',\n icon: ,\n permissions: [permissions.importTicket],\n navLink: paths.importTicket,\n screenId: screens.IMPORT_FUEL_TICKETS\n }\n ]\n },\n {\n id: 'vehicleFuelReports',\n title: 'vehicleFuel.reports',\n icon: ,\n permissions: [permissions.consolidatedReport, permissions.byUnitReport],\n iconName: 'PlusCircle',\n children: [\n {\n id: 'vehicleConsolidatedReport',\n title: 'vehicleFuel.consolidatedReport',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.consolidatedReport],\n navLink: paths.consolidatedReport,\n screenId: screens.FUEL_TICKETS_CONSOLIDATED_REPORT\n },\n {\n id: 'vehicleByUnitReport',\n title: 'vehicleFuel.byUnitReport',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.byUnitReport],\n navLink: paths.byUnitReport,\n screenId: screens.FUEL_TICKETS_REPORT_BY_UNIT\n }\n ]\n }\n ]\n }\n];\n","import { Plus, PlusCircle, UploadCloud, List, Shield } from 'react-feather';\nimport paths from 'views/screens/vehicleMaintenance/paths';\nimport permissions from 'views/screens/vehicleMaintenance/permissions';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'vehicleMaintenance',\n title: 'sidebar.vehicleMaintenance',\n icon: ,\n iconName: 'Maintainance',\n permissions: [\n permissions.preventiveNotices,\n permissions.sparepartsCatalog,\n permissions.workshopCatalog,\n permissions.categoriesCatalog,\n permissions.providersCatalog,\n permissions.importTicket,\n permissions.generalReport,\n permissions.byCategoryReport,\n permissions.byUnitReport,\n permissions.byWorkShopReport\n ],\n children: [\n {\n id: 'vehicleMaintenancePreventiveNotices',\n title: 'vehicleMaintenance.preventiveNotices',\n icon: ,\n iconName: 'PreventiveNotice',\n permissions: [permissions.preventiveNotices],\n navLink: paths.preventiveNotices,\n screenId: screens.PREVENTIVE_NOTICES\n },\n {\n id: 'addWorkshopOrders',\n title: 'vehicleMaintenance.addWorkshopOrders',\n icon: ,\n iconName: 'Users',\n permissions: [permissions.addTickets],\n navLink: paths.addWorkshopOrders,\n screenId: screens.WORKSHOP_ADD_ORDER\n },\n {\n id: 'vehicleMaintenanceCatalogs',\n title: 'vehicleMaintenance.catalogs',\n icon: ,\n iconName: 'Shield',\n permissions: [\n permissions.sparepartsCatalog,\n permissions.workshopCatalog,\n permissions.categoriesCatalog,\n permissions.providersCatalog\n ],\n children: [\n {\n id: 'vehicleMaintenanceSpareParts',\n title: 'vehicleMaintenance.sparepart',\n icon: ,\n iconName: 'Spareparts',\n permissions: [permissions.sparepartsCatalog],\n navLink: paths.sparepartsCatalog,\n screenId: screens.SPAREPARTS_CATALOG\n },\n {\n id: 'vehicleMaintenanceWorkForce',\n title: 'vehicleMaintenance.workmanships',\n icon: ,\n iconName: 'Workmanship',\n permissions: [permissions.workshopCatalog],\n navLink: paths.workshopCatalog,\n screenId: screens.WORKMANSHIPS_CATALOG\n },\n {\n id: 'vehicleMaintenanceCategories',\n title: 'vehicleMaintenance.categories',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.categoriesCatalog],\n navLink: paths.categoriesCatalog,\n screenId: screens.SPAREPARTS_CATEGORIES_CATALOG\n },\n {\n id: 'vehicleMaintenanceProviders',\n title: 'vehicleMaintenance.providers',\n icon: ,\n iconName: 'SparepartProvider',\n permissions: [permissions.providersCatalog],\n navLink: paths.providersCatalog,\n screenId: screens.SPAREPARTS_PROVIDERS_CATALOG\n },\n {\n id: 'vehicleMaintenanceRanges',\n title: 'maintenanceLines.maintenanceLines',\n icon: ,\n iconName: 'Activity',\n permissions: [permissions.maintenanceLines],\n navLink: paths.maintenanceLineList,\n screenId: screens.MAINTENANCE_RANGES\n }\n ]\n },\n {\n id: 'vehicleMaintenanceReports',\n title: 'vehicleMaintenance.reports',\n icon: ,\n iconName: 'Shield',\n permissions: [\n permissions.generalReport,\n permissions.byCategoryReport,\n permissions.byUnitReport,\n permissions.byWorkShopReport\n ],\n children: [\n {\n id: 'vehicleMaintenanceGeneralReport',\n title: 'vehicleMaintenance.generalReport',\n icon: ,\n iconName: 'Plus',\n permissions: [permissions.generalReport],\n navLink: paths.generalReport,\n screenId: screens.GENERAL_MAINTENANCE_REPORT\n },\n {\n id: 'vehicleMaintenanceByCategoryReport',\n title: 'vehicleMaintenance.byCategory',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byCategoryReport],\n navLink: paths.byCategoryReport,\n screenId: screens.BY_CATEGORY_REPORT\n },\n {\n id: 'vehicleMaintenanceByUnitReport',\n title: 'vehicleMaintenance.byUnit',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byUnitReport],\n navLink: paths.byUnitReport,\n screenId: screens.BY_UNIT_REPORT\n },\n {\n id: 'vehicleMaintenanceByWorkShopReport',\n title: 'vehicleMaintenance.byWorkShop',\n iconName: 'Plus',\n icon: ,\n permissions: [permissions.byWorkShopReport],\n navLink: paths.byWorkShopReport,\n screenId: screens.BY_WORKSHOP_REPORT\n }\n ]\n },\n {\n id: 'vehicleMaintenanceImportTicket',\n title: 'vehicleFuel.importTicket',\n iconName: 'UploadCloud',\n icon: ,\n permissions: [permissions.importTicket],\n navLink: paths.importTicket,\n screenId: screens.IMPORT_MAINTENANCE_TICKETS\n }\n ]\n }\n];\n","import workplans from '../../views/screens/Workplans/sidebarLayout';\nimport routes from '../../views/screens/Routes/sidebarLayout';\nimport optimizations from '../../views/screens/Optimizations/sidebarLayout';\nimport vehicleFuel from './vehicleFuel';\n\nimport vehicleMaintenance from './vehicleMaintenance';\n\nexport default [\n {\n header: 'sidebar.logistics',\n iconName: 'Share2',\n badgeText: 'common.premium',\n children: [...routes, ...workplans, ...vehicleFuel, ...vehicleMaintenance, ...optimizations] //Only to check permission in children inside\n },\n ...routes,\n ...workplans,\n ...vehicleMaintenance,\n ...vehicleFuel,\n ...optimizations\n];\n","import paths from './paths';\nimport permissions from './permissions';\nimport Icon from 'utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'telemetryUnits',\n title: 'units.units',\n icon: ,\n iconName: 'Unidades',\n permissions: [permissions.telemtryUnits],\n navLink: paths.telemetryUnits,\n screenId: screens.TELEMETRY_UNITS\n },\n {\n id: 'temperatureTelemetry',\n title: 'telemetry.temperature',\n iconName: 'Thermometer',\n permissions: [permissions.temperatureCatalog],\n navLink: paths.telemetryTemperature,\n screenId: screens.TEMPERATURE_TELEMETRY\n },\n {\n id: 'fuelTelemetry',\n title: 'telemetry.fuel',\n iconName: 'Fuel',\n permissions: [permissions.fuelCatalog, permissions.fuelReport],\n children: [\n {\n id: 'fuelTelemetryMonitor',\n title: 'telemetry.fuelMonitor',\n iconName: 'Fuel',\n permissions: [permissions.fuelCatalog],\n navLink: paths.telemetryFuelMonitor,\n screenId: screens.FUEL_TELEMETRY_MONITOR\n },\n {\n id: 'fuelTelemetryReport',\n title: 'telemetry.fuelReport',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n children: [\n {\n id: 'fuelTelemetryReport',\n title: 'assets.assets',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n navLink: paths.telemetryFuelReport,\n screenId: screens.FUEL_TELEMETRY_REPORT\n },\n {\n id: 'fuelTelemetryReportByVehicles',\n title: 'vehicles.vehicles',\n iconName: 'Fuel',\n permissions: [permissions.fuelReport],\n navLink: paths.telemetryFuelReportByVehicles,\n screenId: screens.FUEL_TELEMETRY_REPORT_BY_VEHICLES\n }\n ]\n },\n ]\n },\n {\n id: 'telemetryOBD2',\n title: 'telemetry.obd2',\n icon: ,\n iconName: 'Cpu',\n permissions: [permissions.obd2Monitor],\n navLink: paths.telemetryOBD2,\n screenId: screens.TELEMETRY_OBD2\n }\n];\n","import telemetry from 'views/screens/Telemetry/sidebarLayout';\n\nexport default [\n {\n header: 'telemetry.telemetry',\n iconName: 'Target',\n children: [...telemetry]\n },\n ...telemetry\n];\n","import { Map } from 'react-feather';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'map',\n title: 'sidebar.map',\n icon: ,\n permissions: ['BA001'],\n iconName: 'Map',\n navLink: '/home',\n screenId: screens.MAP\n }\n];\n","import paths from './paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport permissions from './permissions';\n\nexport default [\n {\n id: 'dashboard',\n title: 'dashboard.dashboard',\n iconName: 'Grid',\n badge: 'primary',\n badgeText: 'common.comingSoon',\n permissions: [permissions.dashboard],\n navLink: paths.dashboard,\n screenId: screens.DASHBOARD\n }\n];\n","import { List, MapPin } from 'react-feather';\nimport paths from './paths';\nimport permissions from './permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'locations',\n title: 'locations.locations',\n icon: ,\n iconName: 'MapPin',\n permissions: [permissions.listLocations, permissions.importLocation],\n children: [\n {\n id: 'locationsListScreen',\n title: 'locations.catalog',\n iconName: 'Catalog',\n permissions: [permissions.listLocations],\n // accessLevels: [9, 13, 15],\n navLink: paths.locationsList,\n screenId: screens.LOCATIONS_CATALOG\n },\n {\n id: 'importLocationsScreen',\n title: 'locations.importLocations',\n iconName: 'UploadCloud',\n permissions: [permissions.importLocation],\n // accessLevels: [9, 13, 15],\n navLink: paths.importLocations,\n screenId: screens.IMPORT_LOCATIONS\n }\n ]\n }\n];\n","import { List } from 'react-feather';\nimport paths from 'views/screens/Geofences/paths';\nimport permissions from 'views/screens/Geofences/permissions';\nimport Icon from '../../utility/icomoon';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'geofences',\n title: 'geofences.geofences',\n icon: ,\n iconName: 'Geofences',\n permissions: [permissions.listGeofences, permissions.listAsignedGeofences],\n children: [\n {\n id: 'geofencesListScreen',\n title: 'geofences.catalog',\n icon: ,\n iconName: 'Catalog',\n permissions: [permissions.listGeofences],\n // accessLevels: [9, 13, 15],\n navLink: paths.geofencesList,\n screenId: screens.GEOFENCES_CATALOG\n },\n {\n id: 'geofencesAssignedListScreen',\n title: 'geofences.assignedGeofences',\n icon: ,\n iconName: 'Link',\n permissions: [permissions.listAsignedGeofences],\n // accessLevels: [9, 13, 15],\n navLink: paths.geofencesAssignedList,\n screenId: screens.ASSIGNED_GEOFENCES\n }\n ]\n }\n];\n","import { MapPin } from 'react-feather';\nimport locations from '../../views/screens/Locations/sidebarLayout';\nimport geofences from './geofences';\n\nexport default [\n {\n id: 'pointsOfInterest',\n title: 'sidebar.pointsOfInterest',\n icon: ,\n iconName: 'MapPin',\n permissions: [],\n children: [...geofences, ...locations]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/Reports/paths';\nimport permissions from 'views/screens/Reports/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'reports',\n title: 'reports.reports',\n icon: ,\n iconName: 'noun_report_556224',\n permissions: [\n permissions.systemCommunicationsDiagReport,\n permissions.systemNotificationsReport,\n permissions.accommodationChargesReport,\n permissions.mileageReport,\n permissions.hourMetersReport,\n permissions.consolidatedUnitActivityReport,\n permissions.consolidatedEventActivityReport,\n permissions.fuelSensorReport,\n permissions.consolidatedUnitMainStateReport,\n permissions.parkedGeofenceReport,\n permissions.administrativeReports,\n permissions.byUnitReports,\n permissions.consolidatedReports,\n permissions.listReports,\n permissions.runningTimeReport,\n permissions.unitActivity,\n permissions.byUnitReport,\n permissions.consumptionAPIReport,\n permissions.readWebEvents,\n permissions.scheduledReports\n ],\n navLink: paths.reportList,\n screenId: screens.REPORTS\n //children: [...scheduledReports, ...consolidated, ...byUnit, ...system]\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from 'views/screens/TrackingUnits/paths';\nimport permissions from 'views/screens/TrackingUnits/permissions';\nimport unitPermissions from 'views/screens/Units/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'trackingUnits',\n title: 'units.units',\n icon: ,\n permissions: [permissions.trackingUnitsList, unitPermissions.listFleet],\n iconName: 'Unidades',\n navLink: paths.listTrackingUnits,\n screenId: screens.TRACKING_UNITS,\n children: [\n {\n id: 'trackingUnitsCatalog',\n title: 'sidebar.catalog',\n icon: ,\n permissions: [permissions.trackingUnitsList],\n iconName: 'Unidades',\n navLink: paths.listTrackingUnits,\n screenId: screens.TRACKING_UNITS\n },\n {\n id: 'trackingUnitsMonitor',\n title: 'sidebar.monitor',\n icon: ,\n permissions: [unitPermissions.listFleet],\n iconName: 'Unidades',\n navLink: paths.listFleet,\n screenId: screens.FLEET\n }\n ]\n }\n];\n","import maps from './maps';\nimport dashboard from 'views/screens/Dashboard/sidebarLayout';\nimport pointsOfInterest from './pointsOfInterest';\nimport reports from './reports';\nimport trackingUnits from './trackingUnits';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...dashboard, ...maps, ...reports, ...trackingUnits, ...pointsOfInterest] //Only to check permission in children inside\n },\n ...dashboard,\n ...maps,\n ...reports,\n ...trackingUnits,\n ...pointsOfInterest\n];\n","import Icon from '../../utility/icomoon';\nimport organizationContractPaths from 'views/screens/Contracts/paths';\nimport contractTemplatesPaths from 'views/screens/ContractTemplates/paths';\nimport serviceClassPaths from 'views/screens/ServiceClasses/paths';\nimport quotationPaths from 'views/screens/Quotations/paths';\nimport organizationContractPermissions from 'views/screens/Contracts/permissions';\nimport contractTemplatesPermissions from 'views/screens/ContractTemplates/permissions';\nimport serviceClassPermissions from 'views/screens/ServiceClasses/permissions';\nimport quotationPermissions from 'views/screens/Quotations/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'service-class-orm',\n title: 'serviceClasses.serviceClasses',\n icon: ,\n permissions: [serviceClassPermissions.listServiceClass],\n accessLevels: [9, 13, 15],\n iconName: 'DollarSign',\n navLink: serviceClassPaths.listServiceClass,\n screenId: screens.SERVICE_CLASSES\n },\n {\n id: 'contracts-templates',\n title: 'contractTemplates.templates',\n icon: ,\n permissions: [contractTemplatesPermissions.listTemplate],\n iconName: 'PenTool',\n navLink: contractTemplatesPaths.listTemplate,\n screenId: screens.CONTRACT_TEMPLATES\n },\n {\n id: 'contracts',\n title: 'contracts.contracts',\n icon: ,\n iconName: 'FileText',\n permissions: [organizationContractPermissions.listContract],\n navLink: organizationContractPaths.listContract,\n screenId: screens.CONTRACTS\n },\n {\n id: 'quotations',\n title: 'quotations.quotations',\n icon: ,\n iconName: 'Edit',\n permissions: [quotationPermissions.listQuotation],\n navLink: quotationPaths.listQuotations,\n screenId: screens.QUOTATIONS\n }\n];\n","import contracts from './contracts';\nimport trackingUnits from './trackingUnits';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...contracts, ...trackingUnits] //Only to check permission in children inside\n },\n ...contracts,\n ...trackingUnits\n];\n","import paths from 'views/screens/Jobs/paths';\nimport permissions from 'views/screens/Jobs/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'jobs',\n title: 'jobs.jobs',\n iconName: 'Jobs',\n permissions: [permissions.jobs],\n children: [\n {\n id: 'jobsBacklog',\n title: 'jobs.backlog',\n iconName: 'Server',\n permissions: [permissions.listJobsBacklog],\n navLink: paths.backlog,\n screenId: screens.BACKLOG_JOBS\n },\n {\n id: 'ImportJobs',\n title: 'jobs.importJobs',\n iconName: 'UploadCloud',\n permissions: [permissions.jobsImport],\n navLink: paths.import,\n screenId: screens.IMPORT_JOBS\n },\n {\n id: 'jobsBoard',\n title: 'jobs.board',\n iconName: 'Trello',\n permissions: [permissions.jobsBoard],\n navLink: paths.board,\n screenId: screens.JOBS_BOARD\n },\n {\n id: 'jobsReport',\n title: 'jobs.report',\n iconName: 'Clock',\n permissions: [permissions.jobsReport],\n navLink: paths.report,\n screenId: screens.JOBS_REPORT\n },\n {\n id: 'workingActivityReport',\n title: 'jobs.reports.workingActivity',\n iconName: 'Calendar',\n permissions: [permissions.jobsWorkingActivity],\n navLink: paths.workingActivityReport,\n screenId: screens.JOBS_WORK_ACTIVITY\n }\n ]\n }\n];\n","import paths from 'views/screens/SafeDriver/paths';\nimport permissions from 'views/screens/SafeDriver/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'safeDriver',\n title: 'safeDriver.safeDriver',\n iconName: 'SafeDriver',\n badge: 'primary',\n badgeText: 'common.comingSoon',\n permissions: [permissions.safedriver],\n navLink: paths.list,\n screenId: screens.SAFE_DRIVER\n }\n];\n","import jobs from 'views/screens/Jobs/sidebarLayout';\nimport safeDriver from 'views/screens/SafeDriver/sidebarLayout';\n\nexport default [\n {\n header: 'sidebar.apps',\n iconName: 'BarChart2',\n children: [...jobs, ...safeDriver] //Only to check permission in children inside\n },\n ...jobs,\n ...safeDriver\n];\n","import businessPartnersPaths from 'views/screens/BusinessPartners/paths';\nimport * as screens from '@core/layouts/components/menu/screens';\nimport Icon from '../../utility/icomoon';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport default [\n {\n id: 'businessPartner',\n title: 'partners.businessPartner',\n icon: ,\n iconName: 'Customers',\n permissions: [],\n navLink: businessPartnersPaths.editPartner,\n screenId: screens.BUSINESS_PARTNERS\n },\n {\n id: 'webServiceRates',\n title: 'partners.webServiceRates',\n icon: ,\n iconName: 'WebService',\n permissions: [],\n navLink: businessPartnersPaths.webServiceRates,\n screenId: screens.WEB_SERVICE_RATES\n }\n];\n","import businessPartners from './businessPartners';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'List',\n children: [...businessPartners] //Only to check permission in children inside\n },\n ...businessPartners\n];\n","import Icon from '../../utility/icomoon';\nimport paths from '../../views/screens/Console/paths';\nimport permissions from '../../views/screens/Console/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'console',\n title: 'console.console',\n icon: ,\n permissions: [permissions.console],\n iconName: 'Monitor',\n navLink: paths.console,\n screenId: screens.CONSOLE_NOTIFICATIONS\n }\n];\n","import Icon from '../../utility/icomoon';\nimport paths from '../../views/screens/Protocols/paths';\nimport permissions from '../../views/screens/Protocols/permissions';\nimport * as screens from '@core/layouts/components/menu/screens';\n\nexport default [\n {\n id: 'protocol',\n title: 'protocol.protocol',\n icon: ,\n permissions: [\n permissions.listProtocol,\n permissions.createProtocol,\n permissions.editProtocol,\n permissions.deleteProtocol\n ],\n iconName: 'List',\n navLink: paths.protocolsList,\n screenId: screens.PROTOCOL_CATALOG\n }\n];\n","import console from './console';\nimport protocol from './protocol';\n\nexport default [\n {\n header: 'sidebar.general',\n iconName: 'Target',\n children: [...console, ...protocol]\n },\n ...console,\n ...protocol\n];\n","import administrations from './administrations';\r\nimport operations from './operations';\r\nimport telemetry from './telemetry';\r\nimport general from './general';\r\nimport generalCRM from './generalCRM';\r\nimport apps from './apps';\r\nimport generalAdmin from './generalAdmin';\r\nimport generalMonitoringCenter from './generalMonitoringCenter';\r\n\r\nconst sidebarOptions = [...general, ...apps, ...operations, ...telemetry, ...administrations];\r\nexport const sidebarOptionsCRM = [...generalCRM];\r\nexport const sidebarOptionsMonitoring = [...generalMonitoringCenter];\r\nexport const sidebarOptionsAdmin = [...generalAdmin];\r\n\r\nexport function getOptions(sidebarOptions) {\r\n let options = [];\r\n\r\n sidebarOptions.forEach((option) => {\r\n if (option['navLink'] != null) {\r\n const optionNav = {\r\n ...option,\r\n isBookmarked: false,\r\n link: option['navLink'],\r\n\r\n target: option['id'],\r\n icon: option['iconName']\r\n };\r\n options.push(optionNav);\r\n }\r\n if (option['children'] != null && option['header'] == null) {\r\n let childrenOptions = getOptions(option['children']);\r\n options = [...options, ...childrenOptions];\r\n }\r\n });\r\n\r\n return options;\r\n}\r\n\r\nexport default sidebarOptions;\r\n","export const LOCATION_CLASSES_FETCH_STARTED = 'LOCATION_CLASSES_FETCH_STARTED';\nexport const LOCATION_CLASSES_FETCH_COMPLETED = 'LOCATION_CLASSES_FETCH_COMPLETED';\nexport const LOCATION_CLASSES_FETCH_FAILED = 'LOCATION_CLASSES_FETCH_FAILED';\n","export const TIME_ZONES_FETCH_STARTED = \"TIME_ZONES_FETCH_STARTED\";\nexport const TIME_ZONES_FETCH_COMPLETED = \"TIME_ZONES_FETCH_COMPLETED\";\nexport const TIME_ZONES_FETCH_FAILED = \"TIME_ZONES_FETCH_FAILED\";\n","export const CURRENCIES_FETCH_STARTED = 'CURRENCIES_FETCH_STARTED';\nexport const CURRENCIES_FETCH_COMPLETED = 'CURRENCIES_FETCH_COMPLETED';\nexport const CURRENCIES_FETCH_FAILED = 'CURRENCIES_FETCH_FAILED';\n\nexport interface Currency {\n isSelected: boolean;\n currencyId: number;\n currencyName: string;\n codeAlpha: string;\n symbol: string;\n countryCode: string;\n isConfirmed: boolean;\n}\n","export const SENSOR_BRANDS_FETCH_STARTED = 'SENSOR_BRANDS_FETCH_STARTED';\nexport const SENSOR_BRANDS_FETCH_COMPLETED = 'SENSOR_BRANDS_FETCH_COMPLETED';\nexport const SENSOR_BRANDS_FETCH_FAILED = 'SENSOR_BRANDS_FETCH_FAILED';\n","export const SENSOR_MODELS_FETCH_STARTED = 'SENSOR_MODELS_FETCH_STARTED';\nexport const SENSOR_MODELS_FETCH_COMPLETED = 'SENSOR_MODELS_FETCH_COMPLETED';\nexport const SENSOR_MODELS_FETCH_FAILED = 'SENSOR_MODELS_FETCH_FAILED';\n","export const PAYMENT_METHODS_FETCH_STARTED = 'PAYMENT_METHODS_FETCH_STARTED';\nexport const PAYMENT_METHODS_FETCH_COMPLETED = 'PAYMENT_METHODS_FETCH_COMPLETED';\nexport const PAYMENT_METHODS_FETCH_FAILED = 'PAYMENT_METHODS_FETCH_FAILED';\n","// @ts-nocheck\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport Lightbox from 'react-image-lightbox';\nimport { useState } from 'react';\nimport SwiperCore, {\n Navigation,\n Pagination,\n EffectFade,\n EffectCube,\n EffectCoverflow,\n Autoplay,\n Lazy,\n Virtual,\n Thumbs\n} from 'swiper';\n\nSwiperCore.use([\n Navigation,\n Pagination,\n EffectFade,\n EffectCube,\n EffectCoverflow,\n Autoplay,\n Lazy,\n Virtual,\n Thumbs\n]);\n\nconst defaultGalleryParams = {\n effect: 'fade',\n spaceBetween: 30,\n initialSlide: 0,\n centeredSlides: true,\n autoplay: {\n delay: 5000,\n disableOnInteraction: false,\n pauseOnMouseEnter: true,\n reverseDirection: false\n },\n loop: true,\n navigation: true,\n pagination: {\n clickable: true\n }\n};\n\ninterface MediaGalleryProps {\n isRtl: boolean;\n images: Image[];\n className: string;\n classNameThumbs?: string;\n classNameImg?: string;\n autoplay?: any;\n loop?: boolean;\n navigation?: boolean;\n pagination?: boolean;\n imagesPath: string;\n height: string; //percentage\n heightThumbs?: string; //percentage\n onSlideChange?: Function;\n useThumbs?: boolean;\n}\n\ninterface Image {\n imageUrl: string;\n fullImageUrl: string;\n imageName: string;\n imageId: any;\n imageDescription: string;\n imageType: number;\n imagePath: string;\n}\n\nconst MediaGallery = (props: MediaGalleryProps) => {\n const {\n isRtl,\n images,\n className,\n classNameImg,\n autoplay,\n loop,\n height,\n navigation,\n pagination,\n onSlideChange,\n useThumbs,\n classNameThumbs,\n heightThumbs\n } = props;\n\n const [lightboxIndex, setLightboxIndex] = useState(0);\n const [isLightboxOpen, setIsLightboxOpen] = useState(false);\n\n //if useThumbs\n const [thumbsSwiper, setThumbsSwiper] = useState(null); // if useThums\n const paramsThumbsDefault = {\n className: 'gallery-thumbs',\n spaceBetween: 10,\n slidesPerView: 4,\n freeMode: false,\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n onSwiper: setThumbsSwiper\n };\n\n const galleryOptions = {\n ...defaultGalleryParams,\n autoplay: autoplay != null ? autoplay : defaultGalleryParams.autoplay,\n loop: loop != null ? loop : defaultGalleryParams.loop,\n navigation: navigation != null ? navigation : defaultGalleryParams.navigation,\n pagination: pagination != null ? pagination : defaultGalleryParams.pagination,\n thumbs: useThumbs ? { swiper: thumbsSwiper } : undefined\n };\n\n return (\n <>\n {images.length > 1 ? (\n <>\n {\n if (onSlideChange)\n onSlideChange(\n swiper.activeIndex > 0 ? (swiper.activeIndex - 1) % images.length : 0\n );\n }}\n >\n {images.map((image, index) => {\n return (\n \n {\n setLightboxIndex(index);\n setIsLightboxOpen(true);\n }}\n />\n \n );\n })}\n \n {useThumbs && images.length >= 3 && (\n \n {images.map((image, index) => {\n return (\n \n \n \n );\n })}\n \n )}\n \n ) : (\n
\n {\n setLightboxIndex(0);\n setIsLightboxOpen(true);\n }}\n />\n
\n )}\n {isLightboxOpen && (\n setIsLightboxOpen(false)}\n onMovePrevRequest={() =>\n setLightboxIndex((lightboxIndex + images.length - 1) % images.length)\n }\n onMoveNextRequest={() => setLightboxIndex((lightboxIndex + 1) % images.length)}\n />\n )}\n \n );\n};\n\nMediaGallery.defaultProps = {\n isRtl: false,\n images: [],\n className: '',\n classNameImg: 'img-contain',\n classNameThumbs: '',\n autoplay: null,\n loop: null,\n navigation: null,\n pagination: null,\n imagesPath: '',\n height: '33%',\n heightThumbs: '10%',\n useThumbs: false,\n onSlideChange: (activeSlideId) => null\n};\n\nexport default MediaGallery;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansAssignments';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst bySchedule = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assignmentId) => {\n newState[assignmentId] = {\n isSelected: false,\n ...state[assignmentId],\n ...entities[assignmentId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return omit(state, assignmentId);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED: {\n const assignment = action.payload;\n return {\n ...state,\n [assignment.assignmentId]: {\n ...state[assignment.assignmentId],\n ...assignment\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byDateTime = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assignmentId) => {\n newState[assignmentId] = {\n isSelected: false,\n ...state[assignmentId],\n ...entities[assignmentId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return omit(state, assignmentId);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED: {\n const assignment = action.payload;\n return {\n ...state,\n [assignment.assignmentId]: {\n ...state[assignment.assignmentId],\n ...assignment\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byScheduleOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return state.filter((assignmentIdState) => assignmentIdState !== assignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst byDateTimeOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED: {\n const { assignmentId } = action.payload;\n return state.filter((assignmentIdState) => assignmentIdState !== assignmentId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingAssignments = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED: {\n return true;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAssignments = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_STARTED:\n case types.WORKPLAN_ASSIGNMENT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED:\n case types.WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansAssignments = combineReducers({\n bySchedule,\n byDateTime,\n byScheduleOrder,\n byDateTimeOrder,\n isFetchingAssignments,\n //isAdding,\n isEditing,\n isRemoving,\n errorFetchingAssignments,\n //errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default workplansAssignments;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansAssignments;\n\n//Information\nexport const getWorkplansAssignment = (state, assignmentId, assignmentType) => {\n if (assignmentType === 'bySchedule') {\n return getOwnState(state).bySchedule[assignmentId];\n } else if (assignmentType === 'byDateTime') {\n return getOwnState(state).byDateTime[assignmentId];\n }\n};\nexport const getWorkplansAssignmentsByScheduleList = (state) =>\n getOwnState(state).byScheduleOrder?.map((id) => getWorkplansAssignment(state, id, 'bySchedule'));\n\nexport const getWorkplansAssignmentsByScheduleListByMembership = (\n state,\n membership: DefaultFilters\n) => {\n return getWorkplansAssignmentsByScheduleList(state)\n .filter((assignment) => {\n return !!assignment?.operatorId && !!membership?.operatorId\n ? assignment?.operatorId === membership?.operatorId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.organizationId && !!membership?.organizationId\n ? assignment?.organizationId === membership?.organizationId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.divisionId && !!membership?.divisionId\n ? assignment?.divisionId === membership?.divisionId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.subdivisionId && !!membership?.subdivisionId\n ? assignment?.subdivisionId === membership?.subdivisionId\n : !!assignment;\n });\n};\n\nexport const getWorkplansAssignmentsByDateTimeList = (state) =>\n getOwnState(state).byDateTimeOrder?.map((id) => getWorkplansAssignment(state, id, 'byDateTime'));\n\nexport const getWorkplansAssignmentsByDateTimeListByMembership = (\n state,\n membership: DefaultFilters\n) => {\n return getWorkplansAssignmentsByDateTimeList(state)\n .filter((assignment) => {\n return !!assignment?.operatorId && !!membership?.operatorId\n ? assignment?.operatorId === membership?.operatorId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.organizationId && !!membership?.organizationId\n ? assignment?.organizationId === membership?.organizationId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.divisionId && !!membership?.divisionId\n ? assignment?.divisionId === membership?.divisionId\n : !!assignment;\n })\n .filter((assignment) => {\n return !!assignment?.subdivisionId && !!membership?.subdivisionId\n ? assignment?.subdivisionId === membership?.subdivisionId\n : !!assignment;\n });\n};\n\n//Status of sagas\nexport const isFetchingWorkplansAssignments = (state) => getOwnState(state).isFetchingAssignments;\n//export const isAddingWorkplansComments = (state) => getOwnState(state).isAdding;\nexport const isEditingWorplansAssignments = (state) => getOwnState(state).isEditing;\nexport const isRemovingWorkplansAssignments = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingWorkplansAssignmentsErrors = (state) =>\n getOwnState(state).errorFetchingAssignments;\n//export const getAddingWorkplansCommentsErrors = (state) => getOwnState(state).errorAdding;\nexport const getAddingWorkplansAssignmentsErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingWorkplansAssignmentsErrors = (state) => getOwnState(state).errorRemoving;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport { store } from 'redux/storeConfig/store';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\n\nexport const baseUrl = '/sensor';\n\nexport const getSensorsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sensors.sensor',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveSensorService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sensors.sensor',\n action: request.sensorId ? 'Edit' : 'Create',\n name: request.uniqueIdentifier,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteSensorService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const fuelCalibrationStartService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/startFuelCalibration`, { sensorId: request.sensorId });\n};\n\nexport const fuelCalibrationFinalizeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/finalizeFuelCalibration`, { sensorId: request.sensorId });\n};\n\nexport const getFuelCalibrationPubSubUrl = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.get(`${baseUrl}/getPubSubFuelCalibrationToken`);\n};\n\nexport const sendPubSubFuelCalibrationCommand = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.uniqueIdentifier}`,\n object: 'sensors.sensor',\n action: 'Custom',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/sendPubSubFuelCalibrationCommand`, request);\n};\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/location';\n\ninterface LocationSaveRequest {\n locationId?: number;\n dispatchCompletionType: number;\n dispatchEmails: string;\n dispatchNotificationFreq: number;\n enableDispatch: number;\n latitude: number;\n longitude: number;\n radius: number;\n locationName: string;\n locationTypeId: number;\n locationClassId: number;\n locationAddress?: string;\n privateCode?: string;\n organizationId: number;\n divisionId: number;\n subdivisionId: number;\n}\n\ninterface LocationDeleteRequest {\n locationId: number;\n locationName: string;\n}\ninterface LocationFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n locationIds?: string;\n}\n\nexport const getLocationsListService = (request: LocationFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveLocationService = (request: LocationSaveRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: request.locationId ? 'Edit' : 'Create',\n name: request.locationName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteLocationService = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'locations.location',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const importLocationsService = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importLocations`, request);\n};\n\nexport const importLocationsServiceOptimization = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importLocationsOptimizations`, request);\n};\n\nexport const getLocationByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","import React, { useEffect, useState } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport MultiSelectInput from '../MultiSelectInput';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\n\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as ContactSelectors from 'views/screens/Contacts/reducers';\nimport * as authSelectors from 'views/../redux/reducers/auth';\nimport SlidingPaneAddEditContact from 'views/formComponents/SlidingPaneAddEditContact';\nimport { useGetOperatorContacts } from 'views/screens/Operators/hooks/useGetOperatorContacts';\nimport { useGetContacts } from 'views/screens/Organizations/hooks/useGetContacts';\n\ninterface Props {\n id: any;\n name: any;\n control: any;\n shouldUnregister?: any;\n defaultContacts?: any;\n extraContacts?: any;\n label?: any;\n isInModal?: boolean;\n initialFetch?: boolean;\n required?: boolean;\n contactTypeId?: number;\n isMultiple?: boolean;\n isClearable?: boolean;\n canCreate?: boolean;\n setContactsIn?: any;\n contactsIn?: any;\n setNewContact?: (value) => void;\n closeSlidingPaneAddEditContact?: () => void;\n prependcomponentFun?: () => void;\n appendcomponentFun?: () => void;\n operatorId?: number;\n organizationId?: number;\n defaultJobTitle?: string;\n watch?: any;\n reset?: any;\n}\n\nconst ContactsDropdown = (props: Props) => {\n const store = useSelector((state) => state);\n const userInSession = authSelectors.getUser(store);\n\n const {\n id,\n name,\n shouldUnregister,\n defaultContacts,\n extraContacts = [],\n label,\n isInModal,\n isMultiple = true,\n isClearable = false,\n initialFetch = true,\n canCreate = true,\n required,\n control,\n contactTypeId = 1,\n setContactsIn,\n contactsIn,\n setNewContact = null,\n closeSlidingPaneAddEditContact = undefined,\n prependcomponentFun = undefined,\n appendcomponentFun = undefined,\n operatorId = authSelectors.getAuthUserOperatorId(store),\n organizationId = authSelectors.getAuthUserOrganizationId(store),\n defaultJobTitle = '',\n watch = undefined,\n reset = undefined\n } = props;\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const [selectedContacts, changeSelectedContacts] = useState(\n Array.isArray(defaultContacts) ? defaultContacts : []\n );\n\n const [addEditContactSlideOpen, openAddEditContactSlide] = useState(false);\n const [newContact, changeNewContact] = useState(null);\n\n const selectAndEditContact = (contactId) => {\n dispatch(contactActions.selectContact(contactId));\n openAddEditContactSlide(true);\n };\n\n const selectedContactOnCreate = useSelector(ContactSelectors.getSelectedContact);\n const contacts = useSelector(ContactSelectors.getContactsList);\n const userContactsEmails = contacts.map((c) => c.email);\n\n const { operatorPublicContacts, areFetchingOperatorContacts } = (() => {\n const { operatorContacts, isFetchingOperatorContacts } = useGetOperatorContacts(operatorId);\n return {\n areFetchingOperatorContacts: isFetchingOperatorContacts,\n operatorPublicContacts: operatorContacts.map((c) => ({ ...c, contactTypeId: 2 }))\n };\n })();\n\n const { organizationPublicContacts, areFetchingOrganizationContacts } = (() => {\n const { contacts, isFetching } = useGetContacts(organizationId);\n return {\n organizationPublicContacts: contacts.map((c) => ({ ...c, contactTypeId: 3 })),\n areFetchingOrganizationContacts: isFetching\n };\n })();\n\n const formatContactsForDropdown = (contact) => {\n if (contact)\n return {\n ...contact,\n id: contact.contactId,\n value: contactTypeId === 1 ? contact.email : contact.contactId,\n label:\n contact.contactName !== contact.email\n ? `${contact.contactName} <${contact.email}>`\n : contact.contactName,\n edit: selectAndEditContact,\n identifierIcon: (\n <>\n \n {intl.formatMessage({\n id:\n contact.contactTypeId === 2\n ? 'contacts.operatorContact'\n : contact.contactTypeId === 3\n ? 'contacts.organizationContact'\n : 'contacts.userContact'\n })}\n \n \n \n )\n };\n return {};\n };\n\n const filterContactByAcces = (\n userContacts: Array,\n operatorContacts: Array,\n OrganizationContacts: Array\n ): Array => {\n const usedEmails: Array = userContacts.map((c) => c.email);\n const filteredContacts: Array = [...userContacts];\n\n const addNotIncludedContacts = (contact: any) => {\n if (usedEmails.includes(contact.email)) return;\n usedEmails.push(contact.email);\n filteredContacts.push(contact);\n };\n\n if (['9', '11', '13'].indexOf(userInSession?.accessLevelId) >= 0) {\n operatorContacts?.forEach(addNotIncludedContacts);\n }\n\n if (['7', '9', '11', '13'].indexOf(userInSession?.accessLevelId)) {\n OrganizationContacts?.forEach(addNotIncludedContacts);\n }\n\n return filteredContacts?.map(formatContactsForDropdown);\n };\n\n const contactsToShow: Array = filterContactByAcces(\n contacts,\n operatorPublicContacts,\n organizationPublicContacts\n );\n\n const contactsToAdd =\n contactTypeId === 1\n ? defaultContacts !== undefined && defaultContacts !== null && defaultContacts !== ''\n ? defaultContacts\n .split(',')\n .filter((c) => !userContactsEmails.includes(c))\n .filter(\n (defaultContact) =>\n contactsToShow\n .concat(extraContacts)\n .filter((contact) => contact.id === defaultContact).length === 0\n )\n .map((contactToAdd) => ({\n ...(contactTypeId === 1 ? {} : contactToAdd),\n id: contactTypeId === 1 ? contactToAdd : contactToAdd.contactId,\n value: contactTypeId === 1 ? contactToAdd : contactToAdd.contactId,\n label:\n contactTypeId === 1\n ? contactToAdd\n : contactToAdd.contactName !== contactToAdd.email\n ? `${contactToAdd.contactName} <${contactToAdd.email}>`\n : contactToAdd.contactName\n }))\n : []\n : [];\n\n const [resetValue, setResetValue] = useState(Date.now());\n const [selectedContact, setSelectedContact] = useState(\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts !== '' &&\n !isMultiple\n ? contactsToShow\n .concat(extraContacts)\n .concat(contactsToAdd)\n .filter((contact) => `${contact.contactId}` === selectedContacts)[0]\n : null\n );\n\n useEffect(() => {\n changeSelectedContacts(defaultContacts);\n setResetValue(Date.now());\n }, [defaultContacts]);\n\n // Realizar el fetch inicial de contactos\n useEffect(() => {\n if (selectedContacts || initialFetch) {\n dispatch(contactActions.startFetchingContacts(null));\n }\n }, [selectedContacts, initialFetch, dispatch]);\n\n // Efecto para seleccionar el nuevo contacto inmediatamente al crearse\n useEffect(() => {\n if (newContact) {\n changeSelectedContacts((prevContacts) => [\n ...(Array.isArray(prevContacts) ? prevContacts : []),\n newContact\n ]);\n }\n }, [newContact]);\n\n // FunciĆ³n para manejar la creaciĆ³n de un nuevo contacto\n const onCreate = (event) => {\n const newContactData = {\n contactName: event[event.length - 1].value,\n email: event[event.length - 1].value,\n contactId: uuidv4()\n };\n\n // Guardar el nuevo contacto en el estado local\n changeNewContact(newContactData);\n\n // Llamar a la acciĆ³n para agregar el contacto\n dispatch(contactActions.startAddingContact(newContactData));\n\n // Luego realizar un nuevo fetch de contactos para actualizar la lista completa\n setTimeout(() => {\n dispatch(contactActions.startFetchingContacts(null));\n }, 500); // Un pequeƱo retraso para asegurar que el contacto se haya agregado en el backend\n };\n\n // FunciĆ³n para manejar la ediciĆ³n de un contacto existente\n const onEdit = (editedContactData) => {\n // Actualizar el contacto temporalmente en el estado local\n changeSelectedContacts((prevContacts) =>\n prevContacts.map((contact) =>\n contact.contactId === editedContactData.contactId ? editedContactData : contact\n )\n );\n\n // Llamar a la acciĆ³n para editar el contacto\n dispatch(contactActions.startEditingContact(editedContactData));\n\n // Luego realizar un nuevo fetch de contactos para actualizar la lista completa\n setTimeout(() => {\n dispatch(contactActions.startFetchingContacts(null));\n }, 500); // Un pequeƱo retraso para asegurar que el contacto se haya actualizado en el backend\n };\n\n return (\n <>\n (\n \n \n {intl.formatMessage({ id: 'contacts.editContact' })}\n \n {\n if (\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts.trim() !== ''\n ) {\n openAddEditContactSlide(true);\n if (prependcomponentFun) prependcomponentFun();\n setSelectedContact(\n selectedContacts !== undefined &&\n selectedContacts !== null &&\n selectedContacts !== '' &&\n !isMultiple\n ? contactsToShow\n .concat(extraContacts)\n .concat(contactsToAdd)\n .filter((contact) => `${contact.contactId}` === selectedContacts)[0]\n : null\n );\n }\n }}\n >\n \n \n \n )\n }\n appendcomponent={\n isMultiple ? undefined : (\n <>\n \n {intl.formatMessage({ id: 'contacts.addContact' })}\n \n {\n if (appendcomponentFun) appendcomponentFun();\n openAddEditContactSlide(true);\n setSelectedContact(null);\n }}\n >\n \n \n \n )\n }\n onCreate={onCreate} // Llamar a la funciĆ³n onCreate al crear un nuevo contacto\n onSelect={(event) => {\n var string = '';\n isMultiple\n ? event.map((email) => (string = string + email.id + ','))\n : (string = `${string}${event !== undefined && event !== null ? event.id : ''},`);\n changeSelectedContacts(string.slice(0, -1));\n }}\n selectedValues={selectedContacts}\n type={'select'}\n options={contactsToShow.concat(extraContacts).concat(contactsToAdd)}\n label={\n label ||\n intl.formatMessage({\n id: 'contacts.contacts'\n })\n }\n placeholder={intl.formatMessage({ id: 'contacts.placeholder' })}\n canCreate={isMultiple && canCreate}\n />\n )}\n />\n {\n openAddEditContactSlide(false);\n if (closeSlidingPaneAddEditContact) closeSlidingPaneAddEditContact();\n }}\n setNewContact={changeNewContact}\n defaultJobTitle={defaultJobTitle}\n canCreate={\n (!isMultiple && canCreate && contactTypeId !== 1) || (contactTypeId === 1 && canCreate)\n }\n operatorId={operatorId}\n organizationId={organizationId}\n isSelectedOnCreate\n isEditingFromMulti={isMultiple && contactTypeId === 1}\n onSave={onEdit} // Llamar a la funciĆ³n onEdit al editar un contacto\n />\n \n );\n};\n\nContactsDropdown.defaultProps = {\n isInModal: false\n};\n\nexport default ContactsDropdown;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ASSETS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((assetId) => {\n newState[assetId] = {\n isSelected: false,\n ...state[assetId],\n ...entities[assetId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((assetId) => {\n newState[assetId] = {\n isSelected: false,\n ...state[assetId],\n ...entities[assetId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ASSET_ADD_COMPLETED: {\n const { oldId, asset } = action.payload;\n const newState = omit(state, oldId);\n newState[asset.assetId] = {\n ...state[oldId],\n ...asset,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ASSET_EDIT_COMPLETED: {\n const asset = action.payload;\n return {\n ...state,\n [asset.assetId]: {\n ...omit(state[asset.assetId], ['oldAsset']),\n ...omit(asset, ['oldAsset']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ASSET_ADD_STARTED: {\n const asset = action.payload;\n const newState = { ...state };\n newState[asset.assetId] = {\n isSelected: false,\n ...asset,\n isConfirmed: false\n };\n return newState;\n }\n case types.ASSET_EDIT_STARTED: {\n const asset = action.payload;\n return {\n ...state,\n [asset.assetId]: {\n ...state[asset.assetId],\n oldAsset: state[asset.assetId],\n ...asset,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ASSET_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ASSET_EDIT_FAILED: {\n const { oldAsset } = action.payload;\n return {\n ...state,\n [oldAsset.assetId]: {\n ...omit(state[oldAsset.assetId], ['oldAsset']),\n ...oldAsset,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ASSET_REMOVE_COMPLETED: {\n const { assetId } = action.payload;\n return omit(state, assetId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ASSET_SELECTED: {\n const assetId = action.payload;\n const newState = {\n ...state,\n [assetId]: {\n ...state[assetId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ASSET_DESELECTED: {\n const assetId = action.payload;\n return {\n ...state,\n [assetId]: {\n ...state[assetId],\n isSelected: false\n }\n };\n }\n\n case types.ASSETS_ALL_SELECTED: {\n const assetIds = action.payload;\n const newState = { ...state };\n if (assetIds.length == 0) {\n forEach(state, (asset: any, assetId) => {\n newState[assetId] = {\n ...asset,\n isSelected: true\n };\n });\n } else {\n assetIds.forEach((assetId) => {\n newState[assetId] = {\n ...state[assetId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ASSETS_ALL_DESELECTED: {\n const assetIds = action.payload;\n const newState = { ...state };\n if (assetIds.length == 0) {\n forEach(state, (asset: any, assetId) => {\n newState[assetId] = {\n ...asset,\n isSelected: false\n };\n });\n } else {\n assetIds.forEach((assetId) => {\n newState[assetId] = {\n ...state[assetId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ASSETS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ASSET_ADD_COMPLETED: {\n const { oldId, asset } = action.payload;\n return state.map((assetId) => (assetId === oldId ? asset.assetId : assetId));\n }\n\n case types.ASSET_REMOVE_COMPLETED: {\n const { assetId } = action.payload;\n return state.filter((assetIdState) => assetIdState !== assetId);\n }\n\n //CASE ADD STARTED\n case types.ASSET_ADD_STARTED: {\n const asset = action.payload;\n return [...state, asset.assetId];\n }\n\n //CASE ADD FAILED\n case types.ASSET_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((assetIdState) => assetIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ASSETS_FETCH_STARTED: {\n return true;\n }\n case types.ASSETS_FETCH_COMPLETED:\n case types.ASSETS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ASSETS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ASSETS_PARTIAL_FETCH_COMPLETED:\n case types.ASSETS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_ADD_STARTED: {\n return true;\n }\n case types.ASSET_ADD_COMPLETED:\n case types.ASSET_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_EDIT_STARTED: {\n return true;\n }\n case types.ASSET_EDIT_COMPLETED:\n case types.ASSET_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ASSET_REMOVE_STARTED: {\n return true;\n }\n case types.ASSET_REMOVE_COMPLETED:\n case types.ASSET_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ASSETS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSETS_FETCH_STARTED:\n case types.ASSETS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ASSETS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSETS_PARTIAL_FETCH_STARTED:\n case types.ASSETS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_ADD_STARTED:\n case types.ASSET_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_EDIT_STARTED:\n case types.ASSET_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ASSET_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ASSET_REMOVE_STARTED:\n case types.ASSET_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validIdentifier = (state = true, action) => {\n switch (action.type) {\n case types.ASSET_IDENTIFIER_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ASSET_IDENTIFIER_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validSecuritySealCode = (state = true, action) => {\n switch (action.type) {\n case types.ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ASSET_SECURITY_SEAL_CODE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst assets = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n validIdentifier,\n validSecuritySealCode\n});\n\nexport default assets;\n\n//Own state\nexport const getOwnState = (state) => state.assets;\n\n//Information\nexport const getAsset = (state, assetId) => getOwnState(state).byId[assetId];\nexport const getAssetsList = (state) =>\n getOwnState(state)\n .order.map((id) => getAsset(state, id))\n .filter((asset) => asset.assetStatus > 0);\n\nexport const getAssetListByMembership = (state, membership) =>\n getAssetsList(state).filter(\n (asset) =>\n membership &&\n (!membership.operatorId || membership.operatorId === asset.operatorId) &&\n (!membership.organizationId || membership.organizationId === asset.organizationId) &&\n (!membership.divisionId || membership.divisionId === asset.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === asset.subdivisionId)\n );\n\nexport const getSelectedAssets = (state) => {\n const selectedAssets = getAssetsList(state).filter((asset) => asset.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedAssets.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedAssets.length > 0) return selectedAssets;\n};\n\nexport const getSelectedAsset = (state) => {\n const selectedAssets = getAssetsList(state).filter((asset) => asset.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedAssets.length === 1) return selectedAssets[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isValidIdentifier = (state) => getOwnState(state).validIdentifier;\nexport const isValidSecuritySealCode = (state) => getOwnState(state).validSecuritySealCode;\n\n//Status of sagas\nexport const isPartialFetchingListAssets = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListAssets = (state) => getOwnState(state).isFetchingList;\nexport const isAddingAsset = (state) => getOwnState(state).isAdding;\nexport const isEditingAsset = (state) => getOwnState(state).isEditing;\nexport const isRemovingAsset = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListAssetsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListAssetsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingAssetErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingAssetErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingAssetErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SIMS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((simId) => {\n newState[simId] = {\n isSelected: false,\n ...state[simId],\n ...entities[simId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((simId) => {\n newState[simId] = {\n isSelected: false,\n ...state[simId],\n ...entities[simId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SIM_FETCH_COMPLETED: {\n const { sim } = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...state[sim.simCardId],\n ...sim,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.SIM_ADD_COMPLETED: {\n const { oldId, sim } = action.payload;\n const newState = omit(state, oldId);\n newState[sim.simCardId] = {\n ...state[oldId],\n ...sim,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SIM_EDIT_COMPLETED: {\n const sim = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...omit(state[sim.simCardId], ['oldSim']),\n ...omit(sim, ['oldSim']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SIM_ADD_STARTED: {\n const sim = action.payload;\n const newState = { ...state };\n newState[sim.simId] = {\n isSelected: false,\n ...sim,\n isConfirmed: false\n };\n return newState;\n }\n case types.SIM_EDIT_STARTED: {\n const sim = action.payload;\n return {\n ...state,\n [sim.simCardId]: {\n ...state[sim.simCardId],\n oldSim: state[sim.simCardId],\n ...sim,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SIM_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SIM_EDIT_FAILED: {\n const { oldSim } = action.payload;\n return {\n ...state,\n [oldSim.simCardId]: {\n ...omit(state[oldSim.simCardId], ['oldSim']),\n ...oldSim,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SIM_REMOVE_COMPLETED: {\n const { simId } = action.payload;\n return omit(state, simId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SIM_SELECTED: {\n const simId = action.payload;\n const newState = {\n ...state,\n [simId]: {\n ...state[simId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SIM_DESELECTED: {\n const simId = action.payload;\n return {\n ...state,\n [simId]: {\n ...state[simId],\n isSelected: false\n }\n };\n }\n\n case types.SIMS_ALL_SELECTED: {\n const simIds = action.payload;\n const newState = { ...state };\n if (simIds.length == 0) {\n forEach(state, (sim: any, simId) => {\n newState[simId] = {\n ...sim,\n isSelected: true\n };\n });\n } else {\n simIds.forEach((simId) => {\n newState[simId] = {\n ...state[simId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SIMS_ALL_DESELECTED: {\n const simIds = action.payload;\n const newState = { ...state };\n if (simIds.length == 0) {\n forEach(state, (sim: any, simId) => {\n newState[simId] = {\n ...sim,\n isSelected: false\n };\n });\n } else {\n simIds.forEach((simId) => {\n newState[simId] = {\n ...state[simId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SIMS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SIM_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SIM_ADD_COMPLETED: {\n const { oldId, sim } = action.payload;\n return state.map((simId) => (simId === oldId ? sim.simCardId : simId));\n }\n\n case types.SIM_REMOVE_COMPLETED: {\n const { simId } = action.payload;\n return state.filter((simIdState) => simIdState !== simId);\n }\n\n //CASE ADD STARTED\n case types.SIM_ADD_STARTED: {\n const sim = action.payload;\n return [...state, sim.simId];\n }\n\n //CASE ADD FAILED\n case types.SIM_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((simIdState) => simIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SIMS_FETCH_STARTED: {\n return true;\n }\n case types.SIMS_FETCH_COMPLETED:\n case types.SIMS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingSim = (state = false, action) => {\n switch (action.type) {\n case types.SIM_FETCH_STARTED: {\n return true;\n }\n case types.SIM_FETCH_COMPLETED:\n case types.SIM_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SIMS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SIMS_PARTIAL_FETCH_COMPLETED:\n case types.SIMS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SIM_ADD_STARTED: {\n return true;\n }\n case types.SIM_ADD_COMPLETED:\n case types.SIM_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SIM_EDIT_STARTED: {\n return true;\n }\n case types.SIM_EDIT_COMPLETED:\n case types.SIM_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SIM_REMOVE_STARTED: {\n return true;\n }\n case types.SIM_REMOVE_COMPLETED:\n case types.SIM_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SIMS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIMS_FETCH_STARTED:\n case types.SIMS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SIMS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIMS_PARTIAL_FETCH_STARTED:\n case types.SIMS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SIM_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_ADD_STARTED:\n case types.SIM_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SIM_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_EDIT_STARTED:\n case types.SIM_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SIM_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SIM_REMOVE_STARTED:\n case types.SIM_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sims = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n isFetchingSim\n});\n\nexport default sims;\n\n//Own state\nexport const getOwnState = (state) => state.sims;\n\n//Information\nexport const getSim = (state, simId) => getOwnState(state).byId[simId];\nexport const getSimsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSim(state, id))\n .filter((sim) => sim.simCardStatus > 0);\nexport const getSimsListAll = (state) => getOwnState(state).order.map((id) => getSim(state, id));\nexport const getSimsListByUnit = (state, unitId) => {\n if (unitId || unitId === 0) {\n return getSimsList(state).filter((sim) => sim.unitId === unitId);\n }\n return getSimsList(state);\n};\nexport const getSimsListByCountry = (state, countryId, providerId, unitId) => {\n if (countryId || countryId === 0) {\n if (providerId || providerId === 0) {\n return getSimsListByUnit(state, unitId).filter(\n (sim) => sim.countryId === countryId && sim.mobileOperatorId === providerId\n );\n }\n return getSimsListByUnit(state, unitId).filter((sim) => sim.countryId === countryId);\n }\n return getSimsListByUnit(state, unitId);\n};\n\nexport const getSimsListByMembership = (state, membership) =>\n getSimsList(state).filter(\n (sim) =>\n membership &&\n (!membership.operatorId || membership.operatorId === sim.operatorId) &&\n (!membership.organizationId || membership.organizationId === sim.organizationId) &&\n (!membership.divisionId || membership.divisionId === sim.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === sim.subdivisionId)\n );\nexport const getSelectedSims = (state) => {\n const selectedSims = getSimsList(state).filter((sim) => sim.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSims.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedSims.length > 0) return selectedSims;\n};\n\nexport const getSelectedSim = (state) => {\n const selectedSims = getSimsList(state).filter((sim) => sim.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSims.length === 1) return selectedSims[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSims = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSims = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSim = (state) => getOwnState(state).isAdding;\nexport const isEditingSim = (state) => getOwnState(state).isEditing;\nexport const isRemovingSim = (state) => getOwnState(state).isRemoving;\nexport const isFetchingSimById = (state) => getOwnState(state).isFetchingSim;\n\n//Errors\nexport const getPartialFetchingListSimsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSimsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSimErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSimErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSimErrors = (state) => getOwnState(state).errorRemoving;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport { store } from 'redux/storeConfig/store';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\n\nexport const baseUrl = '/geofence';\n\ninterface GeofenceSaveRequest {\n geofenceId?: number;\n shape: string;\n color: string;\n geofenceName: string;\n geofenceAddress?: string;\n privateCode?: string;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n latitude?: number;\n longitude?: number;\n latitude2?: number;\n longitude2?: number;\n radius?: number;\n vertexCount?: number;\n geofenceWKT?: string;\n vertexCsv?: string;\n}\n\ninterface GeofenceDeleteRequest {\n geofenceId: number;\n geofenceName: string;\n}\n\ninterface GeofenceFilters {\n startDate?: string;\n endDate?: string;\n unitId?: number;\n geofenceId?: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n userFetchDate?: Date;\n email?: string;\n consoleName?: string;\n deepSearch?: boolean;\n byUnit?: number;\n tab?: number;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n groupId?: number;\n}\n\ninterface GetGeofencesFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n minLat?: number;\n maxLat?: number;\n minLng?: number;\n maxLng?: number;\n}\n\nexport const getGeofencesListService = (\n request: GetGeofencesFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getGeofenceDropdownByOrganization = (\n request: GeofenceFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/organization/dropdown`, request);\n};\n\nexport const getCpGeofence = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/cpgeofence`, request);\n};\n\nexport const saveGeofenceService = (request: GeofenceSaveRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: request.geofenceId ? 'Edit' : 'Create',\n name: request.geofenceName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteGeofenceService = (\n request: GeofenceDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.geofenceName}`,\n object: 'geofences.geofence',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const getUnitGeofences = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/unitGeofences`, request);\n};\n\nexport const getUnitGeofenceInfo = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/UnitGeofenceInfo`, request);\n};\n\nexport const getAssignments = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignedUnits`, request);\n};\n\nexport const getUnassignedEntities = (request: GeofenceFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.assignedGeofences',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/unassignedEntities`, request);\n};\n\nexport const getGeofenceByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'geofences.geofence',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente CustomersDropdown */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput que permite elegir un cliente y abrir un slide para crear nuevos clientes\n\nimport { useState } from 'react';\nimport { Edit2, Plus } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport SlidingPaneAddEditCustomer from 'views/formComponents/SlidingPaneAddEditCustomer';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as customerSelectors from '../../screens/Customers/reducers';\nimport DropdownInput from '../DropdownInput';\n\nconst CustomersDropdown = (props) => {\n const {\n appendAddCustomer = true,\n enableSelectLocation = false,\n isClearable = false,\n customersFilters,\n notAssigned = false,\n locationId,\n field,\n ...dropdownProps\n } = props;\n const intl = useIntl();\n const { customers } = useSelector((state) => ({\n customers: notAssigned\n ? customerSelectors.getNotAssignedCustomersList(state, locationId)\n : customerSelectors.getCustomersList(state)\n }));\n const [isOpenShiftPane, setOpenShiftPane] = useState(false);\n const [selectedCustomer, setSelectedCustomer] = useState(undefined);\n const closeShiftPane = () => setOpenShiftPane(false);\n const id_dropdwon = appendAddCustomer ? 'In_SP' : 'Out_SP'\n return (\n <>\n \n ({\n value: customer.customerId,\n label: customer.customerName\n })) || []\n }\n id = {'customerDropdown' + id_dropdwon}\n label={intl.formatMessage({ id: 'customers.customer' })}\n placeholder={intl.formatMessage({ id: 'customers.selectCustomer' })}\n appendcomponent={\n appendAddCustomer ? (\n <>\n {field.value && (\n {\n setSelectedCustomer({ customerId: field.value });\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n )}\n {\n setSelectedCustomer(undefined);\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n \n ) : (\n <>\n )\n }\n />\n {\n setSelectedCustomer(undefined);\n closeShiftPane();\n }}\n />\n \n );\n};\n\nexport default CustomersDropdown;\n","import * as types from '../../types/routeCheckpoints';\n\nexport const startFetchingRouteCheckpoints = (routeId) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_STARTED,\n payload: routeId\n});\nexport const completeFetchingRouteCheckpoints = (entities, order) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingRouteCheckpoints = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTE_CHECKPOINTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\nexport const clearRouteCheckpoints = () => ({\n type: types.ROUTE_CHECKPOINTS_CLEAR,\n payload: {}\n});\n","import { combineReducers } from 'redux';\n\nimport forEach from 'lodash/forEach';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\n\nimport brands from '../../../../redux/reducers/static-catalogs/brands';\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SENSORS_FETCH_COMPLETED:\n case types.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((sensorId) => {\n newState[sensorId] = {\n isSelected: false,\n ...entities[sensorId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SENSOR_FETCH_COMPLETED: {\n const sensor = action.payload;\n const newState = { ...state };\n newState[sensor.deviceId] = {\n isSelected: false,\n ...state[sensor.deviceId],\n ...sensor,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SENSOR_ADD_COMPLETED: {\n const { oldId, sensor } = action.payload;\n const newState = omit(state, oldId);\n newState[sensor.sensorId] = {\n ...state[oldId],\n ...sensor,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SENSOR_EDIT_COMPLETED: {\n const sensor = action.payload;\n return {\n ...state,\n [sensor.sensorId]: {\n ...omit(state[sensor.sensorId], ['oldSensor']),\n ...omit(sensor, ['oldSensor']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SENSOR_ADD_STARTED: {\n const sensor = action.payload;\n const newState = { ...state };\n newState[sensor.sensorId] = {\n isSelected: false,\n ...sensor,\n isConfirmed: false\n };\n return newState;\n }\n case types.SENSOR_EDIT_STARTED: {\n const sensor = action.payload;\n return {\n ...state,\n [sensor.sensorId]: {\n ...state[sensor.sensorId],\n oldSensor: state[sensor.sensorId],\n ...sensor,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SENSOR_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SENSOR_EDIT_FAILED: {\n const oldSensor = action.payload;\n return {\n ...state,\n [oldSensor.sensorId]: {\n ...omit(state[oldSensor.sensorId], ['oldSensor']),\n ...oldSensor,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SENSOR_REMOVE_COMPLETED: {\n const { sensorId } = action.payload;\n return omit(state, sensorId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SENSOR_SELECTED: {\n const sensorId = action.payload;\n const newState = {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SENSOR_DESELECTED: {\n const sensorId = action.payload;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n isSelected: false\n }\n };\n }\n\n case types.SENSORS_ALL_SELECTED: {\n const sensorIds = action.payload;\n const newState = { ...state };\n if (sensorIds.length == 0) {\n forEach(state, (sensor: any, sensorId) => {\n newState[sensorId] = {\n ...sensor,\n isSelected: true\n };\n });\n } else {\n sensorIds.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SENSORS_ALL_DESELECTED: {\n const sensorIds = action.payload;\n const newState = { ...state };\n if (sensorIds.length == 0) {\n forEach(state, (sensor: any, sensorId) => {\n newState[sensorId] = {\n ...sensor,\n isSelected: false\n };\n });\n } else {\n sensorIds.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n case types.START_SENSOR_CALIBRATION_COMPLETED: {\n const sensorId = action.payload?.sensorId;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n calibrationState: 1\n }\n };\n }\n\n case types.FINALIZE_SENSOR_CALIBRATION_COMPLETED: {\n const sensorId = action.payload?.sensorId;\n return {\n ...state,\n [sensorId]: {\n ...state[sensorId],\n calibrationState: 0\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SENSORS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SENSOR_FETCH_COMPLETED: {\n const sensor = action.payload;\n return uniq([...state, sensor.deviceId]);\n }\n\n case types.SENSOR_ADD_COMPLETED: {\n const { oldId, sensor } = action.payload;\n return state.map((sensorId) => (sensorId === oldId ? sensor.sensorId : sensorId));\n }\n\n case types.SENSOR_REMOVE_COMPLETED: {\n const { sensorId } = action.payload;\n return state.filter((sensorIdState) => sensorIdState !== sensorId);\n }\n\n //CASE ADD STARTED\n case types.SENSOR_ADD_STARTED: {\n const sensor = action.payload;\n return [...state, sensor.sensorId];\n }\n\n //CASE ADD FAILED\n case types.SENSOR_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((sensorIdState) => sensorIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SENSORS_FETCH_STARTED: {\n return true;\n }\n case types.SENSORS_FETCH_COMPLETED:\n case types.SENSORS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_FETCH_STARTED: {\n return true;\n }\n case types.SENSOR_FETCH_COMPLETED:\n case types.SENSOR_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_ADD_STARTED: {\n return true;\n }\n case types.SENSOR_ADD_COMPLETED:\n case types.SENSOR_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_EDIT_STARTED: {\n return true;\n }\n case types.SENSOR_EDIT_COMPLETED:\n case types.SENSOR_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SENSOR_REMOVE_STARTED: {\n return true;\n }\n case types.SENSOR_REMOVE_COMPLETED:\n case types.SENSOR_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SENSORS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSORS_FETCH_STARTED:\n case types.SENSORS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_FETCH_STARTED:\n case types.SENSOR_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_ADD_STARTED:\n case types.SENSOR_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_EDIT_STARTED:\n case types.SENSOR_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SENSOR_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SENSOR_REMOVE_STARTED:\n case types.SENSOR_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.IDENTIFIER_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.IDENTIFIER_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sensors = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n brands,\n validCode\n});\n\nexport default sensors;\n\n//Own state\nexport const getOwnState = (state) => state.sensors;\n\n//Information\nexport const getSensor = (state, sensorId) => getOwnState(state).byId[sensorId];\nexport const getSensorsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSensor(state, id))\n .filter((sensor) => sensor.sensorStatus > 0);\n\nexport const getSensorsListByMembership = (state, membership) =>\n getSensorsList(state).filter(\n (sensor) =>\n membership &&\n (!membership.operatorId || membership.operatorId === sensor.operatorId) &&\n (!membership.organizationId || membership.organizationId === sensor.organizationId) &&\n (!membership.divisionId || membership.divisionId === sensor.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === sensor.subdivisionId)\n );\nexport const getSelectedSensors = (state) => {\n const selectedSensors = getSensorsList(state).filter((sensor) => sensor.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSensors.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedSensors.length > 0) return selectedSensors;\n};\n\nexport const getSelectedSensor = (state) => {\n const selectedSensors = getSensorsList(state).filter((sensor) => {\n return sensor.isSelected;\n });\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSensors.length === 1) return selectedSensors[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isValidCode = (state) => getOwnState(state).validCode;\n\n//Status of sagas\nexport const isFetchingSensor = (state) => getOwnState(state).isFetching;\nexport const isFetchingListSensors = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSensor = (state) => getOwnState(state).isAdding;\nexport const isEditingSensor = (state) => getOwnState(state).isEditing;\nexport const isRemovingSensor = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingSensorErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListSensorsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSensorErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSensorErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSensorErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n listEmailNotification: 'NT001',\n addEmailNotification: 'NT004',\n removeEmailNotification: 'NT005',\n\n listConsoleNotification: 'NT002',\n addConsoleNotification: 'NT006',\n removeConsoleNotification: 'NT008',\n\n listWebServiceNotification: 'NT003',\n addWebServiceNotification: 'NT007',\n removeWebServiceNotification: 'NT009'\n};\n\nexport default permissions;\n","const permissions = {\n listJobsBacklog: 'JB002',\n addJobBacklog: 'JB015',\n editJobBacklog: 'JB016',\n removeJobBacklog: 'JB017',\n jobs: 'JB001',\n jobsBoard: 'JB003',\n jobsReport: 'JB004',\n jobsImport: 'JB013',\n jobsWorkingActivity: 'JB014',\n listAsignedJobsBacklog: 'GF006',\n asignJobBacklogToUnit: 'GF007',\n listOwnLocations: 'JB008',\n addLocations: 'JB005',\n editLocations: 'JB006',\n assignLocations: 'JB007',\n listLocationImages: 'JB010',\n addLocationImages: 'JB011',\n removeLocationImages: 'JB012'\n};\n\nexport default permissions;\n","const paths = {\n telemetryTemperature: '/telemetry/temperature',\n telemetryFuelMonitor: '/telemetry/fuel/monitor',\n telemetryFuelReport: '/telemetry/fuel/report',\n telemetryFuelReportByVehicles: '/telemetry/fuel/vehicles/report',\n telemetryUnits: '/telemetry/units',\n telemetryOBD2: '/telemetry/obd2'\n};\n\nexport default paths;\n","import * as types from '../../types/board';\n\nexport const startFetchingJobsBoard = (filters = {}) => ({\n type: types.JOBS_BOARD_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingJobsBoard = (entities, order) => ({\n type: types.JOBS_BOARD_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingJobsBoard = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOBS_BOARD_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeStatusJobsBoard = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_STARTED,\n payload: { jobs, jobStatus, comment }\n});\nexport const completeChangeStatusJobsBoard = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobStatus, comment }\n});\nexport const failChangeStatusJobsBoard = (oldJobs, error) => ({\n type: types.JOBS_BOARD_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n","// ** Get Bookmarks Array from @fakeDB\nimport * as navbarTypes from \"../../types/navbar\";\n\nexport const completeFetchingBookmarks = (bookmarks, suggestions) => ({\n type: navbarTypes.GET_BOOKMARKS_FETCH_COMPLETED,\n payload: {\n bookmarks: bookmarks,\n suggestions: suggestions,\n },\n});\n\nexport const startFetchingBookmarks = () => ({\n type: navbarTypes.GET_BOOKMARKS_FETCH_STARTED,\n payload: {},\n});\n\nexport const failFetchingBookmarks = () => ({\n type: navbarTypes.GET_BOOKMARKS_FETCH_FAILED,\n payload: {},\n});\n\n// ** Update & Get Updated Bookmarks Array\nexport const updateBookmarkedStarted = (id) => ({\n type: navbarTypes.UPDATE_BOOKMARKED_STARTED,\n payload: { id },\n});\n\n// ** Update & Get Updated Bookmarks Array\nexport const updateBookmarkedCompleted = () => ({\n type: navbarTypes.UPDATE_BOOKMARKED_COMPLETED,\n payload: {},\n});\n\n// ** Update & Get Updated Bookmarks Array\nexport const updateBookmarkedFailed = () => ({\n type: navbarTypes.UPDATE_BOOKMARKED_FAILED,\n payload: {},\n});\n\n// ** Handle Bookmarks & Main Search Queries\nexport const handleSearchQuery = (val) => ({\n type: navbarTypes.HANDLE_SEARCH_QUERY,\n payload: val,\n});\n","import * as types from '../../types/workplansComments';\n\nexport const startFetchingComments = (visitId, locationId) => ({\n type: types.WORKPLAN_COMMENTS_FETCH_STARTED,\n payload: { visitId, locationId }\n});\nexport const completeFetchingComments = (entities, order) => ({\n type: types.WORKPLAN_COMMENTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingComments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKPLAN_COMMENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingComment = (comment) => ({\n type: types.WORKPLAN_COMMENT_ADD_STARTED,\n payload: comment\n});\nexport const completeAddingComment = (oldId, comment) => ({\n type: types.WORKPLAN_COMMENT_ADD_COMPLETED,\n payload: { oldId, comment }\n});\nexport const failAddingComment = (oldId, error) => ({\n type: types.WORKPLAN_COMMENT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startRemovingComment = (jobCommentId) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_STARTED,\n payload: {\n jobCommentId\n }\n});\nexport const completeRemovingComment = (jobCommentId) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_COMPLETED,\n payload: {\n jobCommentId\n }\n});\nexport const failRemovingComment = (jobCommentId, error) => ({\n type: types.WORKPLAN_COMMENT_REMOVE_FAILED,\n payload: {\n jobCommentId,\n error\n }\n});\n","import React, { useState } from 'react';\nimport { Button, Tooltip } from 'reactstrap';\nimport { useSelector } from 'react-redux';\nimport { Edit2 } from 'react-feather';\nimport { FormattedMessage } from 'react-intl';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n isDisabled?: boolean;\n id?: any;\n permissions?: any[];\n handleClick: () => any;\n tooltipMessage?: string;\n visible?: boolean;\n}\n\nconst EditButton = (props: Props) => {\n const store = useSelector((state) => state);\n const { id = '', isDisabled, handleClick, tooltipMessage, permissions, visible = true } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n handleClick()}\n >\n \n {tooltipMessage && (\n \n \n \n )}\n \n ) : null;\n};\n\nEditButton.defaultProps = {\n isDisabled: false\n};\n\nexport default EditButton;\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport _ from 'lodash';\nimport { useEffect } from 'react';\nimport Select, { components } from 'react-select';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport { FormGroup, InputGroup, InputGroupAddon, Label } from 'reactstrap';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst { Option, SingleValue, NoOptionsMessage } = components;\n//Filter option needed to work with formatted messages\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label &&\n _.deburr(candidate.data.label.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n _.deburr(candidate.data.label_intl.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\n\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {props.data.iconSVG && (\n \n )}\n {props.data.label}\n
\n
\n );\n};\n\nconst cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n});\n\nconst MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n};\n\nconst DropdownInput = (props) => {\n //const [touched, setTouched] = useState(false);\n const {\n input,\n meta: { error, touched, initial },\n hasPlaceholder = true,\n options = [],\n intl,\n isInModal = false,\n required,\n forceinitialvalue,\n additionalonchangefunction = (value) => null,\n isDisabled = false,\n menuIsOpen,\n onInputChange,\n ...inputProps\n } = props;\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n useEffect(() => {\n onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n input.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n \n {inputProps.label && (\n \n )}\n \n {props.prependcomponent}\n ({ ...styles, zIndex: 91000 }),\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused\n ? `1px solid ${primary} !important`\n : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n }}\n id={inputProps.id}\n components={{ Option: IconOption, SingleValue: IconSingleValue, MenuList }}\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={error && touched ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'}\n onChange={(event) => {\n onChangeFinal(event ? event.value : null);\n if (inputProps.onSelect) inputProps.onSelect(event);\n }}\n onBlur={() => {\n input.onBlur(input.value === '' ? null : input.value);\n }}\n options={options}\n filterOption={filterOption}\n isClearable={inputProps.isClearable}\n isDisabled={isDisabled}\n value={\n options.filter((option) => {\n const selectedValue = /^\\d+$/.test(input.value) ? parseInt(input.value) : input.value;\n const optionValue = /^\\d+$/.test(option.value)\n ? parseInt(option.value)\n : option.value;\n return optionValue === selectedValue;\n })[0] || null\n }\n menuIsOpen={menuIsOpen}\n defaultValue={\n inputProps.defaultValue ?? options.filter((opt) => opt.value == initial).length > 0\n ? options.filter((opt) => opt.value == initial)[0]\n : null\n }\n noOptionsMessage={() => appIntl().formatMessage({ id: 'common.noOptions' })}\n maxMenuHeight={250}\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n />\n {props.appendcomponent}\n \n {error && touched && (\n
\n {error}\n
\n )}\n
\n );\n};\n\nexport default DropdownInput;\n","// You can customize the template with the help of this file\r\nimport { env } from 'env';\r\n//Template config options\r\nconst themeConfig = {\r\n app: {\r\n appName: 'Webtrack',\r\n appLogoImage: require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logoName.png`).default,\r\n appLogo: require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logo.png`).default\r\n },\r\n layout: {\r\n isRTL: false,\r\n skin: 'bordered', // light, dark, bordered, semi-dark\r\n routerTransition: 'fadeIn', // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/\r\n type: 'vertical', // vertical, horizontal\r\n contentWidth: 'full', // full, boxed\r\n menu: {\r\n isHidden: false,\r\n isCollapsed: false,\r\n isPinner: false\r\n },\r\n navbar: {\r\n // ? For horizontal menu, navbar type will work for navMenu type\r\n type: 'sticky', // static , sticky , floating, hidden\r\n backgroundColor: 'white' // BS color options [primary, success, etc]\r\n },\r\n footer: {\r\n type: 'static' // static, sticky, hidden\r\n },\r\n customizer: env.REACT_APP_CUSTOMIZER === 'true' ? true : false,\r\n scrollTop: true // Enable scroll to top button\r\n }\r\n};\r\n\r\nexport default themeConfig;\r\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/user';\n\ninterface RolesPermissionsUserRequest {\n userId?: number;\n userName?: string;\n rolId?: number;\n permissionId?: string;\n permissions?: string[];\n}\n\ninterface ScreensRequest {\n userId?: number;\n roleId: number;\n}\n\ninterface UserDeleteRequest {\n userName: string;\n}\n\ninterface UserNameValidate {\n userName: string;\n userNameEdit: string;\n}\n\ninterface UserFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n}\n\ninterface UserFiltersStatus {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n userStatus?: number;\n}\n\ninterface UserRequest {\n userName: string;\n password: string;\n completeName: string;\n email: string;\n imageName: string;\n accessLevelId: number;\n utcZoneId: number;\n currencyId: number;\n metricSystemId: number;\n userStatus: number;\n operatorId: number;\n organizationId: number;\n divisionId: number;\n subdivisionId: number;\n enableLocationClustering: number;\n locationMapLabelAlwaysOn: number;\n activateUnitTrackMode: number;\n unitMapLabelAlwaysOn: number;\n useGoogleMaps: number;\n useBingMaps: number;\n useHereMaps: number;\n}\n\nexport const getUsersListService = (request: UserFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveUserService = (request: UserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteUserService = (request: UserDeleteRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.userName}`,\n object: 'users.user',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const availabilityUserNameService = (request: UserNameValidate) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n return httpWebtrack.post(`${baseUrl}/availabilityUserName`, request);\n};\n\nexport const getRoles = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/roles`, request);\n};\n\nexport const getPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permissions',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/permissions`, request);\n};\n\nexport const getRolesAndPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rolesAndPermissions`, request);\n};\n\nexport const getPermissionGroups = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/permissionGroups`, request);\n};\n\nexport const getRolePermissionGroups = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.roles',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rolePermissionGroups`, request);\n};\n\nexport const addRole = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.role',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addRole`, request);\n};\n\nexport const removeRole = (request: RolesPermissionsUserRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.role',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removeRole`, request);\n};\n\nexport const addPermission = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addPermission`, request);\n};\n\nexport const addPermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addPermissions`, request);\n};\n\nexport const removePermission = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removePermission`, request);\n};\n\nexport const removePermissions = (\n request: RolesPermissionsUserRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.permission',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removePermissions`, request);\n};\n\nexport const getScreens = (request: ScreensRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.screen',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/screens`, request);\n};\n\nexport const getSuspendedUsersListService = (\n request: UserFiltersStatus,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDisabled`, request);\n};\n\nexport const updateUserStatus = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Edit',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateStatus`, request);\n};\n\nexport const getUsersListByFiltersService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getByFilters`, request);\n};\n\nexport const getUserByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n\nexport const getUserByAutoComplete = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'users.user',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUsersByAutoComplete`, request);\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport { isNullOrUndefined } from 'utility/Utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.VEHICLES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((vehicleId) => {\n newState[vehicleId] = {\n isSelected: false,\n ...state[vehicleId],\n ...entities[vehicleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((vehicleId) => {\n newState[vehicleId] = {\n isSelected: false,\n ...state[vehicleId],\n ...entities[vehicleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.VEHICLE_ADD_COMPLETED: {\n const { oldId, vehicle } = action.payload;\n const newState = omit(state, oldId);\n newState[vehicle.vehicleId] = {\n ...state[oldId],\n ...vehicle,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.VEHICLE_EDIT_COMPLETED: {\n const vehicle = action.payload;\n return {\n ...state,\n [vehicle.vehicleId]: {\n ...omit(state[vehicle.vehicleId], ['oldVehicle']),\n ...omit(vehicle, ['oldVehicle']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.VEHICLE_ADD_STARTED: {\n const vehicle = action.payload;\n const newState = { ...state };\n newState[vehicle.vehicleId] = {\n isSelected: false,\n ...vehicle,\n isConfirmed: false\n };\n return newState;\n }\n case types.VEHICLE_EDIT_STARTED: {\n const vehicle = action.payload;\n return {\n ...state,\n [vehicle.vehicleId]: {\n ...state[vehicle.vehicleId],\n oldVehicle: state[vehicle.vehicleId],\n ...vehicle,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.VEHICLE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.VEHICLE_EDIT_FAILED: {\n const { oldVehicle } = action.payload;\n return {\n ...state,\n [oldVehicle.vehicleId]: {\n ...omit(state[oldVehicle.vehicleId], ['oldVehicle']),\n ...oldVehicle,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.VEHICLE_REMOVE_COMPLETED: {\n const { vehicleId } = action.payload;\n return omit(state, vehicleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.VEHICLE_SELECTED: {\n const vehicleId = action.payload;\n const newState = {\n ...state,\n [vehicleId]: {\n ...state[vehicleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.VEHICLE_DESELECTED: {\n const vehicleId = action.payload;\n return {\n ...state,\n [vehicleId]: {\n ...state[vehicleId],\n isSelected: false\n }\n };\n }\n\n case types.VEHICLES_ALL_SELECTED: {\n const vehicleIds = action.payload;\n const newState = { ...state };\n if (vehicleIds.length == 0) {\n forEach(state, (vehicle: any, vehicleId) => {\n newState[vehicleId] = {\n ...vehicle,\n isSelected: true\n };\n });\n } else {\n vehicleIds.forEach((vehicleId) => {\n newState[vehicleId] = {\n ...state[vehicleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.VEHICLES_ALL_DESELECTED: {\n const vehicleIds = action.payload;\n const newState = { ...state };\n if (vehicleIds.length == 0) {\n forEach(state, (vehicle: any, vehicleId) => {\n newState[vehicleId] = {\n ...vehicle,\n isSelected: false\n };\n });\n } else {\n vehicleIds.forEach((vehicleId) => {\n newState[vehicleId] = {\n ...state[vehicleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.VEHICLES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.VEHICLE_ADD_COMPLETED: {\n const { oldId, vehicle } = action.payload;\n return state.map((vehicleId) => (vehicleId === oldId ? vehicle.vehicleId : vehicleId));\n }\n\n case types.VEHICLE_REMOVE_COMPLETED: {\n const { vehicleId } = action.payload;\n return state.filter((vehicleIdState) => vehicleIdState !== vehicleId);\n }\n\n //CASE ADD STARTED\n case types.VEHICLE_ADD_STARTED: {\n const vehicle = action.payload;\n return [...state, vehicle.vehicleId];\n }\n\n //CASE ADD FAILED\n case types.VEHICLE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((vehicleIdState) => vehicleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLES_FETCH_STARTED: {\n return true;\n }\n case types.VEHICLES_FETCH_COMPLETED:\n case types.VEHICLES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED:\n case types.VEHICLES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_ADD_STARTED: {\n return true;\n }\n case types.VEHICLE_ADD_COMPLETED:\n case types.VEHICLE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_EDIT_STARTED: {\n return true;\n }\n case types.VEHICLE_EDIT_COMPLETED:\n case types.VEHICLE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.VEHICLE_REMOVE_STARTED: {\n return true;\n }\n case types.VEHICLE_REMOVE_COMPLETED:\n case types.VEHICLE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLES_FETCH_STARTED:\n case types.VEHICLES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLES_PARTIAL_FETCH_STARTED:\n case types.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_ADD_STARTED:\n case types.VEHICLE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_EDIT_STARTED:\n case types.VEHICLE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.VEHICLE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.VEHICLE_REMOVE_STARTED:\n case types.VEHICLE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.VEHICLE_LICENSE_PLATE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.VEHICLE_LICENSE_PLATE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst vehicles = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n validCode\n});\n\nexport default vehicles;\n\n//Own state\nexport const getOwnState = (state) => state.vehicles;\n\n//Information\nexport const getVehicle = (state, vehicleId) => getOwnState(state).byId[vehicleId];\nexport const getVehiclesList = (state) =>\n getOwnState(state)\n .order.map((id) => getVehicle(state, id))\n .filter((vehicle) => vehicle.vehicleStatus > 0);\nexport const getVehiclesListAll = (state) =>\n getOwnState(state).order.map((id) => getVehicle(state, id));\nexport const getVehiclesListByMembership = (state, membership) =>\n getVehiclesList(state).filter(\n (vehicle) =>\n membership &&\n (!membership.operatorId || membership.operatorId === vehicle.operatorId) &&\n (!membership.organizationId || membership.organizationId === vehicle.organizationId) &&\n (!membership.divisionId || membership.divisionId === vehicle.divisionId || isNullOrUndefined(vehicle.divisionId)) &&\n (!membership.subdivisionId || membership.subdivisionId === vehicle.subdivisionId || isNullOrUndefined(vehicle.subdivisionId))\n );\nexport const isLicenseValid = (state) => getOwnState(state).validCode;\n\nexport const getSelectedVehicles = (state) => {\n const selectedVehicles = getVehiclesList(state).filter((vehicle) => vehicle.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedVehicles.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedVehicles.length > 0) return selectedVehicles;\n};\n\nexport const getSelectedVehicle = (state) => {\n const selectedVehicles = getVehiclesList(state).filter((vehicle) => vehicle.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedVehicles.length === 1) return selectedVehicles[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListVehicles = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListVehicles = (state) => getOwnState(state).isFetchingList;\nexport const isAddingVehicle = (state) => getOwnState(state).isAdding;\nexport const isEditingVehicle = (state) => getOwnState(state).isEditing;\nexport const isRemovingVehicle = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListVehiclesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListVehiclesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingVehicleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingVehicleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingVehicleErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansExecutions';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport * as unitSelectors from '../../../Units/reducers';\nimport locations, * as workplansExecutionsLocationsSelectors from '../workplansExecutionLocations';\nimport permissions from '../../permissions';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n const { workplanExecution } = action.payload;\n const newState = { ...state };\n\n newState[workplanExecution.visitId] = {\n isSelected: false,\n ...state[workplanExecution.visitId],\n ...workplanExecution,\n isConfirmed: true\n };\n return newState;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_COMPLETED: {\n const { visitId } = action.payload;\n return omit(state, visitId);\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED: {\n const { visitId } = action.payload;\n const newState = { ...state };\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n executionStatus: 5,\n isConfirmed: true\n };\n return newState;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED: {\n const { visitId, unitId } = action.payload;\n const newState = { ...state };\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n unitId,\n isConfirmed: true\n };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n const { workplanExecution } = action.payload;\n return uniq([...state, workplanExecution.visitId]);\n }\n case types.WORKPLANS_EXECUTION_CANCEL_COMPLETED: {\n const { visitId } = action.payload;\n return state.filter((id) => id !== visitId);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst executionStatus = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { executionStatus } = action.payload;\n const newState = { ...executionStatus };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst geographicStatus = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n const { geographicStatus } = action.payload;\n const newState = { ...geographicStatus };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingExecutions = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTIONS_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED:\n case types.WORKPLANS_EXECUTIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_EXECUTION_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED:\n case types.WORKPLAN_EXECUTION_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCancelingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_COMPLETED:\n case types.WORKPLANS_EXECUTION_CANCEL_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFinalizingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED:\n case types.WORKPLANS_EXECUTION_FINALIZE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isManualTransitExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED:\n case types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isChangingExecutionUnit = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED: {\n return true;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED:\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingExecutions = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_EXECUTIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_EXECUTIONS_FETCH_STARTED:\n case types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_EXECUTION_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_EXECUTION_FETCH_STARTED:\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCancelingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_EXECUTION_CANCEL_STARTED:\n case types.WORKPLANS_EXECUTION_CANCEL_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFinalizingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_EXECUTION_FINALIZE_STARTED:\n case types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorChangingExecutionUnit = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED:\n case types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansExecutions = combineReducers({\n byId,\n order,\n indicators,\n executionStatus,\n geographicStatus,\n locations,\n isFetchingExecutions,\n isFetchingExecution,\n isCancelingExecution,\n isFinalizingExecution,\n isManualTransitExecution,\n isChangingExecutionUnit,\n errorFetchingExecutions,\n errorFetchingExecution,\n errorCancelingExecution,\n errorFinalizingExecution,\n errorChangingExecutionUnit\n});\n\nexport default workplansExecutions;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansExecutions;\n\n//Information\nexport const getWorkplansExecution = (state, visitId) => {\n const intl = appIntl();\n const workplanExecution = getOwnState(state).byId[visitId];\n if (workplanExecution) {\n const workplansExecutionsLocations =\n workplansExecutionsLocationsSelectors.getLocationsListByVisit(\n state,\n workplanExecution.visitId\n );\n const workplansExecutionsGeofences = [\n ...geofenceSelectors\n .getGeofencesList(state)\n .filter((geofence) =>\n [\n workplanExecution.originGeofenceId,\n workplanExecution.workGeofenceId,\n workplanExecution.destinationGeofenceId\n ].includes(geofence.geofenceId)\n ),\n workplanExecution?.workGeofenceArea\n ? {\n geofenceId: 'autogeneratedGeofence',\n shape: 'P',\n geofenceName: intl.formatMessage({ id: 'workplans.autogeneratedGeofence' }),\n geofenceWktString: workplanExecution?.workGeofenceArea\n }\n : undefined\n ].filter((geofence) => geofence);\n const originGeofence =\n workplansExecutionsGeofences.filter(\n (geofence) => geofence.geofenceId === workplanExecution?.originGeofenceId\n )[0] ?? undefined;\n const workGeofence =\n workplansExecutionsGeofences.filter((geofence) =>\n [workplanExecution?.workGeofenceId, 'autogeneratedGeofence'].includes(geofence.geofenceId)\n )[0] ?? undefined;\n const destinationGeofence =\n workplansExecutionsGeofences.filter(\n (geofence) => geofence.geofenceId === workplanExecution?.destinationGeofenceId\n )[0] ?? undefined;\n\n var executionStatusLabel = '';\n var executionStatusLabelInfo = '';\n switch (workplanExecution.executionStatus) {\n case 0:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.programmed'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.programmedInfo'\n });\n break;\n case 1:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.onTransit'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.onTransitInfo'\n });\n break;\n case 2:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.onOrigin'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.onOriginInfo'\n });\n break;\n case 3:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.onDestination'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.onDestinationInfo'\n });\n break;\n case 4:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.onLocation'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.onLocationInfo'\n });\n break;\n case 5:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.complete'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.completeInfo'\n });\n break;\n case 7:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.dht'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.dhtInfo'\n });\n break;\n case 8:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.ddt'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.ddtInfo'\n });\n break;\n case 9:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.fat'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.fatInfo'\n });\n break;\n case 10:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.dhd'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.dhdInfo'\n });\n break;\n case 11:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.eao'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.eaoInfo'\n });\n break;\n case 12:\n executionStatusLabel = intl.formatMessage({\n id: 'workplans.incomplete'\n });\n executionStatusLabelInfo = intl.formatMessage({\n id: 'workplans.incompleteInfo'\n });\n break;\n default:\n executionStatusLabel = '';\n executionStatusLabelInfo = '';\n break;\n }\n return {\n ...workplanExecution,\n progress: (workplanExecution.visited / (workplanExecution.total || 1)) * 100,\n progressLabel:\n Math.round((workplanExecution.visited / (workplanExecution.total || 1)) * 100) + '%',\n pending: workplanExecution.total - workplanExecution.visited,\n sequenceCompliance:\n parseInt(workplanExecution.sequenceCountValid || 0) +\n ' | ' +\n parseInt(workplanExecution.sequenceCountInvalid || 0) +\n ' | ' +\n parseInt(workplanExecution.sequenceCountPending || 0),\n executionStatusLabel,\n executionStatusLabelInfo,\n originGeofenceName: originGeofence?.geofenceName ?? '',\n workGeofenceId: workGeofence?.geofenceId ?? null,\n workGeofenceName: workGeofence?.geofenceName ?? '',\n destinationGeofenceName: destinationGeofence?.geofenceName ?? '',\n locations: workplansExecutionsLocations,\n geofences: workplansExecutionsGeofences\n };\n } else return undefined;\n};\nexport const getWorkplansExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getWorkplansExecution(state, id));\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n\n const total =\n indicators.totalComplete + indicators.totalIncomplete > 0\n ? indicators.totalComplete + indicators.totalIncomplete\n : 1;\n const finalIndicators = {\n ...indicators,\n executionPercent: (indicators.totalComplete / total) * 100\n };\n return [\n {\n title: intl.formatMessage({\n id: 'workplans.plans'\n }),\n permissions: [permissions.viewPlansIndicator],\n bigIndicator: finalIndicators.totalAssignedPlans || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.scheduledWorkplans'\n }) +\n ': ' +\n parseInt(finalIndicators.totalScheduledPlans || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.activeWorkplans'\n }) +\n ': ' +\n parseInt(finalIndicators.totalActivePlans || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.completeWorkplans'\n }) +\n ': ' +\n parseInt(finalIndicators.totalCompletePlans || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.incompleteWorkplans'\n }) +\n ': ' +\n parseInt(finalIndicators.totalIncompletePlans || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.units'\n }) +\n ': ' +\n parseInt(finalIndicators.totalUnits || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.locations'\n }),\n permissions: [permissions.viewLocationsIndicator],\n bigIndicator: finalIndicators.totalLocations || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.pending'\n }) +\n ': ' +\n parseInt(finalIndicators.totalIncomplete || 0)\n },\n {\n popoverTitle: intl.formatMessage({\n id: 'workplans.sequenceCompliance'\n }),\n popoverBody: intl.formatMessage({\n id: 'workplans.complianceYesNotPend'\n }),\n info:\n intl.formatMessage({\n id: 'workplans.sequence'\n }) +\n ': ' +\n parseInt(finalIndicators.sequenceCountValid || 0) +\n ' | ' +\n parseInt(finalIndicators.sequenceCountInvalid || 0) +\n ' | ' +\n parseInt(finalIndicators.sequenceCountPending || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.withoutSequence'\n }) +\n ': ' +\n (finalIndicators.totalLocations -\n (finalIndicators.sequenceCountValid +\n finalIndicators.sequenceCountInvalid +\n finalIndicators.sequenceCountPending)) || 0\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.confirmed'\n }) +\n ': ' +\n parseInt(finalIndicators.totalConfirmed || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.visits'\n }),\n permissions: [permissions.viewVisitsIndicator],\n bigIndicator: finalIndicators.totalVisited || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.onTime'\n }) +\n ': ' +\n parseInt(finalIndicators.totalNormal || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.early'\n }) +\n ': ' +\n parseInt(finalIndicators.totalEarly || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.late'\n }) +\n ': ' +\n parseInt(finalIndicators.totalLate || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.repeated'\n }) +\n ': ' +\n parseInt(finalIndicators.totalRepeated || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.visitsPercent'\n }),\n permissions: [permissions.viewExecutionIndicator],\n bigIndicator: Math.round(finalIndicators.executionPercent || 0) + '%'\n }\n ];\n};\nexport const getDurationStatus = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n var labels: any[] = [];\n var series: any[] = [];\n if (\n indicators.totalNormalDuration > 0 ||\n indicators.totalShortDuration > 0 ||\n indicators.totalLongDuration > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'workplans.normal'\n }),\n intl.formatMessage({\n id: 'workplans.toShortPermanence'\n }),\n intl.formatMessage({\n id: 'workplans.toLongPermanence'\n })\n ];\n series = [\n indicators.totalNormalDuration,\n indicators.totalShortDuration,\n indicators.totalLongDuration\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.effectivenessInPermanence'\n }),\n permissions: [permissions.viewPermanenceEffectivenessGraph],\n labels: labels,\n series: series,\n duration: ['N', 'C', 'L']\n };\n};\nexport const getExecutionStatus = (state) => {\n const intl = appIntl();\n const executionStatus = getOwnState(state).executionStatus;\n var labels: any[] = [];\n var series: any[] = [];\n if (\n executionStatus.complete > 0 ||\n executionStatus.incomplete > 0 ||\n executionStatus.inAction > 0 ||\n executionStatus.scheduled > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'workplans.complete'\n }),\n intl.formatMessage({\n id: 'workplans.incomplete'\n }),\n intl.formatMessage({\n id: 'workplans.inAction'\n }),\n intl.formatMessage({\n id: 'workplans.scheduledWorkplans'\n })\n ];\n series = [\n executionStatus.complete,\n executionStatus.incomplete,\n executionStatus.inAction,\n executionStatus.scheduled\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.executionStatus'\n }),\n labels: labels,\n values: ['T', 'I', 'A', 'P'],\n series: series\n };\n};\nexport const getGeographicStatus = (state) => {\n const intl = appIntl();\n const geographicStatus = getOwnState(state).geographicStatus;\n const colorsGeographicStatus = [\n '#490002',\n '#44ABFF',\n '#FFC737',\n '#005BE0',\n '#7669E8',\n '#FF4459',\n '#1F8836',\n '#00D57E',\n '#FF7B7B'\n ];\n return {\n title: intl.formatMessage({\n id: 'workplans.geographicStatus'\n }),\n labels: Object.keys(geographicStatus)\n .filter((label) => geographicStatus[label] > 0)\n .map((label) =>\n intl.formatMessage({\n id: 'workplans.' + label\n })\n ),\n values: Object.keys(geographicStatus)\n .filter((label) => geographicStatus[label] > 0)\n .map((label) => 'workplans.' + label),\n colors: Object.keys(geographicStatus)\n .map((label, i) => {\n if (geographicStatus[label] > 0) return colorsGeographicStatus[i];\n })\n .filter((color) => color),\n series: Object.values(geographicStatus).filter((value: any) => value > 0)\n };\n};\n//Status of sagas\nexport const isFetchingWorkplansExecutions = (state) => getOwnState(state).isFetchingExecutions;\nexport const isFetchingWorkplanExecution = (state) => getOwnState(state).isFetchingExecution;\nexport const isCancelingWorkplansExecution = (state) => getOwnState(state).isCancelingExecution;\nexport const isFinalizingWorkplansExecution = (state) => getOwnState(state).isFinalizingExecution;\nexport const isManualTransitWorkplansExecution = (state) =>\n getOwnState(state).isManualTransitExecution;\nexport const isChangingWorkplansExecutionUnit = (state) =>\n getOwnState(state).isChangingExecutionUnit;\n\n//Errors\nexport const getFetchingWorkplansExecutionsErrors = (state) =>\n getOwnState(state).errorFetchingExecutions;\nexport const getFetchingWorkplanExecutionErrors = (state) =>\n getOwnState(state).errorFetchingExecution;\nexport const getCancelingWorkplansExecutionErrors = (state) =>\n getOwnState(state).errorCancelingExecution;\nexport const getFinalizingWorkplansExecutionErrors = (state) =>\n getOwnState(state).errorFinalizingExecution;\nexport const getChangingWorkplansExecutionUnitErrors = (state) =>\n getOwnState(state).errorChangingExecutionUnit;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansVisits';\nimport * as unitSelectors from '../../../Units/reducers';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_VISITS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_VISITS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst allById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst allOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingVisits = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_VISITS_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_VISITS_FETCH_COMPLETED:\n case types.WORKPLANS_VISITS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingAllVisits = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_ALL_VISITS_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED:\n case types.WORKPLANS_ALL_VISITS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingVisits = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_VISITS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_VISITS_FETCH_STARTED:\n case types.WORKPLANS_VISITS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAllVisits = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_ALL_VISITS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_ALL_VISITS_FETCH_STARTED:\n case types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansVisits = combineReducers({\n byId,\n order,\n allById,\n allOrder,\n isFetchingVisits,\n isFetchingAllVisits,\n errorFetchingVisits,\n errorFetchingAllVisits\n});\n\nexport default workplansVisits;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansVisits;\n\n//Information\nexport const getWorkplansVisit = (state, visitId) => {\n const workplanVisit = getOwnState(state).byId[visitId];\n if (workplanVisit) {\n return workplanVisit;\n } else return undefined;\n};\nexport const getWorkplansVisitsList = (state) =>\n getOwnState(state).order.map((id) => getWorkplansVisit(state, id));\n\nexport const getWorkplansAllVisit = (state, visitId) => {\n const workplanVisit = getOwnState(state).allById[visitId];\n if (workplanVisit) {\n return workplanVisit;\n } else return undefined;\n};\nexport const getWorkplansAllVisitsList = (state) =>\n getOwnState(state).allOrder.map((id) => getWorkplansAllVisit(state, id));\n\nexport const getWorkplansVisitsListByDuration = (state, duration) =>\n getWorkplansVisitsList(state).filter((visit) => {\n return visit.duration === duration && ['V', 'A', 'T'].includes(visit.visitStatus);\n });\n\nexport const getWorkplanAllVisitsById = (state, visitId) =>\n getWorkplansAllVisitsList(state).filter((visit) => visit.visitId === visitId);\n\nexport const getWorkplansAllVisitsListByFilters = (state, visitId, locationId, visitStatusArray) =>\n getWorkplansAllVisitsList(state).filter(\n (visit) =>\n visit.visitId === visitId &&\n visit.locationId === locationId &&\n visitStatusArray.includes(visit.visitStatus)\n );\n\n//Status of sagas\nexport const isFetchingWorkplansVisits = (state) => getOwnState(state).isFetchingVisits;\nexport const isFetchingWorkplansAllVisits = (state) => getOwnState(state).isFetchingAllVisits;\n\n//Errors\nexport const getFetchingWorkplansVisitsErrors = (state) => getOwnState(state).errorFetchingVisits;\nexport const getFetchingWorkplansAllVisitsErrors = (state) =>\n getOwnState(state).errorFetchingAllVisits;\n","import { combineReducers } from 'redux';\n\nimport { orderBy, union } from 'lodash';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansReport';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport * as unitSelectors from '../../../Units/reducers';\nimport permissions from '../../permissions';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { unitsEntities, unitsOrder } = action.payload;\n const newState = { ...state };\n unitsOrder.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n ...state[unitId],\n ...unitsEntities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { unitsOrder } = action.payload;\n return union(unitsOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst locationsById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { locationsEntities, locationsOrder } = action.payload;\n const newState = { ...state };\n locationsOrder.forEach((locationId) => {\n newState[locationId] = {\n isSelected: false,\n ...state[locationId],\n ...locationsEntities[locationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst locationsOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n const { locationsOrder } = action.payload;\n return union(locationsOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingReport = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_REPORT_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_REPORT_FETCH_COMPLETED:\n case types.WORKPLANS_REPORT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingReport = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_REPORT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_REPORT_FETCH_STARTED:\n case types.WORKPLANS_REPORT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplansReport = combineReducers({\n byId,\n order,\n indicators,\n unitsById,\n unitsOrder,\n locationsById,\n locationsOrder,\n isFetchingReport,\n errorFetchingReport\n});\n\nexport default workplansReport;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansReport;\n\n//Information\nexport const getWorkplansExecution = (state, visitId) => {\n const intl = appIntl();\n const workplanExecution = getOwnState(state).byId[visitId];\n if (workplanExecution) {\n const originGeofence = workplanExecution.originGeofenceId\n ? geofenceSelectors.getGeofence(state, workplanExecution.originGeofenceId)\n : undefined;\n const workGeofence = workplanExecution.workGeofenceId\n ? geofenceSelectors.getGeofence(state, workplanExecution.workGeofenceId)\n : undefined;\n const destinationGeofence = workplanExecution.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, workplanExecution.destinationGeofenceId)\n : undefined;\n var visitStatusLabel = '';\n switch (workplanExecution.visitStatus) {\n case 'I':\n visitStatusLabel = intl.formatMessage({\n id: 'workplans.incomplete'\n });\n break;\n case 'T':\n visitStatusLabel = intl.formatMessage({\n id: 'workplans.complete'\n });\n break;\n case 'A':\n visitStatusLabel = intl.formatMessage({\n id: 'workplans.active'\n });\n break;\n default:\n visitStatusLabel = '';\n break;\n }\n return {\n ...workplanExecution,\n progress: (workplanExecution.visited / (workplanExecution.assigned || 1)) * 100,\n progressLabel:\n Math.round((workplanExecution.visited / (workplanExecution.assigned || 1)) * 100) + '%',\n sequenceCompliance:\n parseInt(workplanExecution.sequenceCountValid || 0) +\n ' | ' +\n parseInt(workplanExecution.sequenceCountInvalid || 0) +\n ' | ' +\n parseInt(workplanExecution.sequenceCountPending || 0),\n visitStatusLabel,\n originGeofenceName: originGeofence ? originGeofence.geofenceName : '',\n workGeofenceName: workGeofence\n ? workGeofence.geofenceName\n : workplanExecution?.workGeofenceArea\n ? intl.formatMessage({ id: 'workplans.autogeneratedGeofence' })\n : '',\n destinationGeofenceName: destinationGeofence ? destinationGeofence.geofenceName : ''\n };\n } else return undefined;\n};\nexport const getWorkplansExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getWorkplansExecution(state, id));\nexport const getWorkplansUnit = (state, visitId) => {\n const unit = getOwnState(state).unitsById[visitId];\n return {\n ...unit,\n progress: (unit.totalComplete / (unit.totalComplete + unit.totalIncomplete || 1)) * 100,\n progressLabel:\n Math.round((unit.totalComplete / (unit.totalComplete + unit.totalIncomplete || 1)) * 100) +\n '%'\n };\n};\nexport const getWorkplansUnitsList = (state) =>\n orderBy(\n getOwnState(state).unitsOrder.map((id) => getWorkplansUnit(state, id)),\n 'total',\n 'desc'\n );\nexport const getWorkplansLocation = (state, visitId) => getOwnState(state).locationsById[visitId];\nexport const getWorkplansLocationsList = (state) =>\n orderBy(\n getOwnState(state).locationsOrder.map((id) => getWorkplansLocation(state, id)),\n 'total',\n 'desc'\n );\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n const total =\n indicators.totalComplete + indicators.totalIncomplete > 0\n ? indicators.totalComplete + indicators.totalIncomplete\n : 1;\n const finalIndicators = {\n ...indicators,\n executionPercent: (indicators.totalComplete / total) * 100\n };\n return [\n {\n title: intl.formatMessage({\n id: 'workplans.assignedWorkplans'\n }),\n permissions: [permissions.viewPlansIndicator],\n bigIndicator: finalIndicators.totalAssignedPlans || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.units'\n }) +\n ': ' +\n parseInt(finalIndicators.totalUnits || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.locations'\n }),\n permissions: [permissions.viewLocationsIndicator],\n bigIndicator: finalIndicators.totalLocations || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.notVisited'\n }) +\n ': ' +\n parseInt(finalIndicators.totalIncomplete || 0)\n },\n {\n popoverTitle: intl.formatMessage({\n id: 'workplans.sequenceCompliance'\n }),\n popoverBody: intl.formatMessage({\n id: 'workplans.complianceYesNotPend'\n }),\n info:\n intl.formatMessage({\n id: 'workplans.sequence'\n }) +\n ': ' +\n parseInt(finalIndicators.sequenceCountValid || 0) +\n ' | ' +\n parseInt(finalIndicators.sequenceCountInvalid || 0) +\n ' | ' +\n parseInt(finalIndicators.sequenceCountPending || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.withoutSequence'\n }) +\n ': ' +\n (finalIndicators.totalLocations -\n (finalIndicators.sequenceCountValid +\n finalIndicators.sequenceCountInvalid +\n finalIndicators.sequenceCountPending)) || 0\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.confirmed'\n }) +\n ': ' +\n finalIndicators.totalConfirmed || 0\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.visits'\n }),\n permissions: [permissions.viewVisitsIndicator],\n bigIndicator: finalIndicators.totalVisited || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'workplans.onTime'\n }) +\n ': ' +\n parseInt(finalIndicators.totalNormal || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.early'\n }) +\n ': ' +\n parseInt(finalIndicators.totalEarly || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.late'\n }) +\n ': ' +\n parseInt(finalIndicators.totalLate || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'workplans.repeated'\n }) +\n ': ' +\n parseInt(finalIndicators.totalRepeated || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.percentComplete'\n }),\n permissions: [permissions.viewExecutionIndicator],\n bigIndicator: Math.round(finalIndicators.executionPercent || 0) + '%'\n }\n ];\n};\nexport const getEffectivenessStatus = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n var labels: any[] = [];\n var series: any[] = [];\n if (indicators.totalComplete > 0 || indicators.totalIncomplete > 0 || indicators.totalConfirmed) {\n labels = [\n intl.formatMessage({\n id: 'workplans.visited'\n }),\n intl.formatMessage({\n id: 'workplans.notVisited'\n }),\n intl.formatMessage({\n id: 'workplans.confirmed'\n })\n ];\n series = [\n indicators.totalComplete ?? 0,\n indicators.totalIncomplete ?? 0,\n indicators.totalConfirmed ?? 0\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.effectiveness'\n }),\n labels: labels,\n series: series\n };\n};\nexport const getArrivalStatus = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n var labels: any[] = [];\n var series: any[] = [];\n if (indicators.totalNormal > 0 || indicators.totalEarly > 0 || indicators.totalLate > 0) {\n labels = [\n intl.formatMessage({\n id: 'workplans.onTime'\n }),\n intl.formatMessage({\n id: 'workplans.early'\n }),\n intl.formatMessage({\n id: 'workplans.late'\n })\n ];\n series = [indicators.totalNormal, indicators.totalEarly, indicators.totalLate];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.performanceOnArrival'\n }),\n permissions: [permissions.viewArrivalEffectivnessGraph],\n labels: labels,\n series: series\n };\n};\nexport const getDurationStatus = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n var labels: any[] = [];\n var series: any[] = [];\n if (\n indicators.totalNormalDuration > 0 ||\n indicators.totalShortDuration > 0 ||\n indicators.totalLongDuration > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'workplans.normal'\n }),\n intl.formatMessage({\n id: 'workplans.toShortPermanence'\n }),\n intl.formatMessage({\n id: 'workplans.toLongPermanence'\n })\n ];\n series = [\n indicators.totalNormalDuration,\n indicators.totalShortDuration,\n indicators.totalLongDuration\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'workplans.performanceOnPermanence'\n }),\n permissions: [permissions.viewPermanenceEffectivenessGraph],\n labels: labels,\n series: series\n };\n};\nexport const getSlidingPaneInformation = (state, chartId) => {\n const intl = appIntl();\n const colors = ['#2ED573', '#1E90FF', '#FFA502', '#FF4757'];\n const workplansUnits = getWorkplansUnitsList(state);\n const workplansLocations = getWorkplansLocationsList(state);\n const total = workplansUnits.reduce((total, obj) => obj.total + total, 0);\n return {\n indicators: [\n {\n title: intl.formatMessage({\n id: 'workplans.total'\n }),\n size: '4',\n bigIndicator: total || 0\n },\n {\n title: intl.formatMessage({\n id:\n chartId === 'effectivenessStatusChart'\n ? 'workplans.visited'\n : chartId === 'arrivalStatusChart'\n ? 'workplans.onTime'\n : 'workplans.normal'\n }),\n size: '4',\n bigIndicator:\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'effectivenessStatusChart'\n ? obj.totalComplete\n : chartId === 'arrivalStatusChart'\n ? obj.totalNormal\n : obj.totalNormalDuration) + total,\n 0\n ) || 0,\n details: [\n {\n info:\n Math.round(\n (parseInt(\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'effectivenessStatusChart'\n ? obj.totalComplete\n : chartId === 'arrivalStatusChart'\n ? obj.totalNormal\n : obj.totalNormalDuration) + total,\n 0\n ) || 0\n ) /\n (total || 1)) *\n 100\n ) + '%'\n }\n ]\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n title: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart' ? 'workplans.early' : 'workplans.toShortPermanence'\n }),\n size: '4',\n bigIndicator:\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'arrivalStatusChart' ? obj.totalEarly : obj.totalShortDuration) +\n total,\n 0\n ) || 0,\n details: [\n {\n info:\n Math.round(\n (parseInt(\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'arrivalStatusChart'\n ? obj.totalEarly\n : obj.totalShortDuration) + total,\n 0\n ) || 0\n ) /\n (total || 1)) *\n 100\n ) + '%'\n }\n ]\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n title: intl.formatMessage({\n id: chartId === 'arrivalStatusChart' ? 'workplans.late' : 'workplans.toLongPermanence'\n }),\n size: '4',\n bigIndicator:\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'arrivalStatusChart' ? obj.totalLate : obj.totalLongDuration) +\n total,\n 0\n ) || 0,\n details: [\n {\n info:\n Math.round(\n (parseInt(\n workplansUnits.reduce(\n (total, obj) =>\n (chartId === 'arrivalStatusChart'\n ? obj.totalLate\n : obj.totalLongDuration) + total,\n 0\n ) || 0\n ) /\n (total || 1)) *\n 100\n ) + '%'\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'workplans.notVisited'\n }),\n size: '4',\n bigIndicator:\n workplansUnits.reduce(\n (totalIncomplete, obj) => obj.totalIncomplete + totalIncomplete,\n 0\n ) || 0,\n details: [\n {\n info:\n Math.round(\n (parseInt(\n workplansUnits.reduce(\n (totalIncomplete, obj) => obj.totalIncomplete + totalIncomplete,\n 0\n ) || 0\n ) /\n (total || 1)) *\n 100\n ) + '%'\n }\n ]\n }\n ].filter((indicator) => indicator),\n charts: [\n {\n idChart: 'slidingPaneUnitsChart',\n buttonChartText: 'workplans.units',\n chartType: 'bar',\n colors: chartId === 'effectivenessStatusChart' ? [colors[0], colors[3]] : colors,\n title: intl.formatMessage({\n id: 'workplans.graphGroupedByUnits'\n }),\n horizontal: true,\n stacked: true,\n labels: workplansUnits.map((unit) => unit.unitName),\n series: [\n {\n name: intl.formatMessage({\n id:\n chartId === 'effectivenessStatusChart'\n ? 'workplans.visited'\n : chartId === 'arrivalStatusChart'\n ? 'workplans.onTime'\n : 'workplans.normal'\n }),\n data: workplansUnits.map((unit) =>\n chartId === 'effectivenessStatusChart'\n ? unit.totalComplete\n : chartId === 'arrivalStatusChart'\n ? unit.totalNormal\n : unit.totalNormalDuration\n )\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n name: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart'\n ? 'workplans.early'\n : 'workplans.toShortPermanence'\n }),\n data: workplansUnits.map((unit) =>\n chartId === 'arrivalStatusChart' ? unit.totalEarly : unit.totalShortDuration\n )\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n name: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart'\n ? 'workplans.late'\n : 'workplans.toLongPermanence'\n }),\n data: workplansUnits.map((unit) =>\n chartId === 'arrivalStatusChart' ? unit.totalLate : unit.totalLongDuration\n )\n },\n {\n name: intl.formatMessage({\n id: 'workplans.notVisited'\n }),\n data: workplansUnits.map((unit) => unit.totalIncomplete)\n }\n ].filter((serie) => serie)\n },\n {\n idChart: 'slidingPaneLocationsChart',\n buttonChartText: 'workplans.locations',\n chartType: 'bar',\n colors: [colors[0], colors[3]],\n title: intl.formatMessage({\n id: 'workplans.graphGroupedByLocations'\n }),\n horizontal: true,\n stacked: true,\n labels: workplansLocations.map((location) => location.locationName),\n series: [\n {\n name: intl.formatMessage({\n id:\n chartId === 'effectivenessStatusChart'\n ? 'workplans.visited'\n : chartId === 'arrivalStatusChart'\n ? 'workplans.onTime'\n : 'workplans.normal'\n }),\n data: workplansLocations.map((location) =>\n chartId === 'effectivenessStatusChart'\n ? location.totalComplete\n : chartId === 'arrivalStatusChart'\n ? location.totalNormal\n : location.totalNormalDuration\n )\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n name: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart'\n ? 'workplans.early'\n : 'workplans.toShortPermanence'\n }),\n data: workplansLocations.map((location) =>\n chartId === 'arrivalStatusChart'\n ? location.totalEarly\n : location.totalShortDuration\n )\n },\n chartId === 'effectivenessStatusChart'\n ? undefined\n : {\n name: intl.formatMessage({\n id:\n chartId === 'arrivalStatusChart'\n ? 'workplans.late'\n : 'workplans.toLongPermanence'\n }),\n data: workplansLocations.map((location) =>\n chartId === 'arrivalStatusChart' ? location.totalLate : location.totalLongDuration\n )\n },\n {\n name: intl.formatMessage({\n id: 'workplans.notVisited'\n }),\n data: workplansLocations.map((location) => location.totalIncomplete)\n }\n ].filter((serie) => serie)\n }\n ]\n };\n};\n\n//Status of sagas\nexport const isFetchingWorkplansReport = (state) => getOwnState(state).isFetchingReport;\n\n//Errors\nexport const getFetchingWorkplansReportErrors = (state) => getOwnState(state).errorFetchingReport;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplans';\nimport workplansExecutions, * as workplansSelectorsExecutions from '../workplansExecutions';\nimport workplansExecutionLocations, * as workplansSelectorsExecutionLocations from '../workplansExecutionLocations';\nimport workplansComments from '../workplansComments';\nimport workplansAssignments from '../workplansAssignments';\nimport workplansVisits, * as workplansSelectorsVisits from '../workplansVisits';\nimport workplansReport, * as workplansSelectorsReport from '../workplansReport';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport persistReducer from 'redux-persist/es/persistReducer';\nimport autoMergeLevel2 from 'redux-persist/es/stateReconciler/autoMergeLevel2';\nimport localforage from 'localforage';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, LOCATIONSFETCH, ADD AND EDIT\n case types.WORKPLANS_FETCH_COMPLETED:\n case types.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((workplanId) => {\n newState[workplanId] = {\n isSelected: false,\n ...state[workplanId],\n ...entities[workplanId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.WORKPLAN_LOCATIONS_FETCH_COMPLETED: {\n const { workplanId, locations } = action.payload;\n const newState = {\n ...state,\n [workplanId]: {\n ...state[workplanId],\n locations\n }\n };\n return newState;\n }\n\n case types.WORKPLAN_ADD_COMPLETED: {\n const { oldId, workplan } = action.payload;\n const newState = omit(state, oldId);\n newState[workplan.workplanId] = {\n ...state[oldId],\n ...workplan,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.WORKPLAN_EDIT_COMPLETED: {\n const workplan = action.payload;\n return {\n ...state,\n [workplan.workplanId]: {\n ...omit(state[workplan.workplanId], ['oldWorkplan']),\n ...omit(workplan, ['oldWorkplan']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.WORKPLAN_ADD_STARTED: {\n const workplan = action.payload;\n const newState = { ...state };\n newState[workplan.workplanId] = {\n isSelected: false,\n ...workplan,\n isConfirmed: false\n };\n return newState;\n }\n case types.WORKPLAN_EDIT_STARTED: {\n const workplan = action.payload;\n return {\n ...state,\n [workplan.workplanId]: {\n ...state[workplan.workplanId],\n oldWorkplan: state[workplan.workplanId],\n ...workplan,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.WORKPLAN_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.WORKPLAN_EDIT_FAILED: {\n const { oldWorkplan } = action.payload;\n return {\n ...state,\n [oldWorkplan.workplanId]: {\n ...omit(state[oldWorkplan.workplanId], ['oldWorkplan']),\n ...oldWorkplan,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.WORKPLAN_REMOVE_COMPLETED: {\n const { workplanId } = action.payload;\n return omit(state, workplanId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.WORKPLAN_SELECTED: {\n const workplanId = action.payload;\n const newState = {\n ...state,\n [workplanId]: {\n ...state[workplanId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.WORKPLAN_DESELECTED: {\n const workplanId = action.payload;\n return {\n ...state,\n [workplanId]: {\n ...state[workplanId],\n isSelected: false\n }\n };\n }\n\n case types.WORKPLANS_ALL_SELECTED: {\n const workplanIds = action.payload;\n const newState = { ...state };\n if (workplanIds.length == 0) {\n forEach(state, (workplan: any, workplanId) => {\n newState[workplanId] = {\n ...workplan,\n isSelected: true\n };\n });\n } else {\n workplanIds.forEach((workplanId) => {\n newState[workplanId] = {\n ...state[workplanId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.WORKPLANS_ALL_DESELECTED: {\n const workplanIds = action.payload;\n const newState = { ...state };\n if (workplanIds.length == 0) {\n forEach(state, (workplan: any, workplanId) => {\n newState[workplanId] = {\n ...workplan,\n isSelected: false\n };\n });\n } else {\n workplanIds.forEach((workplanId) => {\n newState[workplanId] = {\n ...state[workplanId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //COPY WORKPLAN\n case types.WORKPLAN_COPY_COMPLETED: {\n const {\n workplanId,\n newWorkplanId,\n newWorkplanName,\n organizationId,\n divisionId,\n subdivisionId\n } = action.payload;\n\n return {\n ...state,\n [newWorkplanId]: {\n isSelected: false,\n ...state[workplanId],\n workplanId: newWorkplanId,\n workplanName: newWorkplanName,\n organizationId,\n divisionId,\n subdivisionId,\n isConfirmed: true\n }\n };\n }\n\n //ASSIGN GEOFENCES\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED: {\n const {\n workplanIds,\n originGeofenceId,\n originGeofenceName,\n originExitWindow,\n originValidationWindow\n } = action.payload;\n const newState = { ...state };\n workplanIds.map(\n (workplanId) =>\n (newState[workplanId] = {\n isSelected: false,\n ...state[workplanId],\n originGeofenceId,\n originGeofenceName,\n originExitWindow,\n originValidationWindow,\n isConfirmed: true\n })\n );\n return newState;\n }\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED: {\n const {\n workplanIds,\n workGeofenceId,\n workGeofenceName,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n } = action.payload;\n const newState = { ...state };\n workplanIds.map(\n (workplanId) =>\n (newState[workplanId] = {\n isSelected: false,\n ...state[workplanId],\n workGeofenceId,\n workGeofenceName,\n workGeofenceArriveWindow,\n workGeofenceMaxTime,\n isConfirmed: true\n })\n );\n return newState;\n }\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED: {\n const { workplanIds, destinationGeofenceId, destinationGeofenceName } = action.payload;\n const newState = { ...state };\n workplanIds.map(\n (workplanId) =>\n (newState[workplanId] = {\n isSelected: false,\n ...state[workplanId],\n destinationGeofenceId,\n destinationGeofenceName,\n isConfirmed: true\n })\n );\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.WORKPLANS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.WORKPLAN_ADD_COMPLETED: {\n const { oldId, workplan } = action.payload;\n return state.map((workplanId) => (workplanId === oldId ? workplan.workplanId : workplanId));\n }\n\n case types.WORKPLAN_REMOVE_COMPLETED: {\n const { workplanId } = action.payload;\n return state.filter((workplanIdState) => workplanIdState !== workplanId);\n }\n\n //CASE ADD STARTED\n case types.WORKPLAN_ADD_STARTED: {\n const workplan = action.payload;\n return [...state, workplan.workplanId];\n }\n\n //CASE ADD FAILED\n case types.WORKPLAN_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((workplanIdState) => workplanIdState !== oldId);\n }\n\n //COPY WORKPLAN\n case types.WORKPLAN_COPY_COMPLETED: {\n const { newWorkplanId } = action.payload;\n return [...state, newWorkplanId];\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_FETCH_COMPLETED:\n case types.WORKPLANS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.WORKPLANS_PARTIAL_FETCH_COMPLETED:\n case types.WORKPLANS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingLocationsList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_SELECTED: {\n return true;\n }\n case types.WORKPLAN_LOCATIONS_FETCH_COMPLETED:\n case types.WORKPLAN_LOCATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_ADD_STARTED: {\n return true;\n }\n case types.WORKPLAN_ADD_COMPLETED:\n case types.WORKPLAN_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_EDIT_STARTED: {\n return true;\n }\n case types.WORKPLAN_EDIT_COMPLETED:\n case types.WORKPLAN_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_REMOVE_STARTED: {\n return true;\n }\n case types.WORKPLAN_REMOVE_COMPLETED:\n case types.WORKPLAN_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_COPY_STARTED: {\n return true;\n }\n case types.WORKPLAN_COPY_COMPLETED:\n case types.WORKPLAN_COPY_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAssigningGeofence = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED: {\n return true;\n }\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_FETCH_STARTED:\n case types.WORKPLANS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLANS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_PARTIAL_FETCH_STARTED:\n case types.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingLocationsList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_LOCATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_SELECTED:\n case types.WORKPLAN_LOCATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_ADD_STARTED:\n case types.WORKPLAN_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_EDIT_STARTED:\n case types.WORKPLAN_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.WORKPLAN_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_REMOVE_STARTED:\n case types.WORKPLAN_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLAN_COPY_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLAN_COPY_COMPLETED:\n case types.WORKPLAN_COPY_STARTED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAssigningGeofence = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED:\n case types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst workplans: any = combineReducers({\n workplansExecutions,\n workplansVisits,\n workplansReport,\n workplansComments,\n workplansAssignments,\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isFetchingLocationsList,\n isAdding,\n isEditing,\n isRemoving,\n isCopying,\n isAssigningGeofence,\n errorPartialFetchingList,\n errorFetchingList,\n errorFetchingLocationsList,\n errorAdding,\n errorEditing,\n errorRemoving,\n errorCopying,\n errorAssigningGeofence\n});\n\nconst workplansPersistConfig = {\n key: 'workplans',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'workplansExecutions',\n 'workplansVisits',\n 'workplansReport',\n 'workplansComments',\n 'workplansAssignments',\n 'isPartialFetchingList',\n 'isFetchingList',\n 'isFetchingLocationsList',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isCopying',\n 'isAssigningGeofence',\n 'errorPartialFetchingList',\n 'errorFetchingList',\n 'errorFetchingLocationsList',\n 'errorAdding',\n 'errorEditing',\n 'errorRemoving',\n 'errorCopying',\n 'errorAssigningGeofence'\n ],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(workplansPersistConfig, workplans);\n\n//Own state\nexport const getOwnState = (state) => state.workplans;\n\n//Information\nexport const getWorkplan = (state, workplanId) => {\n const intl = appIntl();\n const workplan = getOwnState(state).byId[workplanId];\n if (workplan) {\n const organization = workplan.organizationId\n ? organizationSelectors.getOrganization(state, workplan.organizationId)\n : undefined;\n const division = workplan.divisionId\n ? divisionSelectors.getDivision(state, workplan.divisionId)\n : undefined;\n const subdivision = workplan.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, workplan.subdivisionId)\n : undefined;\n return {\n ...workplan,\n estimatedTotalDistance: workplan?.estimatedTotalDistance\n ? authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(workplan?.estimatedTotalDistance)\n : 0,\n originExitWindow: workplan?.originExitWindow / 60 || 0,\n originValidationWindow: workplan?.originValidationWindow / 60 || 0,\n workGeofenceName: workplan?.hasAutogeneratedGeofence\n ? intl.formatMessage({ id: 'workplans.autogeneratedGeofence' })\n : workplan?.workGeofenceName,\n workGeofenceArriveWindow: workplan?.workGeofenceArriveWindow / 60 || 0,\n workGeofenceMaxTime: workplan?.workGeofenceMaxTime / 60 || 0,\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: workplan.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: workplan.checkSequence ? 'common.yes' : 'common.no'\n }),\n membership: {\n organizationId: workplan.organizationId || undefined,\n divisionId: workplan.divisionId || undefined,\n subdivisionId: workplan.subdivisionId || undefined\n }\n };\n } else return undefined;\n};\n\nexport const getWorkplansList = (state) =>\n getOwnState(state)\n .order.map((id) => getWorkplan(state, id))\n .filter((workplan) => workplan.workplanStatus > 0);\nexport const getWorkplansListByMembership = (state, membership) => {\n return getWorkplansList(state).filter(\n (workplan) =>\n membership &&\n (!membership.operatorId || membership.operatorId === workplan.operatorId) &&\n (!membership.organizationId || membership.organizationId === workplan.organizationId) &&\n (!membership.divisionId || membership.divisionId === workplan.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === workplan.subdivisionId) &&\n (!membership.groupId || membership.groupId === workplan.groupId)\n );\n};\nexport const getSelectedWorkplans = (state) => {\n const selectedWorkplans = getWorkplansList(state).filter((workplan) => workplan.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedWorkplans.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedWorkplans.length > 0) return selectedWorkplans;\n};\n\nexport const getSelectedWorkplan = (state) => {\n const selectedWorkplans = getWorkplansList(state).filter((workplan) => workplan.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedWorkplans.length === 1) return selectedWorkplans[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListWorkplans = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListWorkplans = (state) => getOwnState(state).isFetchingList;\nexport const isFetchingLocationsListWorkplans = (state) =>\n getOwnState(state).isFetchingLocationsList;\nexport const isAddingWorkplan = (state) => getOwnState(state).isAdding;\nexport const isEditingWorkplan = (state) => getOwnState(state).isEditing;\nexport const isRemovingWorkplan = (state) => getOwnState(state).isRemoving;\nexport const isCopyingWorkplan = (state) => getOwnState(state).isCopying;\nexport const isAssigningGeofenceWorkplan = (state) => getOwnState(state).isAssigningGeofence;\n\n//Errors\nexport const getPartialFetchingListWorkplansErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListWorkplansErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getFetchingLocationsListWorkplansErrors = (state) =>\n getOwnState(state).errorFetchingLocationsList;\nexport const getAddingWorkplanErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingWorkplanErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingWorkplanErrors = (state) => getOwnState(state).errorRemoving;\nexport const getCopyingWorkplanErrors = (state) => getOwnState(state).errorCopying;\nexport const getAssigningGeofenceWorkplanErrors = (state) =>\n getOwnState(state).errorAssigningGeofence;\n\n/* -------------------------------------------------------------------------- */\n/* WORKPLANS EXECUTIONS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getWorkplansExecution = (state, visitId) =>\n workplansSelectorsExecutions.getWorkplansExecution(state, visitId);\nexport const getWorkplansExecutionsList = (state) =>\n workplansSelectorsExecutions.getWorkplansExecutionsList(state);\nexport const getWorkplansExecutionsIndicators = (state) =>\n workplansSelectorsExecutions.getIndicators(state);\nexport const getWorkplansExecutionsDurationStatus = (state) =>\n workplansSelectorsExecutions.getDurationStatus(state);\nexport const getWorkplansExecutionStatus = (state) =>\n workplansSelectorsExecutions.getExecutionStatus(state);\nexport const getWorkplansExecutionsGeographicStatus = (state) =>\n workplansSelectorsExecutions.getGeographicStatus(state);\n//Status of sagas\nexport const isFetchingWorkplansExecutions = (state) =>\n workplansSelectorsExecutions.isFetchingWorkplansExecutions(state);\nexport const isFetchingWorkplanExecution = (state) =>\n workplansSelectorsExecutions.isFetchingWorkplanExecution(state);\nexport const isCancelingWorkplansExecution = (state) =>\n workplansSelectorsExecutions.isCancelingWorkplansExecution(state);\nexport const isFinalizingWorkplansExecution = (state) =>\n workplansSelectorsExecutions.isFinalizingWorkplansExecution(state);\nexport const isManualTransitWorkplansExecution = (state) =>\n workplansSelectorsExecutions.isManualTransitWorkplansExecution(state);\nexport const isChangingWorkplansExecutionUnit = (state) =>\n workplansSelectorsExecutions.isChangingWorkplansExecutionUnit(state);\n\n//Errors\nexport const getFetchingWorkplansExecutionsErrors = (state) =>\n workplansSelectorsExecutions.getFetchingWorkplansExecutionsErrors(state);\nexport const getFetchingWorkplansExecutionError = (state) =>\n workplansSelectorsExecutions.getFetchingWorkplanExecutionErrors(state);\nexport const getCancelingWorkplansExecutionErrors = (state) =>\n workplansSelectorsExecutions.getCancelingWorkplansExecutionErrors(state);\nexport const getFinalizingWorkplansExecutionErrors = (state) =>\n workplansSelectorsExecutions.getFinalizingWorkplansExecutionErrors(state);\nexport const getChangingWorkplansExecutionUnitErrors = (state) =>\n workplansSelectorsExecutions.getChangingWorkplansExecutionUnitErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* WORKPLANS VISITS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getWorkplansVisit = (state, visitId) =>\n workplansSelectorsVisits.getWorkplansVisit(state, visitId);\nexport const getWorkplansVisitsList = (state) =>\n workplansSelectorsVisits.getWorkplansVisitsList(state);\nexport const getWorkplansVisitsListByDuration = (state, duration) =>\n workplansSelectorsVisits.getWorkplansVisitsListByDuration(state, duration);\n\n//Status of sagas\nexport const isFetchingWorkplansVisits = (state) =>\n workplansSelectorsVisits.isFetchingWorkplansVisits(state);\n\n//Errors\nexport const getFetchingWorkplansVisitsErrors = (state) =>\n workplansSelectorsVisits.getFetchingWorkplansVisitsErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* WORKPLANS REPORT */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getWorkplansReportExecution = (state, visitId) =>\n workplansSelectorsReport.getWorkplansExecution(state, visitId);\nexport const getWorkplansReportExecutionsList = (state) =>\n workplansSelectorsReport.getWorkplansExecutionsList(state);\nexport const getWorkplansReportUnit = (state, visitId) =>\n workplansSelectorsReport.getWorkplansUnit(state, visitId);\nexport const getWorkplansReportUnitsList = (state) =>\n workplansSelectorsReport.getWorkplansUnitsList(state);\nexport const getWorkplansReportLocation = (state, visitId) =>\n workplansSelectorsReport.getWorkplansLocation(state, visitId);\nexport const getWorkplansReportLocationsList = (state) =>\n workplansSelectorsReport.getWorkplansLocationsList(state);\nexport const getWorkplansReportIndicators = (state) =>\n workplansSelectorsReport.getIndicators(state);\nexport const getWorkplansReportEffectivenessStatus = (state) =>\n workplansSelectorsReport.getEffectivenessStatus(state);\nexport const getWorkplansReportArrivalStatus = (state) =>\n workplansSelectorsReport.getArrivalStatus(state);\nexport const getWorkplansReportDurationStatus = (state) =>\n workplansSelectorsReport.getDurationStatus(state);\nexport const getWorkplansReportSlidingPaneInormation = (state, chartId) =>\n workplansSelectorsReport.getSlidingPaneInformation(state, chartId);\n//Status of sagas\nexport const isFetchingWorkplansReport = (state) =>\n workplansSelectorsReport.isFetchingWorkplansReport(state);\n\n//Errors\nexport const getFetchingWorkplansReportErrors = (state) =>\n workplansSelectorsReport.getFetchingWorkplansReportErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* WORKPLAN EXECUTION LOCATIONS */\n/* -------------------------------------------------------------------------- */\n//Status of sagas\nexport const isAddingWorkplanExecutionLocation = (state) =>\n workplansSelectorsExecutionLocations.isAddingLocation(state);\nexport const isEditingWorkplanExecutionLocation = (state) =>\n workplansSelectorsExecutionLocations.isEditingLocation(state);\nexport const isRemovingWorkplanExecutionLocation = (state) =>\n workplansSelectorsExecutionLocations.isRemovingLocation(state);\n\n//Errors\nexport const getAddingWorkplanExecutionLocationErrors = (state) =>\n workplansSelectorsExecutionLocations.getAddingLocationErrors(state);\nexport const getEditingWorkplanExecutionLocationErrors = (state) =>\n workplansSelectorsExecutionLocations.getEditingLocationErrors(state);\nexport const getRemovingWorkplanExecutionLocationErrors = (state) =>\n workplansSelectorsExecutionLocations.getRemovingLocationErrors(state);\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n isSelected: false,\n ...entities[serviceClassId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SERVICECLASS_FETCH_COMPLETED: {\n const serviceClass = action.payload;\n const newState = { ...state };\n newState[serviceClass.serviceClassId] = {\n isSelected: false,\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SERVICECLASS_ADD_COMPLETED: {\n const { oldId, serviceClass } = action.payload;\n const newState = omit(state, oldId);\n newState[serviceClass.serviceClassId] = {\n ...state[oldId],\n ...serviceClass,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SERVICECLASS_EDIT_COMPLETED: {\n const serviceClass = action.payload;\n return {\n ...state,\n [serviceClass.serviceClassId]: {\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SERVICECLASS_ADD_STARTED: {\n const serviceClass = action.payload;\n state[serviceClass.serviceClassId] = {\n isSelected: false,\n ...serviceClass,\n isConfirmed: false\n };\n return state;\n }\n case types.SERVICECLASS_EDIT_STARTED: {\n const serviceClass = action.payload;\n return {\n ...state,\n [serviceClass.serviceClassId]: {\n ...state[serviceClass.serviceClassId],\n ...serviceClass,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SERVICECLASS_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SERVICECLASS_EDIT_FAILED: {\n const { oldServiceClass } = action.payload;\n return {\n ...state,\n [oldServiceClass.serviceClassId]: {\n ...state[oldServiceClass.serviceClassId],\n ...oldServiceClass,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n const serviceClassId = action.payload;\n return omit(state, serviceClassId.serviceClassId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SERVICECLASS_SELECTED: {\n const serviceClassId = action.payload;\n return {\n ...state,\n [serviceClassId]: {\n ...state[serviceClassId],\n isSelected: true\n }\n };\n }\n\n case types.SERVICECLASS_DESELECTED: {\n const serviceClassId = action.payload;\n return {\n ...state,\n [serviceClassId]: {\n ...state[serviceClassId],\n isSelected: false\n }\n };\n }\n\n case types.SERVICECLASSES_ALL_SELECTED: {\n const serviceClassIds = action.payload;\n const newState = { ...state };\n if (serviceClassIds.length == 0) {\n forEach(state, (serviceClass: any, serviceClassId) => {\n newState[serviceClassId] = {\n ...serviceClass,\n isSelected: true\n };\n });\n } else {\n serviceClassIds.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n ...state[serviceClassId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SERVICECLASSES_ALL_DESELECTED: {\n const serviceClassIds = action.payload;\n const newState = { ...state };\n if (serviceClassIds.length == 0) {\n forEach(state, (serviceClass: any, serviceClassId) => {\n newState[serviceClassId] = {\n ...serviceClass,\n isSelected: false\n };\n });\n } else {\n serviceClassIds.forEach((serviceClassId) => {\n newState[serviceClassId] = {\n ...state[serviceClassId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SERVICECLASS_FETCH_COMPLETED: {\n const serviceClass = action.payload;\n return uniq([...state, serviceClass.serviceClassId]);\n }\n\n case types.SERVICECLASS_ADD_COMPLETED: {\n const { oldId, serviceClass } = action.payload;\n return state.map((serviceClassId) =>\n serviceClassId === oldId ? serviceClass.serviceClassId : serviceClassId\n );\n }\n\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n const serviceClassId = action.payload;\n return state.filter(\n (serviceClassIdState) => serviceClassIdState !== serviceClassId.serviceClassId\n );\n }\n\n //CASE ADD STARTED\n case types.SERVICECLASS_ADD_STARTED: {\n const serviceClass = action.payload;\n return [...state, serviceClass.serviceClassId];\n }\n\n //CASE ADD FAILED\n case types.SERVICECLASS_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((serviceClassIdState) => serviceClassIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASSES_FETCH_STARTED: {\n return true;\n }\n case types.SERVICECLASSES_FETCH_COMPLETED:\n case types.SERVICECLASSES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_FETCH_STARTED: {\n return true;\n }\n case types.SERVICECLASS_FETCH_COMPLETED:\n case types.SERVICECLASS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_ADD_STARTED: {\n return true;\n }\n case types.SERVICECLASS_ADD_COMPLETED:\n case types.SERVICECLASS_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_EDIT_STARTED: {\n return true;\n }\n case types.SERVICECLASS_EDIT_COMPLETED:\n case types.SERVICECLASS_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SERVICECLASS_REMOVE_STARTED: {\n return true;\n }\n case types.SERVICECLASS_REMOVE_COMPLETED:\n case types.SERVICECLASS_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASSES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASSES_FETCH_STARTED:\n case types.SERVICECLASSES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_FETCH_STARTED:\n case types.SERVICECLASS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_ADD_STARTED:\n case types.SERVICECLASS_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_EDIT_STARTED:\n case types.SERVICECLASS_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SERVICECLASS_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SERVICECLASS_REMOVE_STARTED:\n case types.SERVICECLASS_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst serviceClasses = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default serviceClasses;\n\nexport const getOwnState = (state) => state.serviceClasses;\n\nexport const getServiceClass = (state, serviceClassId) => {\n return getOwnState(state).byId[serviceClassId];\n};\nexport const getServiceClasssList = (state) =>\n getOwnState(state).order.map((id) => getOwnState(state).byId[id]);\n\nexport const getSelectedServiceClass = (state) => {\n const selectedServiceClasses = getServiceClasssList(state).filter(\n (serviceClass) => serviceClass.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedServiceClasses.length === 1) return selectedServiceClasses[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//status of sagas\nexport const isFetchingListServiceClasses = (state) => getOwnState(state).isFetchingList;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((quotationId) => {\n newState[quotationId] = {\n isSelected: false,\n ...state[quotationId],\n ...entities[quotationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.QUOTATIONS_ADD_COMPLETED: {\n const { oldId, quotation } = action.payload;\n const newState = omit(state, oldId);\n newState[quotation.quotationId] = {\n ...state[oldId],\n ...quotation,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.QUOTATIONS_EDIT_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...omit(state[quotation.quotationId], ['oldQuotation']),\n ...omit(quotation, ['oldQuotation']),\n isConfirmed: true\n }\n };\n }\n\n case types.QUOTATION_COPY_COMPLETED: {\n const { quotation } = action.payload;\n const newState = state;\n newState[quotation.quotationId] = {\n isSelected: false,\n ...quotation,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationStatus: quotation.approve == 1 ? 2 : 5,\n denyRequisitionReason: quotation.denyRequisitionReason\n }\n };\n }\n\n case types.QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationStatus: quotation.accept == 1 ? 6 : 7,\n deniedCustomerReason: quotation.deniedCustomerReason\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.QUOTATIONS_ADD_STARTED: {\n const { quotation, isSelected } = action.payload;\n const newState = { ...state };\n newState[quotation.quotationId] = {\n isSelected: isSelected,\n ...quotation,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.QUOTATIONS_EDIT_STARTED: {\n const quotation = action.payload;\n return {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n oldQuotation: state[quotation.quotationId],\n ...quotation,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.QUOTATIONS_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.QUOTATIONS_EDIT_FAILED: {\n const { oldQuotation } = action.payload;\n return {\n ...state,\n [oldQuotation.quotationId]: {\n ...omit(state[oldQuotation.quotationId], ['oldQuotation']),\n ...oldQuotation,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n const { quotationId } = action.payload;\n return omit(state, quotationId);\n }\n\n //TYPES SCHEDULE AND CHECK SCHEDULE\n case types.QUOTATIONS_SCHEDULE_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n isScheduled: true\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_SET_TIMESUP_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n isTimesup: quotation.timesup\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED: {\n const quotation = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n quotationId: quotation.quotationIdDB,\n isScheduled: quotation.isScheduled,\n quotationStatus: quotation.quotationStatus,\n isTimesup: quotation.isTimesup,\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.QUOTATION_CHANGE_ORGANIZATION: {\n const { quotation, organization } = action.payload;\n const newState = {\n ...state,\n [quotation.quotationId]: {\n ...state[quotation.quotationId],\n ...organization\n },\n ...(quotation.baseQuotationId\n ? {\n [quotation.baseQuotationId]: {\n ...state[quotation.baseQuotationId],\n ...organization\n }\n }\n : {})\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.QUOTATIONS_SELECTED: {\n const quotationId = action.payload;\n const newState = {\n ...state,\n [quotationId]: {\n ...state[quotationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.QUOTATIONS_DESELECTED: {\n const quotationId = action.payload;\n return {\n ...state,\n [quotationId]: {\n ...state[quotationId],\n isSelected: false\n }\n };\n }\n\n case types.QUOTATIONS_ALL_SELECTED: {\n const quotationIds = action.payload;\n const newState = { ...state };\n if (quotationIds.length == 0) {\n forEach(state, (quotation: any, quotationIds) => {\n newState[quotationIds] = {\n ...quotation,\n isSelected: true\n };\n });\n } else {\n quotationIds.forEach((quotationId) => {\n newState[quotationId] = {\n ...state[quotationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.QUOTATIONS_ALL_DESELECTED: {\n const quotationIds = action.payload;\n const newState = { ...state };\n if (quotationIds.length == 0) {\n forEach(state, (quotation: any, quotationId) => {\n newState[quotationId] = {\n ...quotation,\n isSelected: false\n };\n });\n } else {\n quotationIds.forEach((quotationId) => {\n newState[quotationId] = {\n ...state[quotationId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.QUOTATIONS_ADD_COMPLETED: {\n const { oldId, quotation } = action.payload;\n return state.map((quotationId) =>\n quotationId === oldId ? quotation.quotationId : quotationId\n );\n }\n\n case types.QUOTATION_COPY_COMPLETED: {\n const { quotation } = action.payload;\n return [...state, quotation.quotationId];\n }\n\n case types.QUOTATIONS_CHECK_SCHEDULING_STARTED: {\n const { quotationId } = action.payload;\n return [\n ...state.filter((quotationIdState) => quotationIdState !== Number(quotationId)),\n Number(quotationId)\n ];\n }\n\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n const { quotationId } = action.payload;\n return state.filter((quotationIdState) => quotationIdState !== quotationId);\n }\n\n //CASE ADD STARTED\n case types.QUOTATIONS_ADD_STARTED: {\n const { quotation } = action.payload;\n return [...state, quotation.quotationId];\n }\n\n //CASE ADD FAILED\n case types.QUOTATIONS_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((quotationIdState) => quotationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_FETCH_STARTED: {\n return true;\n }\n case types.QUOTATIONS_FETCH_COMPLETED:\n case types.QUOTATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED:\n case types.QUOTATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_ADD_STARTED: {\n return true;\n }\n case types.QUOTATIONS_ADD_COMPLETED:\n case types.QUOTATIONS_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCopying = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATION_COPY_STARTED: {\n return true;\n }\n case types.QUOTATION_COPY_COMPLETED:\n case types.QUOTATION_COPY_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_EDIT_STARTED: {\n return true;\n }\n case types.QUOTATIONS_EDIT_COMPLETED:\n case types.QUOTATIONS_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isScheduling = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_SCHEDULE_STARTED: {\n return true;\n }\n case types.QUOTATIONS_SCHEDULE_COMPLETED:\n case types.QUOTATIONS_SCHEDULE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCheckingSchedule = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_CHECK_SCHEDULING_STARTED: {\n return true;\n }\n case types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED:\n case types.QUOTATIONS_CHECK_SCHEDULING_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isSettingTimesup = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_SET_TIMESUP_STARTED: {\n return true;\n }\n case types.QUOTATIONS_SET_TIMESUP_COMPLETED:\n case types.QUOTATIONS_SET_TIMESUP_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATIONS_REMOVE_STARTED: {\n return true;\n }\n case types.QUOTATIONS_REMOVE_COMPLETED:\n case types.QUOTATIONS_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isApprovingDenyingManagement = (state = false, action) => {\n switch (action.type) {\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED: {\n return true;\n }\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED:\n case types.QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_FETCH_STARTED:\n case types.QUOTATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_PARTIAL_FETCH_STARTED:\n case types.QUOTATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_ADD_STARTED:\n case types.QUOTATIONS_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCopying = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATION_COPY_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATION_COPY_STARTED:\n case types.QUOTATION_COPY_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_EDIT_STARTED:\n case types.QUOTATIONS_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.QUOTATIONS_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.QUOTATIONS_REMOVE_STARTED:\n case types.QUOTATIONS_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst quotations = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isCopying,\n isEditing,\n isScheduling,\n isCheckingSchedule,\n isSettingTimesup,\n isApprovingDenyingManagement,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorCopying,\n errorEditing,\n errorRemoving\n});\n\nexport default quotations;\n\n//Own state\nexport const getOwnState = (state) => state.quotations;\n\n//Information\nexport const getQuotation = (state, quotationId) => {\n return getOwnState(state).byId[quotationId];\n};\n\nexport const getQuotationsSpecificList = (state, list) =>\n list.map((quotationId) => getQuotation(state, quotationId));\n\nexport const getQuotationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getQuotation(state, id))\n .filter((quotation) => quotation?.quotationStatus > 0);\n\nexport const getSelectedQuotations = (state) => {\n const selectedQuotations = getQuotationsList(state).filter((quotation) => quotation?.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedQuotations.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedQuotations.length > 0) return selectedQuotations;\n};\n\nexport const getSelectedQuotation = (state) => {\n const selectedQuotations = getQuotationsList(state).filter((quotation) => quotation?.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedQuotations.length === 1) return selectedQuotations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListQuotations = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListQuotations = (state) => getOwnState(state).isFetchingList;\nexport const isAddingQuotation = (state) => getOwnState(state).isAdding;\nexport const isCopyingQuotation = (state) => getOwnState(state).isCopying;\nexport const isEditingQuotation = (state) => getOwnState(state).isEditing;\nexport const isSchedulingQuotation = (state) => getOwnState(state).isScheduling;\nexport const isSettingTimesupQuotation = (state) => getOwnState(state).isSettingTimesup;\nexport const isCheckingScheduleQuotation = (state) => getOwnState(state).isCheckingSchedule;\nexport const isRemovingQuotation = (state) => getOwnState(state).isRemoving;\nexport const isApprovingDenyingQuotationManagement = (state) =>\n getOwnState(state).isApprovingDenyingManagement;\n\n//Errors\nexport const getPartialFetchingListQuotationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListQuotationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingQuotationErrors = (state) => getOwnState(state).errorAdding;\nexport const getCopyingQuotationErrors = (state) => getOwnState(state).errorCopying;\nexport const getEditingQuotationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingQuotationErrors = (state) => getOwnState(state).errorRemoving;\n","const paths = {\n routeList: '/route/list',\n routeEdit: '/route/edit',\n routeMonitor: '/route/monitor',\n routeReport: '/route/report',\n routeAssignUnit: '/route/assignUnit',\n importRouteAssignments: '/route/importRouteAssignments'\n};\n\nexport default paths;\n","const permissions = {\n schedule: 'SC001',\n addSchedule: 'SC002',\n editSchedule: 'SC003',\n deleteSchedule: 'SC004'\n};\n\nexport default permissions;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((contractId) => {\n newState[contractId] = {\n isSelected: false,\n ...state[contractId],\n ...entities[contractId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n const { oldId, organizationContract } = action.payload;\n const newState = omit(state, oldId);\n newState[organizationContract.contractId] = {\n ...state[oldId],\n ...organizationContract,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED: {\n const organizationContract = action.payload;\n return {\n ...state,\n [organizationContract.contractId]: {\n ...omit(state[organizationContract.contractId], ['oldOrganizationContract']),\n ...omit(organizationContract, ['oldOrganizationContract']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n const organizationContract = action.payload;\n const newState = { ...state };\n newState[organizationContract.contractId] = {\n isSelected: false,\n ...organizationContract,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED: {\n const organizationContract = action.payload;\n return {\n ...state,\n [organizationContract.contractId]: {\n ...state[organizationContract.contractId],\n oldOrganizationContract: state[organizationContract.contractId],\n ...organizationContract,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n const { oldOrganizationContract } = action.payload;\n return {\n ...state,\n [oldOrganizationContract.contractId]: {\n ...omit(state[oldOrganizationContract.contractId], ['oldOrganizationContract']),\n ...oldOrganizationContract,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n const { contractId } = action.payload;\n return omit(state, contractId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ORGANIZATION_CONTRACT_SELECTED: {\n const contractId = action.payload;\n const newState = {\n ...state,\n [contractId]: {\n ...state[contractId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACT_DESELECTED: {\n const contractId = action.payload;\n return {\n ...state,\n [contractId]: {\n ...state[contractId],\n isSelected: false\n }\n };\n }\n\n case types.ORGANIZATION_CONTRACTS_ALL_SELECTED: {\n const contractIds = action.payload;\n const newState = { ...state };\n if (contractIds.length == 0) {\n forEach(state, (organizationContract: any, contractIds) => {\n newState[contractIds] = {\n ...organizationContract,\n isSelected: true\n };\n });\n } else {\n contractIds.forEach((contractId) => {\n newState[contractId] = {\n ...state[contractId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ORGANIZATION_CONTRACTS_ALL_DESELECTED: {\n const contractIds = action.payload;\n const newState = { ...state };\n if (contractIds.length == 0) {\n forEach(state, (organizationContract: any, contractId) => {\n newState[contractId] = {\n ...organizationContract,\n isSelected: false\n };\n });\n } else {\n contractIds.forEach((contractId) => {\n newState[contractId] = {\n ...state[contractId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n const { oldId, organizationContract } = action.payload;\n return state.map((contractId) =>\n contractId === oldId ? organizationContract.contractId : contractId\n );\n }\n\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n const { contractId } = action.payload;\n return state.filter((contractIdState) => contractIdState !== contractId);\n }\n\n //CASE ADD STARTED\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n const organizationContract = action.payload;\n return [...state, organizationContract.contractId];\n }\n\n //CASE ADD FAILED\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((contractIdState) => contractIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED:\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED:\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED:\n case types.ORGANIZATION_CONTRACT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACTS_FETCH_STARTED:\n case types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED:\n case types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_ADD_STARTED:\n case types.ORGANIZATION_CONTRACT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_EDIT_STARTED:\n case types.ORGANIZATION_CONTRACT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CONTRACT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_CONTRACT_REMOVE_STARTED:\n case types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizationContracts = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default organizationContracts;\n\n//Own state\nexport const getOwnState = (state) => state.organizationContracts;\n\n//Information\nexport const getOrganizationContract = (state, contractId) => {\n return getOwnState(state).byId[contractId];\n};\n\nexport const getOrganizationContractsList = (state) =>\n getOwnState(state)\n .order.map((id) => getOrganizationContract(state, id))\n .filter((organizationContract) => organizationContract?.status > 0);\n\nexport const getSelectedOrganizationContracts = (state) => {\n const selectedOrganizationContracts = getOrganizationContractsList(state).filter(\n (organizationContract) => organizationContract?.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedOrganizationContracts.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedOrganizationContracts.length > 0) return selectedOrganizationContracts;\n};\n\nexport const getSelectedOrganizationContract = (state) => {\n const selectedOrganizationContracts = getOrganizationContractsList(state).filter(\n (organizationContract) => organizationContract?.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOrganizationContracts.length === 1) return selectedOrganizationContracts[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOrganizationContracts = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOrganizationContracts = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOrganizationContract = (state) => getOwnState(state).isAdding;\nexport const isEditingOrganizationContract = (state) => getOwnState(state).isEditing;\nexport const isRemovingOrganizationContract = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListOrganizationContractsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOrganizationContractsErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingOrganizationContractErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOrganizationContractErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingOrganizationContractErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((templateId) => {\n newState[templateId] = {\n isSelected: false,\n ...state[templateId],\n ...entities[templateId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n const { oldId, contractTemplate } = action.payload;\n const newState = omit(state, oldId);\n newState[contractTemplate.templateId] = {\n ...state[oldId],\n ...contractTemplate,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED: {\n const contractTemplate = action.payload;\n return {\n ...state,\n [contractTemplate.templateId]: {\n ...omit(state[contractTemplate.templateId], ['oldContractTemplate']),\n ...omit(contractTemplate, ['oldContractTemplate']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n const contractTemplate = action.payload;\n const newState = { ...state };\n newState[contractTemplate.templateId] = {\n isSelected: false,\n ...contractTemplate,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_STARTED: {\n const contractTemplate = action.payload;\n return {\n ...state,\n [contractTemplate.templateId]: {\n ...state[contractTemplate.templateId],\n oldDivision: state[contractTemplate.templateId],\n ...contractTemplate,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n const { oldContractTemplate } = action.payload;\n return {\n ...state,\n [oldContractTemplate.templateId]: {\n ...omit(state[oldContractTemplate.templateId], ['oldContractTemplate']),\n ...oldContractTemplate,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n const { templateId } = action.payload;\n return omit(state, templateId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.CONTRACT_TEMPLATE_SELECTED: {\n const templateId = action.payload;\n const newState = {\n ...state,\n [templateId]: {\n ...state[templateId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.CONTRACT_TEMPLATE_DESELECTED: {\n const templateId = action.payload;\n return {\n ...state,\n [templateId]: {\n ...state[templateId],\n isSelected: false\n }\n };\n }\n\n case types.CONTRACT_TEMPLATES_ALL_SELECTED: {\n const templateIds = action.payload;\n const newState = { ...state };\n if (templateIds.length == 0) {\n forEach(state, (contractTemplate: any, templateId) => {\n newState[templateId] = {\n ...contractTemplate,\n isSelected: true\n };\n });\n } else {\n templateIds.forEach((templateId) => {\n newState[templateId] = {\n ...state[templateId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.CONTRACT_TEMPLATES_ALL_DESELECTED: {\n const templateIds = action.payload;\n const newState = { ...state };\n if (templateIds.length == 0) {\n forEach(state, (contractTemplate: any, templateId) => {\n newState[templateId] = {\n ...contractTemplate,\n isSelected: false\n };\n });\n } else {\n templateIds.forEach((templateId) => {\n newState[templateId] = {\n ...state[templateId],\n isSelected: false\n };\n });\n }\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n const { oldId, contractTemplate } = action.payload;\n return state.map((templateId) =>\n templateId === oldId ? contractTemplate.templateId : templateId\n );\n }\n\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n const { templateId } = action.payload;\n return state.filter((templateIdState) => templateIdState !== templateId);\n }\n\n //CASE ADD STARTED\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n const contractTemplate = action.payload;\n return [...state, contractTemplate.templateId];\n }\n\n //CASE ADD FAILED\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((templateIdState) => templateIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_FETCH_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_ADD_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED:\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_EDIT_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED:\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_REMOVE_STARTED: {\n return true;\n }\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED:\n case types.CONTRACT_TEMPLATE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATES_FETCH_STARTED:\n case types.CONTRACT_TEMPLATES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED:\n case types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_ADD_STARTED:\n case types.CONTRACT_TEMPLATE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_EDIT_STARTED:\n case types.CONTRACT_TEMPLATE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.CONTRACT_TEMPLATE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTRACT_TEMPLATE_REMOVE_STARTED:\n case types.CONTRACT_TEMPLATE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst contractTemplates = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default contractTemplates;\n\n//Own state\nexport const getOwnState = (state) => state.contractTemplates;\n\n//Information\nexport const getContractTemplate = (state, templateId) => {\n return getOwnState(state).byId[templateId];\n};\n\nexport const getContractTemplatesList = (state) =>\n getOwnState(state)\n .order.map((id) => getContractTemplate(state, id))\n .filter((contractTemplate) => contractTemplate?.status > 0);\n\nexport const getSelectedContractTemplates = (state) => {\n const selectedContractTemplates = getContractTemplatesList(state).filter(\n (contractTemplate) => contractTemplate?.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedContractTemplates.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedContractTemplates.length > 0) return selectedContractTemplates;\n};\n\nexport const getSelectedContractTemplate = (state) => {\n const selectedContractTemplates = getContractTemplatesList(state).filter(\n (contractTemplate) => contractTemplate?.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedContractTemplates.length === 1) return selectedContractTemplates[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListContractTemplates = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListContractTemplates = (state) => getOwnState(state).isFetchingList;\nexport const isAddingContractTemplate = (state) => getOwnState(state).isAdding;\nexport const isEditingContractTemplate = (state) => getOwnState(state).isEditing;\nexport const isRemovingContractTemplate = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListContractTemplatesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListContractTemplatesErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingContractTemplateErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingContractTemplateErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingContractTemplateErrors = (state) => getOwnState(state).errorRemoving;\n","/* -------------------------------------------------------------------------- */\n/* Componente OfficesDropdown */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput que permite elegir un cliente y abrir un slide para crear nuevos clientes\n\nimport { useState } from 'react';\nimport { Edit2, Plus } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { InputGroupText, UncontrolledTooltip } from 'reactstrap';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport SlidingPaneEditOffice from 'views/screens/Offices/views/SlidingPaneEditOffice';\nimport * as officeSelectors from '../../screens/Offices/reducers';\nimport DropdownInput from '../DropdownInput';\n\nconst OfficesDropdown = (props) => {\n const {\n appendAddOffice = true,\n enableSelectLocation = false,\n isClearable = false,\n officesFilters,\n notAssigned = false,\n locationId,\n customerId,\n isMainOffice,\n field,\n ...dropdownProps\n } = props;\n const intl = useIntl();\n const { offices } = useSelector((state) => ({\n offices: notAssigned\n ? officeSelectors.getNotAssignedOfficesListByCustomer(state, locationId, customerId)\n : officeSelectors.getOfficesList(state)\n }));\n const [isOpenShiftPane, setOpenShiftPane] = useState(false);\n const [selectedOffice, setSelectedOffice] = useState(undefined);\n const closeShiftPane = () => setOpenShiftPane(false);\n\n return (\n <>\n \n isMainOffice == undefined || office.isMainOffice === isMainOffice)\n .map((office) => ({\n value: office.officeId,\n label: office.officeName\n })) || []\n }\n label={intl.formatMessage({ id: 'offices.office' })}\n placeholder={intl.formatMessage({ id: 'offices.selectOffice' })}\n appendcomponent={\n appendAddOffice ? (\n <>\n {field.value && (\n {\n setSelectedOffice({ officeId: field.value });\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n )}\n {\n setSelectedOffice(undefined);\n setOpenShiftPane(true);\n }}\n >\n \n \n \n \n \n \n ) : (\n <>\n )\n }\n />\n {\n setSelectedOffice(undefined);\n closeShiftPane();\n }}\n />\n \n );\n};\n\nexport default OfficesDropdown;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneEditLocation */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneEditLocation genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\nimport { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Row } from 'reactstrap';\nimport MapsBasic from 'views/components/Map';\nimport CustomersDropdown from 'views/formComponents/CustomersDropdown';\nimport LocationClassesDropdownInput from 'views/formComponents/LocationClassesDropdownInput';\nimport Membership from 'views/formComponents/Membership';\nimport NumericalInput from 'views/formComponents/NumericalInput';\nimport OfficesDropdown from 'views/formComponents/OfficesDropdown';\nimport TextInput from 'views/formComponents/TextInput';\nimport * as customerSelectors from 'views/screens/Customers/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationClassesSelectors from '../../../../../redux/reducers/static-catalogs/location-classes';\n\ninterface Props {\n title: any;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n subtitle?: any;\n editingLocation: any;\n setEditingLocation?: Function;\n confirmText?: any;\n isInMap?: boolean;\n width?: string;\n hasButtonSubmit?: boolean;\n hasButtonCancel?: boolean;\n action?: any;\n onClose?: any;\n}\n\nconst SlidingPaneEditLocation = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n title,\n subtitle,\n editingLocation,\n setEditingLocation,\n confirmText,\n isOpenSlidingPane,\n closeSlidingPane,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n width,\n onClose,\n isInMap = false\n } = props;\n\n const { control, handleSubmit, watch } = useForm();\n const [rerenderMap, setRerenderMap] = useState(new Date());\n\n const formValues = watch();\n\n const { store, mapHomeCenter, parsers, customer } = useSelector((state) => ({\n store: state,\n mapHomeCenter: authSelectors.getAuthUserMapHomeCenter(state),\n parsers: authSelectors.getParsers(state),\n customer: customerSelectors.getCustomer(state, formValues?.customerId1)\n }));\n const initialLatitude = parseFloat(mapHomeCenter[0]);\n const initialLongitude = parseFloat(mapHomeCenter[1]);\n const initialRadius = 50;\n const initialLocationClassIconName = 'Marker1';\n const intl = useIntl();\n const [latitude, setLatitude] = useState(initialLatitude);\n const [longitude, setLongitude] = useState(initialLongitude);\n\n useEffect(() => {\n if (isOpenSlidingPane) {\n if (editingLocation) {\n setLatitude(editingLocation.latitude);\n setLongitude(editingLocation.longitude);\n } else {\n setLatitude(initialLatitude);\n setLongitude(initialLongitude);\n }\n }\n }, [isOpenSlidingPane, editingLocation]);\n\n useEffect(() => {\n if (\n formValues.latitude != null &&\n formValues.longitude != null &&\n formValues.radius != null &&\n formValues.locationClassId != null\n )\n updateEditingLocation();\n }, [\n formValues.locationName,\n formValues.latitude,\n formValues.longitude,\n formValues.radius,\n formValues.locationClassId\n ]);\n\n const updateEditingLocation = () => {\n if (setEditingLocation)\n setEditingLocation({\n ...editingLocation,\n ...formValues,\n ...formValues.membership,\n locationClassIconName:\n formValues && formValues.locationClassId\n ? locationClassesSelectors.getLocationClassIconName(store, formValues.locationClassId)\n : initialLocationClassIconName\n });\n };\n\n const closeSlidingPaneFunction = (saving) => {\n closeSlidingPane();\n if (onClose != null && !saving) onClose(formValues); //Close without saving\n };\n\n return (\n closeSlidingPaneFunction(false)}\n >\n \n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n required={true}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n allowUndefined={false}\n useNumberSpinner={true}\n allowDecimals={true}\n decimalsPrecision={100}\n step={1}\n min={-90}\n max={90}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n allowUndefined={false}\n useNumberSpinner={true}\n allowDecimals={true}\n decimalsPrecision={100}\n step={1}\n min={-180}\n max={180}\n />\n )}\n />\n \n \n (\n setRerenderMap(new Date())}\n step={1}\n metric={'distance2'}\n min={parsers.convertMetersToAuthUserDistance2System(10)}\n max={parsers.convertMetersToAuthUserDistance2System(100000)}\n />\n )}\n />\n \n {!isInMap && (\n \n {\n setLatitude(values.lat);\n setLongitude(values.lng);\n },\n showLocation: true,\n useRectangleBounds: true,\n isMapFullScreen: false,\n usePopovers: false\n }}\n rulerControlOptions={{ position: 'bottomleft', useControl: false }}\n >\n
\n \n )}\n \n (\n \n )}\n />\n \n \n {formValues?.locationClassId === 30 && (\n \n (\n \n )}\n />\n \n )}\n {formValues?.locationClassId === 34 && (\n <>\n \n (\n \n )}\n />\n \n \n (\n \n )}\n />\n \n \n )}\n \n \n {hasButtonSubmit && (\n {\n closeSlidingPaneFunction(true);\n action({\n ...values,\n customerId:\n values.locationClassId === 30\n ? values.customerId1\n : values.locationClassId === 34\n ? values.customerId2\n : undefined,\n officeId:\n values.locationClassId === 30\n ? customer?.officeId\n : values.locationClassId === 34\n ? values.officeId\n : undefined,\n radius: parsers.convertAuthUserDistance2SystemToMeters(values.radius)\n });\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPaneFunction(false)}\n >\n \n \n )}\n \n \n
\n \n );\n};\n\nSlidingPaneEditLocation.defaultProps = {\n inputs: [],\n useTable: false,\n heightTable: 200,\n hasButtonSubmit: true,\n hasButtonCancel: true,\n columnsTable: [],\n dataTable: []\n};\n\nexport default SlidingPaneEditLocation;\n","const paths = {\n addTicket: '/vehicleFuel/ticket/add',\n importTicket: '/vehicleFuel/ticket/import',\n recordMultiple:'/vehicleFuel/ticket/multiple',\n consolidatedReport: '/vehicleFuel/reports/consolidated',\n byUnitReport: '/vehicleFuel/reports/byUnit'\n};\n\nexport default paths;\n","const paths = {\n workplanList: '/workplan/list',\n workplanEdit: '/workplan/edit',\n workplanMonitor: '/workplan/monitor',\n workplanReport: '/workplan/report',\n workplanAssignUnit: '/workplan/assignUnit',\n scheduledWorkplan: '/workplan/scheduled'\n // workplanImport: '/workplan/import'\n};\n\nexport default paths;\n","const paths = {\n backlog: '/jobs/backlog',\n import: '/jobs/import',\n board: '/jobs/board',\n report: '/jobs/report',\n workingActivityReport: '/jobs/workingActivityReport'\n};\n\nexport default paths;\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceActionsEntities, deviceActionsOrder } = action.payload;\n const newState = { ...state };\n deviceActionsOrder.forEach((deviceActionId) => {\n newState[deviceActionId] = {\n ...state[deviceActionId],\n ...deviceActionsEntities[deviceActionId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceActionsOrder } = action.payload;\n return uniq([...state, ...deviceActionsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst deviceActions = combineReducers({\n byId,\n order\n});\n\nexport default deviceActions;\n\n//Own state\nexport const getOwnState = (state) => state.units.deviceActions;\n\n//Information\nexport const getDeviceAction = (state, deviceActionId) => {\n const deviceAction = getOwnState(state).byId[deviceActionId];\n if (deviceAction) {\n return {\n ...deviceAction\n };\n } else return undefined;\n};\nexport const getDeviceActionsList = (state) =>\n getOwnState(state).order.map((id) => getDeviceAction(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceMetricsEntities, deviceMetricsOrder } = action.payload;\n const newState = { ...state };\n deviceMetricsOrder.forEach((deviceMetricId) => {\n newState[deviceMetricId] = {\n ...state[deviceMetricId],\n ...deviceMetricsEntities[deviceMetricId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceMetricsOrder } = action.payload;\n return uniq([...state, ...deviceMetricsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst deviceMetrics = combineReducers({\n byId,\n order\n});\n\nexport default deviceMetrics;\n\n//Own state\nexport const getOwnState = (state) => state.units.deviceMetrics;\n\n//Information\nexport const getDeviceMetric = (state, deviceMetricId) => {\n const deviceMetric = getOwnState(state).byId[deviceMetricId];\n if (deviceMetric) {\n return {\n ...deviceMetric\n };\n } else return undefined;\n};\nexport const getDeviceMetricsList = (state) =>\n getOwnState(state).order.map((id) => getDeviceMetric(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { groupsEntities, groupsOrder } = action.payload;\n const newState = { ...state };\n groupsOrder.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n ...groupsEntities[groupId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { groupsOrder } = action.payload;\n return uniq([...state, ...groupsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst groups = combineReducers({\n byId,\n order\n});\n\nexport default groups;\n\n//Own state\nexport const getOwnState = (state) => state.units.groups;\n\n//Information\nexport const getGroup = (state, groupId) => {\n const group = getOwnState(state).byId[groupId];\n if (group) {\n return {\n ...group\n };\n } else return undefined;\n};\nexport const getGroupsList = (state) => getOwnState(state).order.map((id) => getGroup(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { imagesEntities, imagesOrder } = action.payload;\n const newState = { ...state };\n imagesOrder.forEach((imageId) => {\n newState[imageId] = {\n ...state[imageId],\n ...imagesEntities[imageId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { imagesOrder } = action.payload;\n return uniq([...state, ...imagesOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst images = combineReducers({\n byId,\n order\n});\n\nexport default images;\n\n//Own state\nexport const getOwnState = (state) => state.units.images;\n\n//Information\nexport const getImage = (state, imageId) => {\n const image = getOwnState(state).byId[imageId];\n if (image) {\n return {\n ...image\n };\n } else return undefined;\n};\nexport const getImagesList = (state) => getOwnState(state).order.map((id) => getImage(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { reportsEntities, reportsOrder } = action.payload;\n const newState = { ...state };\n reportsOrder.forEach((reportId) => {\n newState[reportId] = {\n ...state[reportId],\n ...reportsEntities[reportId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { reportsOrder } = action.payload;\n return uniq([...state, ...reportsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst reports = combineReducers({\n byId,\n order\n});\n\nexport default reports;\n\n//Own state\nexport const getOwnState = (state) => state.units.reports;\n\n//Information\nexport const getReport = (state, reportId) => {\n const report = getOwnState(state).byId[reportId];\n if (report) {\n return {\n ...report\n };\n } else return undefined;\n};\nexport const getReportsList = (state) => getOwnState(state).order.map((id) => getReport(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { sensorsEntities, sensorsOrder } = action.payload;\n const newState = { ...state };\n sensorsOrder.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n ...sensorsEntities[sensorId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { sensorsOrder } = action.payload;\n return uniq([...state, ...sensorsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst sensors = combineReducers({\n byId,\n order\n});\n\nexport default sensors;\n\n//Own state\nexport const getOwnState = (state) => state.units.sensors;\n\n//Information\nexport const getSensor = (state, sensorId) => {\n const sensor = getOwnState(state).byId[sensorId];\n if (sensor) {\n return {\n ...sensor\n };\n } else return undefined;\n};\nexport const getSensorsList = (state) => getOwnState(state).order.map((id) => getSensor(state, id));\n","import * as types from '../../../types/static-catalogs/location-classes';\n\nexport const startFetchingLocationClasses = (filters = {}) => ({\n type: types.LOCATION_CLASSES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingLocationClasses = (entities, order) => ({\n type: types.LOCATION_CLASSES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingLocationClasses = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.LOCATION_CLASSES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import L from 'leaflet';\nimport { createPathComponent } from '@react-leaflet/core';\nimport { renderToString } from 'react-dom/server';\nimport 'leaflet.markercluster';\nimport { PathOptions } from 'leaflet';\nimport { Children, ReactNode, useEffect } from 'react';\nimport React from 'react';\n\ntype EventHandler = (...args: any[]) => void;\n\ninterface ClusterProps {\n spiderLegPolylineOptions?: PathOptions;\n removeOutsideVisibleBounds?: boolean;\n chunkedLoading?: boolean;\n iconCreateFunction?: (cluster: any) => any; // Replace 'any' with the actual types if known\n}\n\ninterface Props extends ClusterProps {\n children?: ReactNode;\n icon?: ReactNode; //any; // Replace 'any' with the actual type if known\n disableClusteringAtZoom?: number | string;\n spiderfyOnMaxZoom?: boolean;\n}\n\nconst MarkerClusterGroup = createPathComponent(\n (\n {\n children: _c,\n icon = null,\n disableClusteringAtZoom,\n spiderfyOnMaxZoom = false,\n ...props\n }: Props,\n ctx\n ) => {\n const clusterProps = {\n spiderLegPolylineOptions: { pmIgnore: true, weight: 1.5, color: '#0d6efd', opacity: 0.5 },\n removeOutsideVisibleBounds: true,\n chunkedLoading: true,\n iconCreateFunction: function (cluster) {\n var childCount = cluster.getChildCount();\n\n var c = ' marker-cluster-';\n if (childCount < 10) {\n c += 'small';\n } else if (childCount < 100) {\n c += 'medium';\n } else {\n c += 'large';\n }\n\n return new L.DivIcon({\n html: icon\n ? renderToString(\n \n {childCount}\n {icon}\n \n )\n : renderToString(\n
\n {childCount}\n
\n ),\n className: 'marker-cluster' + c,\n iconSize: new L.Point(40, 40)\n });\n }\n };\n const clusterEvents = {};\n\n if (disableClusteringAtZoom) {\n clusterProps['disableClusteringAtZoom'] = disableClusteringAtZoom;\n }\n\n clusterProps['spiderfyOnMaxZoom'] = spiderfyOnMaxZoom;\n\n // Splitting props and events to different objects\n Object.entries(props).forEach(([propName, prop]) =>\n propName.startsWith('on') ? (clusterEvents[propName] = prop) : (clusterProps[propName] = prop)\n );\n\n // Creating markerClusterGroup Leaflet element\n let markerClusterGroup = new L.markerClusterGroup(clusterProps);\n\n useEffect(() => {\n // Cleanup the old markerClusterGroup instance before creating a new one\n markerClusterGroup.clearLayers();\n\n markerClusterGroup = new L.markerClusterGroup({\n ...clusterProps,\n disableClusteringAtZoom,\n spiderfyOnMaxZoom // Ensure it's updated on prop change\n });\n\n // Re-add event listeners\n Object.entries(clusterEvents).forEach(([eventAsProp, callback]) => {\n const clusterEvent = `cluster${eventAsProp.substring(2).toLowerCase()}`;\n markerClusterGroup.on(clusterEvent, callback);\n });\n\n // Re-add the children markers to the cluster group\n Children.forEach(_c, (child) => {\n // Ensure that the child is a valid React element and has a leaflet layer\n if (React.isValidElement(child) && child.props.leaflet && child.props.leaflet.mapLayer) {\n markerClusterGroup.addLayer(child.props.leaflet.mapLayer);\n }\n });\n\n // Attach to the map context\n if (ctx.map) {\n ctx.map.addLayer(markerClusterGroup);\n }\n\n return () => {\n if (ctx.map) {\n ctx.map.removeLayer(markerClusterGroup); // Clean up when component unmounts\n }\n };\n }, [disableClusteringAtZoom, spiderfyOnMaxZoom]);\n\n // markerClusterGroup._getExpandedVisibleBounds = function () {\n // return markerClusterGroup._map.getBounds();\n // };\n\n // // Initializing event listeners\n // Object.entries(clusterEvents).forEach(([eventAsProp, callback]) => {\n // const clusterEvent = `cluster${eventAsProp.substring(2).toLowerCase()}`;\n // markerClusterGroup.on(clusterEvent, callback);\n // });\n\n return {\n instance: markerClusterGroup,\n context: { ...ctx, layerContainer: markerClusterGroup }\n };\n }\n);\n\nexport default MarkerClusterGroup;\n","import * as types from '../types';\n\nexport * from './backlog';\nexport * from './board';\nexport * from './report';\n\nexport const startFetchingJob = (jobId) => ({\n type: types.JOB_FETCH_STARTED,\n payload: { jobId }\n});\nexport const completeFetchingJob = (job) => ({\n type: types.JOB_FETCH_COMPLETED,\n payload: { job }\n});\nexport const failFetchingJob = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOB_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Componente ColorPicker */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un colorPicker genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport React, { useState, useEffect } from 'react';\nimport { Label, Input, FormGroup, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';\nimport _ from 'lodash';\nimport { SketchPicker } from 'react-color';\nimport reactCSS from 'reactcss';\n\ninterface Props {\n id: any;\n field: any;\n label: string;\n required: any;\n forceinitialvalue?: string;\n disabled: boolean;\n additionalonchangefunction?: Function;\n}\nconst style = getComputedStyle(document.body);\nconst primary = style.getPropertyValue('--primary').trim();\n// const borderColor =;\nconst ColorPicker = (props: Props) => {\n const {\n id,\n label,\n required,\n field,\n disabled,\n forceinitialvalue = primary,\n additionalonchangefunction\n } = props;\n\n useEffect(() => {\n if (field.value == null || field.value == undefined || field.value.length == 0) {\n field.onChange(forceinitialvalue);\n }\n }, [field.value]);\n\n const [displayColorPicker, setDisplayColorPicker] = useState(false);\n const handleClick = () => {\n setDisplayColorPicker(!displayColorPicker);\n };\n\n const handleClose = () => {\n setDisplayColorPicker(false);\n };\n\n useEffect(() => {\n if (forceinitialvalue) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n const styles = reactCSS({\n default: {\n color: {\n width: '100%',\n margin: '0 auto',\n height: '22px',\n borderRadius: '5px',\n background: `${field.value ?? forceinitialvalue}`\n },\n swatch: {\n // padding: '5px',\n // background: '#fff',\n // borderRadius: '1px',\n // boxShadow: '0 0 0 1px rgba(0,0,0,.1)',\n // display: 'inline-block',\n // cursor: 'pointer'\n padding: '0.438rem 1rem',\n cursor: 'pointer',\n backgroundColor: ' #ffffff',\n backgroundClip: 'padding-box',\n border: `1px solid #d8d6de`,\n borderRadius: '0.357rem'\n },\n popover: {\n position: 'absolute',\n zIndex: '50000'\n },\n cover: {\n position: 'fixed',\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px'\n }\n }\n });\n return (\n \n \n
\n
\n
\n
\n {displayColorPicker ? (\n
\n
\n {\n onChangeFinal(color.hex);\n }}\n disableAlpha={true}\n disabled={disabled}\n presetColors={[\n primary,\n '#D0021B',\n '#F5A623',\n '#F8E71C',\n '#8B572A',\n '#7ED321',\n '#417505',\n '#BD10E0',\n '#9013FE',\n '#4A90E2',\n '#50E3C2',\n '#B8E986',\n '#000000',\n '#4A4A4A',\n '#9B9B9B'\n ]}\n />\n
\n ) : null}\n
\n \n );\n};\n\nColorPicker.defaultProps = {\n required: true,\n disabled: false\n};\n\nexport default ColorPicker;\n","/* -------------------------------------------------------------------------- */\n/* GeofenceShapeDropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente utiliza DropdownInput para generar un GeofenceShapeDropdownInput\n\nimport { omit } from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Icon from '../../../utility/icomoon';\nimport DropdownInput from '../DropdownInput';\n\nconst GeofenceShapeDropdownInput = (props) => {\n const {\n forceinitialvalue = 'C',\n field,\n additionalonchangefunction = (value) => null,\n disabled\n } = props;\n const intl = useIntl();\n const geofenceShapes = [\n { id: 'C', value: 'C', label: 'geofences.shape.C', iconName: 'Circle' },\n { id: 'R', value: 'R', label: 'geofences.shape.R', iconName: 'Square' },\n { id: 'P', value: 'P', label: 'geofences.shape.P', iconName: 'Hexagon' },\n { id: 'U', value: 'U', label: 'geofences.shape.U', iconName: 'TrendingUp' }\n ];\n\n //Reset value with initial when values are loaded from db\n const [resetValue, setResetValue] = useState(Date.now());\n const resetDropdown = () => {\n setResetValue(Date.now());\n };\n\n useEffect(() => {\n if (field.value == null || field.value == undefined || field.value.length == 0) {\n field.onChange(forceinitialvalue);\n }\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue) {\n onChangeFinal(forceinitialvalue);\n }\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n return (\n }\n options={geofenceShapes.map((gs) => {\n return {\n ...gs,\n icon: ,\n label: ,\n label_intl: intl.formatMessage({ id: 'geofences.shape.' + gs.value })\n };\n })}\n />\n );\n};\n\nexport default GeofenceShapeDropdownInput;\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport { Controller } from 'react-hook-form';\nimport DropdownInput from '../DropdownInput';\nimport TextInput from '../TextInput';\nimport NumericalInput from '../NumericalInput';\nimport TimeInput from '../TimeInput';\nimport SwitchInput from '../SwitchInput';\nimport Membership from '../Membership';\nimport ContactsDropdown from '../ContactsDropdown';\nimport CustomersDropdown from '../CustomersDropdown';\nimport DropdownCategoriesIcons from '../../screens/vehicleMaintenance/components/dropDownIcons';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport CheckboxInput from '../CheckBoxInput';\nimport LocationClassesDropdownInput from '../LocationClassesDropdownInput';\nimport ColorPicker from '../ColorPicker';\nimport GeofenceShapeDropdownInput from '../GeofenceShapeDropdownInput';\nimport UnitsDropdown from '../UnitsDropdown';\nimport NoticeTypeDropdownInput from 'views/screens/vehicleMaintenance/components/NoticeTypeDropdownInput';\nimport DurationInput from '../DurationInput';\nimport MultiSelectInput from '../MultiSelectInput';\nimport DateInput from '../DateInput';\nimport moment from 'moment';\nimport JobTypeDropdownInput from 'views/screens/Jobs/components/JobTypeDropdownInput';\nimport JobPriorityDropdownInput from '../../screens/Jobs/components/JobPriorityDropdownInput';\nimport JobStatusDropdownInput from 'views/screens/Jobs/components/JobStatusDropdownInput';\nimport UsersDropdown from '../UsersDropdown';\nimport LocationsDropdownInput from '../LocationDropDown';\nimport GeofencesDropdownInput from '../GeofenceDropDown';\nimport TextEditorInput from '../TextEditorInput';\nimport CategoriesDropdownInput from 'views/screens/vehicleMaintenance/components/CategoriesDropdownInput';\nimport FormsDropdown from '../FormsDropdown';\nimport DriversDropdownInput from '../DriverDropDown';\nimport ScheduleDropdown from '../ScheduleDropdown';\nimport RadioButtonsInput from '../RadioButtonInput';\nimport ThemeDropdown from '../ThemeDropdown';\nimport { FormattedMessage } from 'react-intl';\n\ninterface Props {\n input: any;\n control: any;\n change?: any;\n}\n\nconst validateText = (value) =>\n value && value.trim() ? undefined : appIntl().formatMessage({ id: 'common.requiredField' });\n\nconst validate = (value) =>\n value ? undefined : appIntl().formatMessage({ id: 'common.requiredField' });\n\nconst WebtrackCustomInput = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const { input, change, control } = props;\n\n return input.type === 'select' ? (\n (\n \n )}\n />\n ) : input.type === 'multiSelect' ? (\n (\n \n )}\n />\n ) : input.type == 'date' ? (\n (\n \n )}\n />\n ) : input.type === 'text' ? (\n (\n \n )}\n />\n ) : input.type === 'textEditor' ? (\n (\n \n )}\n />\n ) : input.type === 'duration' ? (\n (\n \n )}\n />\n ) : input.type === 'number' ? (\n (\n \n )}\n />\n ) : input.type === 'time' ? (\n (\n \n )}\n />\n ) : input.type === 'colorPicker' ? (\n (\n \n )}\n />\n ) : input.type === 'jobTypeDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'jobPriorityDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'jobStatusDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'locationClassesDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'geofenceShapesDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'locationDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'driverDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'geofenceDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'organizationFormsDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'usersDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'contactsDropdown' ? (\n \n ) : input.type === 'customersDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'unitsDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'scheduleDropdown' ? (\n (\n \n )}\n />\n ) : input.type === 'noticeTypeDropdown' ? (\n \n ) : input.type === 'categoriesDropdown' ? (\n \n ) : input.type === 'dropDownCategoriesIcons' ? (\n \n ) : input.type === 'switch' ? (\n (\n \n )}\n />\n ) : input.type === 'radioButtons' ? (\n (\n \n )}\n />\n ) : input.type === 'checkbox' ? (\n (\n \n )}\n />\n ) : input.type === 'checkbox' ? (\n (\n \n )}\n />\n ) : input.type === 'membership' ? (\n \n ) : input.type === 'unitThemeDropdown' ? (\n (\n }\n placeholder={\n input.placeholder ? (\n input.placeholder\n ) : (\n \n )\n }\n forceinitialvalue={input.initialValue}\n required\n />\n )}\n />\n ) : input.type === 'custom' ? (\n (\n {\n change('validationHack', Date.now());\n }}\n label={input.label ? appIntl().formatMessage({ id: input.label }) : null}\n {...input}\n />\n )}\n />\n ) : input.type === 'component' ? (\n
{input.component}
\n ) : null;\n};\n\nWebtrackCustomInput.defaultProps = {\n input: {}\n};\n\nexport default WebtrackCustomInput;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/customer';\n\nexport const getCustomersListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.customer',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveCustomerService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.customer',\n action: request.customerId ? 'Edit' : 'Create',\n name: request.customerName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteCustomerService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.customerName}`,\n object: 'customers.customer',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const importCustomersService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.importCustomer',\n action: 'Get',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importCustomers`, request);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente RadioButtons */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Radio Buttons Input genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\nimport { useEffect } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { FormGroup, Col, CustomInput, Label } from 'reactstrap';\n\ninterface Props {\n field: any;\n fieldstate: any;\n required?: any;\n errorMessage?: any;\n errorinvalidmessage?: any;\n errorvalidatemessage?: any;\n radioButtons: any[];\n label?: any;\n isInModal?: boolean;\n additionalonchangefunction?: Function;\n}\n\nconst RadioButtonsInput = (props: Props) => {\n const {\n field,\n fieldstate,\n required,\n errorMessage,\n errorinvalidmessage,\n errorvalidatemessage,\n radioButtons,\n label,\n isInModal,\n additionalonchangefunction\n } = props;\n\n useEffect(() => {\n if (field.value && additionalonchangefunction) additionalonchangefunction(field.value);\n }, [field.value]);\n\n return (\n \n {label && (\n \n )}\n {radioButtons?.map((radioButton, i) => (\n \n {\n field.onChange(event.target.id);\n }}\n />\n \n ))}\n {fieldstate.error && fieldstate.error.type === 'required' ? (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'pattern' ? (\n
\n {fieldstate.error?.message || errorinvalidmessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'validate' ? (\n
\n {fieldstate.error?.message || errorvalidatemessage || (\n \n )}\n
\n ) : (\n ''\n )}\n
\n );\n};\n\nRadioButtonsInput.defaultProps = {\n radioButtons: [],\n boolean: false\n};\n\nexport default RadioButtonsInput;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport { isNullOrUndefined } from 'utility/Utils';\n\nexport interface MaintenancePlansFormatted\n extends Omit<\n types.MaintenancePlans,\n 'maintenanceRangesByOdometer' | 'maintenanceRangesByHourMeter'\n > {\n maintenanceRangesByOdometer: {\n odometer: number;\n title: string;\n description: string;\n maintenanceRangeId: number;\n maintenanceLineId: number;\n }[];\n maintenanceRangesByHourMeter: {\n odometer: number;\n title: string;\n description: string;\n maintenanceRangeId: number;\n maintenanceLineId: number;\n }[];\n}\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n isSelected: false,\n ...state[maintenanceLineId],\n ...entities[maintenanceLineId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n const { oldId, maintenanceLine } = action.payload;\n const newState = omit(state, oldId);\n newState[maintenanceLine.maintenanceLineId] = {\n ...state[oldId],\n ...maintenanceLine,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MAINTENANCE_LINE_EDIT_COMPLETED: {\n const maintenanceLine = action.payload;\n return {\n ...state,\n [maintenanceLine.maintenanceLineId]: {\n ...omit(state[maintenanceLine.maintenanceLineId], ['oldMaintenanceLine']),\n ...omit(maintenanceLine, ['oldMaintenanceLine']),\n isConfirmed: true\n }\n };\n }\n\n case types.MAINTENANCE_LINE_COPY_COMPLETED: {\n const maintenanceLine = action.payload;\n const newState = { ...state };\n newState[maintenanceLine.maintenanceLineId] = {\n isSelected: false,\n ...maintenanceLine,\n isConfirmed: true\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n const maintenanceLine = action.payload;\n const newState = { ...state };\n newState[maintenanceLine.maintenanceLineId] = {\n isSelected: false,\n ...maintenanceLine,\n isConfirmed: false\n };\n return newState;\n }\n case types.MAINTENANCE_LINE_EDIT_STARTED: {\n const maintenanceLine = action.payload;\n return {\n ...state,\n [maintenanceLine.maintenanceLineId]: {\n ...state[maintenanceLine.maintenanceLineId],\n oldMaintenanceLine: state[maintenanceLine.maintenanceLineId],\n ...maintenanceLine,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n const { oldMaintenanceLine } = action.payload;\n return {\n ...state,\n [oldMaintenanceLine.maintenanceLineId]: {\n ...omit(state[oldMaintenanceLine.maintenanceLineId], ['oldMaintenanceLine']),\n ...oldMaintenanceLine,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n const { maintenanceLineId } = action.payload;\n return omit(state, maintenanceLineId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MAINTENANCE_LINE_SELECTED: {\n const maintenanceLineId = action.payload;\n const newState = {\n ...state,\n [maintenanceLineId]: {\n ...state[maintenanceLineId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MAINTENANCE_LINE_DESELECTED: {\n const maintenanceLineId = action.payload;\n return {\n ...state,\n [maintenanceLineId]: {\n ...state[maintenanceLineId],\n isSelected: false\n }\n };\n }\n\n case types.MAINTENANCE_LINES_ALL_SELECTED: {\n const maintenanceLineIds = action.payload;\n const newState = { ...state };\n if (maintenanceLineIds.length == 0) {\n forEach(state, (maintenanceLine: any, maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...maintenanceLine,\n isSelected: true\n };\n });\n } else {\n maintenanceLineIds.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...state[maintenanceLineId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MAINTENANCE_LINES_ALL_DESELECTED: {\n const maintenanceLineIds = action.payload;\n const newState = { ...state };\n if (maintenanceLineIds.length == 0) {\n forEach(state, (maintenanceLine: any, maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...maintenanceLine,\n isSelected: false\n };\n });\n } else {\n maintenanceLineIds.forEach((maintenanceLineId) => {\n newState[maintenanceLineId] = {\n ...state[maintenanceLineId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n const { oldId, maintenanceLine } = action.payload;\n return state.map((maintenanceLineId) =>\n maintenanceLineId === oldId ? maintenanceLine.maintenanceLineId : maintenanceLineId\n );\n }\n\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n const { maintenanceLineId } = action.payload;\n return state.filter((maintenanceLineIdState) => maintenanceLineIdState !== maintenanceLineId);\n }\n\n //CASE ADD STARTED\n case types.MAINTENANCE_LINE_COPY_COMPLETED:\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n const maintenanceLine = action.payload;\n return [...state, maintenanceLine.maintenanceLineId];\n }\n\n //CASE ADD FAILED\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((maintenanceLineIdState) => maintenanceLineIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_FETCH_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINES_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_ADD_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_ADD_COMPLETED:\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_EDIT_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_EDIT_COMPLETED:\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_REMOVE_STARTED: {\n return true;\n }\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED:\n case types.MAINTENANCE_LINE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINES_FETCH_STARTED:\n case types.MAINTENANCE_LINES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED:\n case types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_ADD_STARTED:\n case types.MAINTENANCE_LINE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_EDIT_STARTED:\n case types.MAINTENANCE_LINE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.MAINTENANCE_LINE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MAINTENANCE_LINE_REMOVE_STARTED:\n case types.MAINTENANCE_LINE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst maintenanceLines = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default maintenanceLines;\n\n//Own state\nexport const getOwnState = (state) => state.maintenanceLines;\n\n//Information\nexport const getMaintenanceLine = (\n state,\n maintenanceLineId\n): MaintenancePlansFormatted | undefined => {\n const maintenanceLine = getOwnState(state).byId[maintenanceLineId];\n if (maintenanceLine) return maintenanceLine;\n else return undefined;\n};\nexport const getMaintenanceLinesList = (state): MaintenancePlansFormatted[] =>\n getOwnState(state)\n .order.map((id) => getMaintenanceLine(state, id))\n .filter((maintenanceLine) => maintenanceLine.maintenanceLineStatus > 0);\n\nexport const getMaintenanceLinesListByMembership = (\n state: any,\n membership: DefaultFilters | undefined,\n typeId: types.MaintenanceNoticeTypes = types.MaintenanceNoticeTypes.MaintenanceLinesByOdometer\n) => {\n //Se filtra por membership\n return getMaintenanceLinesList(state).filter(\n (maintenanceLine) =>\n membership &&\n (!membership.operatorId || membership.operatorId === maintenanceLine.operatorId) &&\n (!membership.organizationId ||\n membership.organizationId === maintenanceLine.organizationId) &&\n (!membership.divisionId || membership.divisionId === maintenanceLine.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === maintenanceLine.subdivisionId) &&\n (isNullOrUndefined(maintenanceLine?.maintenanceNoticeTypeId)\n ? true\n : maintenanceLine.maintenanceNoticeTypeId === typeId)\n );\n};\n\nexport const getMaintenanceLinesListBySelectedDivision = (state, membership) => {\n //Se filtra por divisionId\n if (membership.divisionId) {\n return getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.divisionId === membership.divisionId\n );\n }\n //Si no se ha seleccionado una divisiĆ³n se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedMaintenanceLines = (state) => {\n const selectedMaintenanceLines = getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedMaintenanceLines.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedMaintenanceLines.length > 0) return selectedMaintenanceLines;\n};\n\nexport const getSelectedMaintenanceLine = (state) => {\n const selectedMaintenanceLines = getMaintenanceLinesList(state).filter(\n (maintenanceLine) => maintenanceLine.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedMaintenanceLines.length === 1) return selectedMaintenanceLines[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListMaintenanceLines = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListMaintenanceLines = (state) => getOwnState(state).isFetchingList;\nexport const isAddingMaintenanceLine = (state) => getOwnState(state).isAdding;\nexport const isEditingMaintenanceLine = (state) => getOwnState(state).isEditing;\nexport const isRemovingMaintenanceLine = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListMaintenanceLinesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListMaintenanceLinesErrors = (state) =>\n getOwnState(state).errorFetchingList;\nexport const getAddingMaintenanceLineErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingMaintenanceLineErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingMaintenanceLineErrors = (state) => getOwnState(state).errorRemoving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.MODULES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((moduleId) => {\n newState[moduleId] = {\n isSelected: false,\n ...entities[moduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((moduleId) => {\n newState[moduleId] = {\n isSelected: false,\n ...entities[moduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.MODULE_FETCH_COMPLETED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...state[module.deviceId],\n ...module,\n isConfirmed: false,\n isSelected: true\n }\n };\n }\n\n case types.MODULE_ADD_COMPLETED: {\n const { oldId, module } = action.payload;\n const newState = omit(state, oldId);\n newState[module.deviceId] = {\n ...state[oldId],\n ...module,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.MODULE_EDIT_COMPLETED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...omit(state[module.deviceId], ['oldModule']),\n ...omit(module, ['oldModule']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.MODULE_ADD_STARTED: {\n const module = action.payload;\n const newState = { ...state };\n newState[module.deviceId] = {\n isSelected: false,\n ...module,\n isConfirmed: false\n };\n return newState;\n }\n case types.MODULE_EDIT_STARTED: {\n const module = action.payload;\n return {\n ...state,\n [module.deviceId]: {\n ...state[module.deviceId],\n oldModule: state[module.deviceId],\n ...module,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.MODULE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.MODULE_EDIT_FAILED: {\n const oldModule = action.payload;\n return {\n ...state,\n [oldModule.deviceId]: {\n ...omit(state[oldModule.deviceId], ['oldModule']),\n ...oldModule,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.MODULE_REMOVE_COMPLETED: {\n const { moduleId } = action.payload;\n return omit(state, moduleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.MODULE_SELECTED: {\n const moduleId = action.payload;\n const newState = {\n ...state,\n [moduleId]: {\n ...state[moduleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.MODULE_DESELECTED: {\n const moduleId = action.payload;\n return {\n ...state,\n [moduleId]: {\n ...state[moduleId],\n isSelected: false\n }\n };\n }\n\n case types.MODULES_ALL_SELECTED: {\n const moduleIds = action.payload;\n const newState = { ...state };\n if (moduleIds.length == 0) {\n forEach(state, (module: any, moduleId) => {\n newState[moduleId] = {\n ...module,\n isSelected: true\n };\n });\n } else {\n moduleIds.forEach((moduleId) => {\n newState[moduleId] = {\n ...state[moduleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.MODULES_ALL_DESELECTED: {\n const moduleIds = action.payload;\n const newState = { ...state };\n if (moduleIds.length == 0) {\n forEach(state, (module: any, moduleId) => {\n newState[moduleId] = {\n ...module,\n isSelected: false\n };\n });\n } else {\n moduleIds.forEach((moduleId) => {\n newState[moduleId] = {\n ...state[moduleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.MODULES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.MODULE_FETCH_COMPLETED: {\n const module = action.payload;\n return uniq([...state, module.deviceId]);\n }\n\n case types.MODULE_ADD_COMPLETED: {\n const { oldId, module } = action.payload;\n return state.map((deviceId) => (deviceId === oldId ? module.deviceId : deviceId));\n }\n\n case types.MODULE_REMOVE_COMPLETED: {\n const { moduleId } = action.payload;\n return state.filter((moduleIdState) => moduleIdState !== moduleId);\n }\n\n //CASE ADD STARTED\n case types.MODULE_ADD_STARTED: {\n const module = action.payload;\n return [...state, module.deviceId];\n }\n\n //CASE ADD FAILED\n case types.MODULE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((moduleIdState) => moduleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MODULES_FETCH_STARTED: {\n return true;\n }\n case types.MODULES_FETCH_COMPLETED:\n case types.MODULES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.MODULES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.MODULES_PARTIAL_FETCH_COMPLETED:\n case types.MODULES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_FETCH_STARTED: {\n return true;\n }\n case types.MODULE_FETCH_COMPLETED:\n case types.MODULE_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_ADD_STARTED: {\n return true;\n }\n case types.MODULE_ADD_COMPLETED:\n case types.MODULE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_EDIT_STARTED: {\n return true;\n }\n case types.MODULE_EDIT_COMPLETED:\n case types.MODULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_REMOVE_STARTED: {\n return true;\n }\n case types.MODULE_REMOVE_COMPLETED:\n case types.MODULE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.MODULES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULES_FETCH_STARTED:\n case types.MODULES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_FETCH_STARTED:\n case types.MODULE_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_ADD_STARTED:\n case types.MODULE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_EDIT_STARTED:\n case types.MODULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.MODULE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.MODULE_REMOVE_STARTED:\n case types.MODULE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst dirty = (state = false, action) => {\n switch (action.type) {\n case types.MODULE_DIRTY: {\n return action.payload;\n }\n default: {\n return state;\n }\n }\n};\n\nconst modules = combineReducers({\n byId,\n order,\n isFetching,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n dirty\n});\n\nexport default modules;\n\n//Own state\nexport const getOwnState = (state) => state.modules;\n\n//Information\nexport const getModule = (state, moduleId) => getOwnState(state).byId[moduleId];\nexport const getModulesList = (state) =>\n getOwnState(state)\n .order.map((id) => getModule(state, id))\n .filter((device) => device.deviceStatus > 0);\nexport const getModulesListByMembership = (state, membership) =>\n getModulesList(state).filter(\n (module) =>\n membership &&\n (!membership.operatorId || membership.operatorId === module.operatorId) &&\n (!membership.organizationId || membership.organizationId === module.organizationId) &&\n (!membership.divisionId || membership.divisionId === module.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === module.subdivisionId)\n );\nexport const getSelectedModules = (state) => {\n const selectedModules = getModulesList(state).filter((module) => module.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedModules.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedModules.length > 0) return selectedModules;\n};\n\nexport const getSelectedModule = (state) => {\n const selectedModules = getModulesList(state).filter((module) => {\n return module.isSelected;\n });\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedModules.length === 1) return selectedModules[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\nexport const isDirty = (state) => getOwnState(state).dirty;\n\n//Status of sagas\nexport const isFetchingModule = (state) => getOwnState(state).isFetching;\nexport const isPartialFetchingListModules = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListModules = (state) => getOwnState(state).isFetchingList;\nexport const isAddingModule = (state) => getOwnState(state).isAdding;\nexport const isEditingModule = (state) => getOwnState(state).isEditing;\nexport const isRemovingModule = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingModuleErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListModulesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingModuleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingModuleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingModuleErrors = (state) => getOwnState(state).errorRemoving;\n","import forEach from 'lodash/forEach';\nimport { isNaNOrNullable, parseToNumber } from 'utility/Utils';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { timeInSeconds } from 'utility/timeUtils/timeInSeconds';\n// Adds description to one schedule\n// returns schedule object\nexport const addScheduleDescription = (schedule, intl) => {\n const isBitSet = (b, pos) => (b & (1 << pos)) !== 0;\n const relativeIntervalDay = {\n 1: () => intl.formatMessage({ id: 'schedules.sunday' }),\n 2: () => intl.formatMessage({ id: 'schedules.monday' }),\n 3: () => intl.formatMessage({ id: 'schedules.tuesday' }),\n 4: () => intl.formatMessage({ id: 'schedules.wednesday' }),\n 5: () => intl.formatMessage({ id: 'schedules.thursday' }),\n 6: () => intl.formatMessage({ id: 'schedules.friday' }),\n 7: () => intl.formatMessage({ id: 'schedules.saturday' })\n };\n const frequencyType = {\n 1: () => intl.formatMessage({ id: 'schedules.oneTime' }),\n 4: () =>\n schedule.frequencyInterval > 1\n ? intl.formatMessage({ id: 'schedules.every' }) +\n schedule.frequencyInterval +\n intl.formatMessage({ id: 'schedules.days' })\n : intl.formatMessage({ id: 'schedules.everyDay' }),\n 8: () => {\n var count = 0;\n var sDays = '';\n forEach([...Array(7).keys()], (value) => {\n if (isBitSet(schedule.frequencyInterval, value)) {\n if (sDays != '') sDays += ', ';\n sDays += relativeIntervalDay[value + 1]();\n count++;\n }\n });\n return (\n (count > 1\n ? intl.formatMessage({ id: 'schedules.theDays' })\n : intl.formatMessage({ id: 'schedules.the' })) +\n (count === 2 ? sDays.replace(',', ' y ') : sDays) +\n intl.formatMessage({ id: 'schedules.everySmall' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.weeks' })\n : intl.formatMessage({ id: 'schedules.week' }))\n );\n },\n 16: () =>\n intl.formatMessage({ id: 'schedules.theDay' }) +\n schedule.frequencyInterval +\n intl.formatMessage({ id: 'schedules.ofEach' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.months' })\n : intl.formatMessage({ id: 'schedules.month' })),\n 32: () =>\n ({\n 1: () => intl.formatMessage({ id: 'schedules.relativeMonth0' }),\n 2: () => intl.formatMessage({ id: 'schedules.relativeMonth1' }),\n 4: () => intl.formatMessage({ id: 'schedules.relativeMonth2' }),\n 8: () => intl.formatMessage({ id: 'schedules.relativeMonth3' }),\n 16: () => intl.formatMessage({ id: 'schedules.relativeMonth4' })\n }[schedule.frequencyRelativeInterval]() +\n ' ' +\n relativeIntervalDay[schedule.frequencyInterval]() +\n intl.formatMessage({ id: 'schedules.ofEach' }) +\n (schedule.frequencyRecurrenceFactor > 1\n ? schedule.frequencyRecurrenceFactor + intl.formatMessage({ id: 'schedules.months' })\n : intl.formatMessage({ id: 'schedules.month' })))\n };\n const frequencyDescription = frequencyType[schedule.frequencyType]();\n return {\n ...schedule,\n frequencyDescription\n };\n};\n\n// Adds appropiate descriptions to a list of schedules\n// returns array of schedule objects\nexport const addSchedulesDescription = (schedulesData, intl) =>\n schedulesData.map((schedules) => addScheduleDescription(schedules, intl));\n\n//Lista de dĆ­a de la semana\n//ƚtil para .map en diferentes contextos\nexport const daysList = [\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n 'sunday'\n];\n\nexport const msToTime = (duration: unknown): string => {\n const parsed = parseToNumber(duration);\n\n if (!parsed) return '';\n\n const milliseconds = Math.floor((parsed % 1000) / 100),\n seconds = Math.floor((parsed / 1000) % 60),\n minutes = Math.floor((parsed / (1000 * 60)) % 60),\n hours = Math.floor((parsed / (1000 * 60 * 60)) % 24);\n\n const hoursT = hours < 10 ? '0' + hours : hours;\n const minutesT = minutes < 10 ? '0' + minutes : minutes;\n const secondsT = seconds < 10 ? '0' + seconds : seconds;\n\n return hoursT + ':' + minutesT + ':' + secondsT + '.' + milliseconds;\n};\n\nexport const minutesToMilliseconds = (min: unknown) => {\n const minutes = parseToNumber(min);\n\n if (!minutes) return null;\n\n const timeAsMilliseconds = minutes * timeInSeconds.minute * 1000;\n\n return timeAsMilliseconds;\n};\n\nexport const minutesToTime = (min: unknown): string => {\n const timeAsMilliseconds = minutesToMilliseconds(min);\n\n return msToTime(timeAsMilliseconds);\n};\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/sim';\n\ninterface SimFilters {\n operatorId?: number;\n organizationId?: number;\n unitId?: number;\n userFetchDate?: Date;\n}\n\ninterface ImportSIMsFilters {\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n sims?: String;\n}\n\ninterface SimCardFilters {\n comparationOperator: string;\n limit?: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivision?: number;\n unitId?: number;\n countryId?: number;\n mobileOperatorId?: number;\n iccid?: string;\n locationStatus?: number;\n cellularNumber?: string;\n simCardId?: number;\n simCardStatus?: number;\n}\n\nexport const getSimsListService = (\n request: SimFilters | DefaultFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getSimsListDropdownService = (request: SimFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/dropdown`, request);\n};\n\nexport const importSIMsService = async (\n request: ImportSIMsFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importSIMs`, request);\n};\n\nexport const getInactiveSimsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getInactive`, request);\n};\n\nexport const getSimsListByFiltersService = (\n request: SimCardFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getByFilters`, request);\n};\n\nexport const updateSimStatusService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateStatus`, request);\n};\n\nexport const getSimByIdService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'sims.sim',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getById`, request);\n};\n","const permissions = {\n listServiceClass: 'UP017',\n addServiceClass: 'UP018',\n editServiceClass: 'UP019',\n deleteServiceClass: 'UP020'\n};\n\nexport default permissions;\n","import { FC, Fragment } from 'react';\nimport { ArrowLeft, ArrowRight } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, IntlShape, useIntl } from 'react-intl';\nimport { Button, Col, Form, Row } from 'reactstrap';\nimport ContactsDropdown from 'views/formComponents/ContactsDropdown';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport MultiSelectInput from 'views/formComponents/MultiSelectInput';\nimport SwitchInput from 'views/formComponents/SwitchInput';\nimport RadioButtonInput from '../../../../formComponents/RadioButtonInput';\nimport { globalNotificationFrecs, routesEvents } from '../../utils';\nimport { useAssignmentContext } from './RoutesAssignUnitContext';\n\nexport enum AssignmentTypes {\n ByDate = 1,\n BySchedule = 2\n}\n\nexport enum AlreadyLeftTheOrigin {\n Yes = 3,\n No = 4\n}\n\nexport type AssignmentTypeFormValues = {\n assignmentType: AssignmentTypes;\n alreadyLeftTheOrigin: AlreadyLeftTheOrigin | undefined;\n globalNotificationFrec: string;\n useSharedLink: boolean;\n notificationEvents: string;\n globalNotificationEmails: string;\n notificationEmails: string;\n};\n\nconst SelectAssignmentTypeTab: FC = () => {\n const { stepper, updateAssignmentType } = useAssignmentContext();\n const { control, handleSubmit, watch } = useForm();\n const intl: IntlShape = useIntl();\n\n const assignmentType = Number(watch('assignmentType') ?? '1');\n const globalNotificationEmails = watch('globalNotificationEmails');\n const notificationEmails = watch('notificationEmails');\n\n return (\n \n
\n \n \n (\n ,\n value: 1\n },\n { label: , value: 2 }\n ]}\n />\n )}\n />\n \n \n
\n {assignmentType == 1 && (\n <>\n \n \n (\n }\n radioButtons={[\n {\n label: `${intl.formatMessage({ id: 'common.yes' })} (${intl.formatMessage(\n {\n id: 'routes.monitoredInfo'\n }\n )})`,\n value: 3\n },\n {\n label: ,\n value: 4\n }\n ]}\n />\n )}\n />\n \n \n
\n \n )}\n \n \n

\n \n

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

\n \n

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

{e}

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

{e}

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

\n \n

\n

\n \n

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

\n \n

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